powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / dblink к внешней базе через ODBC, что не правильно?
20 сообщений из 20, страница 1 из 1
dblink к внешней базе через ODBC, что не правильно?
    #32146859
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вроде бы все сделала как говорится в Oracle9i Heterogeneous Connectivity Administrator's Guide, не работает. В listener.log говорит

Код: plaintext
1.
(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 со следующим содержимым

Код: plaintext
1.
2.
HS_FDS_CONNECT_INFO = IB
HS_FDS_TRACE_LEVEL=ON
HS_FDS_TRACE_FILE_NAME=d:\_o\ibtrace.log


3) Файл listener.ora

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
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

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
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)
)
...
Рейтинг: 0 / 0
dblink к внешней базе через ODBC, что не правильно?
    #32147260
Angel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перезапусти листенер
...
Рейтинг: 0 / 0
dblink к внешней базе через ODBC, что не правильно?
    #32147674
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Повторила пример заново - 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. Далее делаю следующее

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
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


Может что то неправильно или упущено в создании линка или запроса?
...
Рейтинг: 0 / 0
dblink к внешней базе через ODBC, что не правильно?
    #32147697
Angel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй select * from "LOG"@STAT; или select * from "log"@STAT;
...
Рейтинг: 0 / 0
dblink к внешней базе через ODBC, что не правильно?
    #32147723
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовала - та же ошибка. А как можно проследить весь процесс выполнения этого запроса? Трайс там итп. Как я поняла ответ что нет такой таблицы выдает ODBC или база источник?

А что еще можно с database link сделать? Можно список таблиц в этой базе через линк получить?
...
Рейтинг: 0 / 0
dblink к внешней базе через ODBC, что не правильно?
    #32147763
Angel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно. Если это не Oracle, то не знаю как :-)
Крайнее предположение - нет прав на эту таблицу, ворачивает ORA-00942: table or view does not exist.
...
Рейтинг: 0 / 0
dblink к внешней базе через ODBC, что не правильно?
    #32147771
MA_D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Violina:
список таблиц
select * from dba_tables@stat
...
Рейтинг: 0 / 0
dblink к внешней базе через ODBC, что не правильно?
    #32147788
Angel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 MA_D

Замечательно.
Когда бы сам дошел до такого.
...
Рейтинг: 0 / 0
dblink к внешней базе через ODBC, что не правильно?
    #32147796
Angel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В догонку. А еще, кроме dba_tables, что можно поселектить?
...
Рейтинг: 0 / 0
dblink к внешней базе через ODBC, что не правильно?
    #32147843
MA_D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBA_CATALOG
DBA_COL_COMMENTS
DBA_COL_PRIVS
DBA_OBJECTS
DBA_TAB_COLUMNS
DBA_TAB_COMMENTS
...
Рейтинг: 0 / 0
dblink к внешней базе через ODBC, что не правильно?
    #32147846
MA_D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBA_COL_PRIVS можно не селектить
...
Рейтинг: 0 / 0
dblink к внешней базе через ODBC, что не правильно?
    #32147848
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select * from dba_tables@stat не работает.

Может дело в способе создания линка? Попробовала пересоздать линк по другому. Получила следующее.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SQL> create public database link STAT connect to sysdba identified by  "masterkey
"  using 'STAT';

Database link created.

SQL> select * from LOG@STAT;
select * from LOG@STAT
                  *
ERROR at line  1 :
ORA- 28536 : error in processing Heterogeneous Services initialization parameters
ORA- 28507 : error in data dictionary view sys.hs$_class_init
ORA- 02063 : preceding  2  lines from STAT
ORA- 00604 : error occurred at recursive SQL level  1 
ORA- 00942 : table or view does not exist


Интересно что sys.hs$_class_init у меня нет вообще (user sys as sysdba).

Код: plaintext
1.
2.
3.
4.
SQL> select * from sys.hs$_class_init;
select * from sys.hs$_class_init
                  *
ERROR at line  1 :
ORA- 00942 : table or view does not exist


А таблица v$hs_agent пуста

Код: plaintext
1.
2.
SQL> select * from v$hs_agent;

no rows selected


Может у меня чего то не установлено?
...
Рейтинг: 0 / 0
dblink к внешней базе через ODBC, что не правильно?
    #32147857
MA_D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Violina: Tnsping stat что говорит?
...
Рейтинг: 0 / 0
dblink к внешней базе через ODBC, что не правильно?
    #32147862
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
O:\>tnsping stat

TNS Ping Utility for  32 -bit Windows: Version  9 . 0 . 1 . 1 . 1  - Production on  24 -APR- 20 
 03   14 : 14 : 43 

Copyright (c)  1997  Oracle Corporation.  All rights reserved.

Used parameter files:
d:\oracle9\network\admin\sqlnet.ora
d:\oracle9\network\admin\tnsnames.ora

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = my_host)(PORT =  1521 ))) (CONNECT_DATA =(SID = STAT)) (HS = OK))
OK ( 60  msec)

O:\>
...
Рейтинг: 0 / 0
dblink к внешней базе через ODBC, что не правильно?
    #32147883
MA_D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
create database link stat using 'IB'
...
Рейтинг: 0 / 0
dblink к внешней базе через ODBC, что не правильно?
    #32147891
MA_D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сорри не внимательно посмотрел
...
Рейтинг: 0 / 0
dblink к внешней базе через ODBC, что не правильно?
    #32147901
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перегнала эту таблицу из InterBase в MS Access и MS SQL. Попробовала настроить hsodbc на них, результат тот же, хотя tnsping OK. Может нужно еще что то в Оракл отконфигурить чтобы работало?

То что у меня такое вот выдается

Код: plaintext
1.
2.
3.
4.
SQL> select * from sys.hs$_class_init;
select * from sys.hs$_class_init
                  *
ERROR at line  1 :
ORA- 00942 : table or view does not exist


Код: plaintext
1.
2.
SQL> select * from v$hs_agent;

no rows selected


это ведь по идее не нормально. Может надо еще какой нибудь скрипт выполнить?
...
Рейтинг: 0 / 0
dblink к внешней базе через ODBC, что не правильно?
    #32147921
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обнарула в каталоге hs\trace логи

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Oracle Corporation  --- THURSDAY  APR 24 2003 14:42:08.260
 

Heterogeneous Agent Release 
 9 . 0 . 1 . 1 . 1  

( 0 ) [Generic Connectivity Using ODBC] version:  2 . 0 . 4 . 0 . 0030 
( 0 ) connect string is:
( 0 ) YEAR2000_POLICY=- 1 ;CONSUMER_API= 1 ;SESSION_BEHAVIOR_FLAGS= 4 ;PARSER_DEPTH= 2000 ;E-
( 0 ) XEC_FLAGS =  131592 ;defTdpName=STAT;binding=(STAT,ODBC, "STAT" );
( 0 ) ORACLE GENERIC GATEWAY Log File Started at  24 -Apr- 03   14 : 42 : 08 
Remote HO Agent received unexpected RPC disconnect

status  1003 :  ncrorpi_recv_procid, called from hotk.c, proc uid DBA7E63607BB-5B47-E000-72701B6A6FF0


Может на основе этой информации кто что подскажет?
...
Рейтинг: 0 / 0
dblink к внешней базе через ODBC, что не правильно?
    #32147943
MA_D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то, что у меня
Oracle 9.2.0.3 Win2k

c:\oracle\ora92\hs\admin\initalf.ora
HS_FDS_CONNECT_INFO = alf
HS_FDS_TRACE_LEVEL = ON
ODBC на MSSQL

c:\oracle\ora92\hs\admin\initboi.ora
HS_FDS_CONNECT_INFO = boi
HS_FDS_TRACE_LEVEL = ON
ODBC на dbase


listener.ora
# LISTENER.ORA Network Configuration File: C:\oracle\ora92\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.

LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = w2k-srv)(PORT = 1521))
)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = master)
(ORACLE_HOME = c:\oracle\ora92)
(SID_NAME = master)
)
(SID_DESC =
(PROGRAM = hsodbc)
(ORACLE_HOME = c:\oracle\ora92)
(SID_NAME = boi)
)
(SID_DESC =
(PROGRAM = hsodbc)
(ORACLE_HOME = c:\oracle\ora92)
(SID_NAME =alf)
)
)


tnsnames.ora
boi =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = w2k-srv)(PORT = 1521))
)
(CONNECT_DATA =
(SID = boi)
)
(HS = OK)
)
alf =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = w2k-srv)(PORT = 1521))
)
(CONNECT_DATA =
(SID = alf)
)
(HS = OK)
)

в базе
create database link alf using 'alf'
create database link alf using 'boi'
Все замечательно работает

попробуй создать ODBC dbase на локальную папку какую-нить, посмотрим че скажет
...
Рейтинг: 0 / 0
dblink к внешней базе через ODBC, что не правильно?
    #32148675
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашла ошибку, почему не работало! У меня не был выполнен CATHS.SQL. Да уж пришлось помучаться.

Ответ нашла на гугле по строке ошибки из лога hs\trace Remote HO Agent received unexpected RPC disconnect . Докумет просто замечательный, правда на немецком, где все подробно расписано как hsodbc подключать с разъяснениями ошибок и в чем могут быть их причины.

http://www.doag.de/pub/docs/DOAGnews/2003-1/Generic_Connectivity_DOAG.doc

Так что по будущим вопросам dblink к ODBC ссылайте на этот топик!

Всем спасибо!

Остался правда один вопрос у меня, когда нужно использовать слово world в создании таких линков, в форуме видела, что .dba советовал так делать, но у меня вроде и без этого работает?
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / dblink к внешней базе через ODBC, что не правильно?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]