Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Администрирование Oracle Database:
- Установка и настройка базы данных
- Обновление, применение патчей
- Оптимизация, настройка производительности
- Обучение, подготовка персонала, оптимизация
  • Страница:
  • 1
  • 2

ТЕМА: Oracle: dblink к внешней базе через ODB

Oracle: dblink к внешней базе через ODB 29 авг 2011 05:19 #3522

  • Lessa
  • Lessa аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 50
  • Спасибо получено: 0
вроде бы все сделала как говорится в Oracle9i Heterogeneous Connectivity Administrator's Guide, не работает. В listener.log говорит
(ADDRESS=(PROTOCOL=tcp)(HOST=my_host)(PORT=2961)) * establish * IB * 12505

TNS-12505: TNS:listener could not resolve SID given in connect descriptor

Ниже привожу мои настройки, может кто укажет что я делаю не так или чего упустила?

1) Есть системный DSN с именем 'IB' к InterBase базе через Gimini драйвер. DSN работает, проверила, импортировав из него таблицу в базу MSSQL, все получилось.

2) В hs\admin есть файл initIB.ora со следующим содержимым
HS_FDS_CONNECT_INFO = IB

HS_FDS_TRACE_LEVEL=ON

HS_FDS_TRACE_FILE_NAME=d:\_o\ibtrace.log

3) Файл listener.ora
LISTENER =

   (ADDRESS_LIST =

      (ADDRESS= (PROTOCOL=tcp)

                (HOST = my_host)

                (PORT = 1521)

      )

  )



SID_LIST_MY_HOST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (GLOBAL_DBNAME = OEMREP)

      (ORACLE_HOME = d:\oracle9)

      (SID_NAME = OEMREP)

    )

    (SID_DESC =

      (GLOBAL_DBNAME = MyDB)

      (ORACLE_HOME = d:\oracle9)

      (SID_NAME = MyDB)

    )

    (SID_DESC =

        (PROGRAM = hsodbc)

        (ORACLE_HOME = d:\oracle9)

        (SID_NAME = IB)

    )

  )

4) Файл tnsnames.ora
OEMREP =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = my_host)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = OEMREP)

    )

  )



MyDB =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = my_host)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = MyDB)

    )

  )



IB =

(DESCRIPTION =

  (ADDRESS_LIST =

    (ADDRESS = (PROTOCOL = TCP)(HOST = my_host)(PORT = 1521))

  )

  (CONNECT_DATA =

     (SID = IB)

  )

  (HS = OK)

)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle: dblink к внешней базе через ODB 29 авг 2011 05:22 #3523

Добрый день. Настройки вроде бы верные, попробуй перезапустить листенер. Должно помочь, или же лог в студию)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle: dblink к внешней базе через ODB 29 авг 2011 05:24 #3524

  • Lessa
  • Lessa аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 50
  • Спасибо получено: 0
Повторила пример заново - DSN 'STAT'. Теперь вроде коннектится нормально

24-APR-2003 12:34:04 * (CONNECT_DATA=(SID=STAT)) * (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1336)) * establish * STAT * 0
24-APR-2003 12:34:09 * (CONNECT_DATA=(SID=STAT)) * (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1339)) * establish * STAT * 0
24-APR-2003 12:36:48 * (CONNECT_DATA=(SID=STAT)) * (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1346)) * establish * STAT * 0

Странно, почему при каждом обращении, порт разный???

Ошибка, насколько я поняла, была в listener.ora.

Неправильно

LISTENER = ...

SID_LIST_MY_HOST_LISTENER = ...

Правильно

LISTENER = ...

SID_LIST_LISTENER = ...

Это отличие я обнаружила, посмотрев пример listener.ora.sample в папке hs\admin.

В базе STAT есть единственная таблица LOG. Далее делаю следующее
SQL> connect sys as sysdba

Enter password:

Connected.

SQL> create public database link STAT using 'STAT';



Database link created.



SQL> select * from LOG@STAT;

select * from LOG@STAT

                  *

ERROR at line 1:

ORA-00604: error occurred at recursive SQL level 1

ORA-00942: table or view does not exist

Может что то неправильно или упущено в создании линка или запроса?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle: dblink к внешней базе через ODB 29 авг 2011 05:25 #3525

Очень хорошо))
Теперь попробуй select * from "LOG"@STAT; или select * from "log"@STAT;

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle: dblink к внешней базе через ODB 29 авг 2011 05:26 #3526

  • Lessa
  • Lessa аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 50
  • Спасибо получено: 0
Попробовала - та же ошибка. А как можно проследить весь процесс выполнения этого запроса? Трайс там итп. Как я поняла ответ что нет такой таблицы выдает ODBC или база источник?

А что еще можно с database link сделать? Можно список таблиц в этой базе через линк получить?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle: dblink к внешней базе через ODB 29 авг 2011 05:26 #3527

Можно. Если это не Oracle, то не знаю как :-)
Крайнее предположение - нет прав на эту таблицу, ворачивает ORA-00942: table or view does not exist.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1
  • 2