powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / oracle dblink to mssql
6 сообщений из 6, страница 1 из 1
oracle dblink to mssql
    #39843321
Genosse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
салют, знаю тема избитая но никак не пойму почему не работает все вроде настроил... установил Oracle Database Gateway на сервер MSQL (10.10.15.247) настроил там listener, tnsnames, initdg4msql и все равно ошибка, глазюки уже все сломал

Версии:
Oracle DB 11.2.0.4
Microsoft SQL Server 2017

initdg4msql.ora из D:\product\11.2.0\tg_1\dg4msql\admin
Код: powershell
1.
2.
3.
4.
HS_FDS_CONNECT_INFO=[10.10.15.247]//BIQube
HS_FDS_TRACE_LEVEL=ON
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER



listener.ora из D:\product\11.2.0\tg_1\NETWORK\ADMIN
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ods-db-d.hcsbkkz.loc)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

SID_LIST_LISTENER=
  (SID_LIST=
      (SID_DESC=
         (SID_NAME=dg4msql)
         (ORACLE_HOME=D:\product\11.2.0\tg_1)
         (PROGRAM=D:\product\11.2.0\tg_1\BIN\dg4msql.exe)
      )
  )



tnsnames.ora оттуда же
Код: powershell
1.
2.
3.
4.
5.
6.
dg4msql  =
  (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=ods-db-d.hcsbkkz.loc)(PORT=1521))
    (CONNECT_DATA=(SERVICE_NAME = dg4msql))
    (HS=OK)
  ) 



пытаюсь подключиться с CentOS 7 бд oracle создаю там линк
Код: sql
1.
create public database link MSTEST connect to crmusr identified by "XXXXXXX" using 'dg4msql';



при это с сервера CentOS tnsping проходит
Код: sql
1.
2.
3.
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.15.247)(PORT = 1521)) (CONNECT_DATA = (SID = dg4msql) (HS = OK)))
OK (10 msec)



но при проверке получаю ошибку
Код: sql
1.
2.
ORA-28546: connection initialization failed, probable Net8 admin error
ORA-02063: preceding line from MSTEST



и на сервере MSQL ошибка в трейсе
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
Oracle Corporation --- WEDNESDAY JUL 31 2019 13:56:13.123

Heterogeneous Agent Release 
11.2.0.4.0 

HS Agent diagnosed error on initial communication,
   probable cause is an error in network administration
   Network error 2:  NCR-00002: NCR: Invalid usage
HS Gateway:  NULL connection context at exit
...
Рейтинг: 0 / 0
oracle dblink to mssql
    #39843447
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Genosse,
Ничего не напутал?

хотя tnsping правильный

Genosse...
пытаюсь подключиться с CentOS 7 бд oracle создаю там линк

create public database link MSTEST connect to crmusr identified by "XXXXXXX" using 'dg4msql';

при это с сервера CentOS tnsping проходит

Код: plaintext
1.
2.
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.15.247)(PORT = 1521)) (CONNECT_DATA = (SID = dg4msql) (HS = OK)))
OK (10 msec)


Genosse...
tnsnames.ora оттуда же
Код: plsql
1.
2.
3.
4.
5.
6.
dg4msql  =
  (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=ods-db-d.hcsbkkz.loc)(PORT=1521))
    (CONNECT_DATA=(SERVICE_NAME = dg4msql))
    (HS=OK)
  )


...


эта tns должна быть в ORACLE_HOME (TNS_ADMIN) на CentOS

10.10.15.247 - это сервер ods-db-d.hcsbkkz.loc и это windows сервер с oracle mssql gw?

Код: plsql
1.
2.
        (ORACLE_HOME=D:\product\11.2.0\tg_1)
         (PROGRAM=D:\product\11.2.0\tg_1\BIN\dg4msql.exe)



Данные записи корректны, и
Код: plaintext
D:\product\11.2.0\tg_1\BIN\dg4msql.exe
существует?

Для понимания:

HS Соединение в общем случае можно описать следующей цепочкой

(В частном случае Узлы #1 #2 #3 могут находится на одной машине):

Красный цвет - ORACLE_HOME RDBMS
Зеленый цвет - ORACLE_HOME HS Agent
Синий цвет - ПО внешнего клиента, в простейшем случае ODBC

Предполагается все файлы конфигурации расположены по умолчанию.
Код: plaintext
1.
Узел #1 Oracle RDBMS Server
Oracle RDBMS -> DBLink -> параметр USING='<<TNS запись>>' ->
-> Oracle Client ->
-> TNS Запись (ORACLE_HOME_RDBMS/network/admin/tnsnames.ora) ->
-> используются HOST, PORT, SID/SERVICE_NAME, (HS=OK) ->



видя кляузу (OS=OK) - запись обрабатывается как HS соединение

Узел #2 Oracle HS Agent (параметр HOST из tns записи)
Oracle TNS Listener который обслуживает HS
-> Listener config файл (ORACLE_HOME_HS/network/admin SID_LIST_<<листенер имя>>)->
-> секция HS agent (записи SID=<<HS Oracle SID>> и PROGRAM= исполняемый файл) ->
-> HS Agent configuration file (ORACLE_HOME_HS/hs/admin/init<<HS ORACLE SID>>.ora) ->
-> FDC_CONNECT_INFO запись ->
-> OtherDb Client ->


Узел #3 Other DB ServerOther DB Server

Для анализа Вашего случая нужны файлы:
Код: plaintext
1.
2.
ORACLE_HOME_RDBMS/network/admin/tnsnames.ora
ORACLE_HOME_HS/network/admin/listener.ora
ORACLE_HOME_HS/hs/admin/initmap.ora


в случае odbc проверить настройки ODBC (Вкладка System а не user)
из odbc администратора.

Дополнительное ограничение (версия db 10), HS плохо работает на 64 битной Windows
нужно ставить отдельно Oracle RDBMS 32
поднимать дополнительный listener из этой ORACLE_HOME на другом порту
настраивать HS там.
...
Рейтинг: 0 / 0
oracle dblink to mssql
    #39843540
Genosse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vadim LejninGenosse,
Ничего не напутал?

хотя tnsping правильный

Genosse...
пытаюсь подключиться с CentOS 7 бд oracle создаю там линк

create public database link MSTEST connect to crmusr identified by "XXXXXXX" using 'dg4msql';

при это с сервера CentOS tnsping проходит

Код: plaintext
1.
2.
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.15.247)(PORT = 1521)) (CONNECT_DATA = (SID = dg4msql) (HS = OK)))
OK (10 msec)




это потому что кто-то (т.е. я) в рабочее время когда очень сильно отвлекали пытался скрыть реальные адреса и имена серверов))) и конечно напутал...

Vadim Lejnin10.10.15.247 - это сервер ods-db-d.hcsbkkz.loc и это windows сервер с oracle mssql gw?

(ORACLE_HOME=D:\product\11.2.0\tg_1)
(PROGRAM=D:\product\11.2.0\tg_1\BIN\dg4msql.exe)


Данные записи корректны, и
D:\product\11.2.0\tg_1\BIN\dg4msql.exe
существует?

все пути существуют я их копировал из WinSCP. На сервере ods-db-d.hcsbkkz.loc (10.10.15.247) установлен только MSQL и я установил только Oracle Database Gateway, ораклового клиента или базы там не было.

Vadim LejninДля анализа Вашего случая нужны файлы:
ORACLE_HOME_RDBMS/network/admin/tnsnames.ora
ORACLE_HOME_HS/network/admin/listener.ora
ORACLE_HOME_HS/hs/admin/initmap.ora


ORACLE_HOME_RDBMS/network/admin/tnsnames.ora этого нету есть в ORACLE_HOME_HS/network/admin/ и есть на CentOS

ORACLE_HOME_HS/network/admin/listener.ora этот приводил
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
listener.ora из D:\product\11.2.0\tg_1\NETWORK\ADMIN
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ods-db-d.hcsbkkz.loc)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

SID_LIST_LISTENER=
  (SID_LIST=
      (SID_DESC=
         (SID_NAME=dg4msql)
         (ORACLE_HOME=D:\product\11.2.0\tg_1)
         (PROGRAM=D:\product\11.2.0\tg_1\BIN\dg4msql.exe)
      )
  )



ORACLE_HOME_HS/hs/admin/initmap.ora это находится здесь:
D:\product\11.2.0\tg_1\dg4msql\admin\initdg4msql.ora
Код: sql
1.
2.
3.
4.
HS_FDS_CONNECT_INFO=[10.10.15.247]//BIQube
HS_FDS_TRACE_LEVEL=ON
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
...
Рейтинг: 0 / 0
oracle dblink to mssql
    #39843571
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Genosse,

именно с Oracle Database Gateway for MS SQL не работал, но:

initdg4msql.ora
Код: plsql
1.
2.
3.
4.
HS_FDS_CONNECT_INFO=[10.10.15.247]//BIQube
HS_FDS_TRACE_LEVEL=ON
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER






Database Gateway Installation and Configuration Guide Customize the Initialization Parameter File

...
The default initialization parameter file already has an entry for this parameter. The syntax for HS_FDS_CONNECT_INFO is as follows:

HS_FDS_CONNECT_INFO= host_name/[instance_name][/database_name]

...

Where:

VariableDescriptionhost_nameis the host name or IP address of the machine hosting the SQL Server database.instance_nameis the instance of SQL Server running on the machine.database_nameis the SQL Server Database database name.


Both instance_name and database_name are optional. If instance_name is omitted and database_name is provided, the slash (/) is required. This can be shown as follows:

HS_FDS_CONNECT_INFO= host_name//database_name

p.s. [] - используется для обозначения необязательных параметров, их не надо указывать

например допустимы:
Код: plsql
1.
2.
3.
mssqlserver/test/web
mssqlserver/test
mssqlserver



Если нет уточнений, то будет использоваться параметры по умолчанию
...
Рейтинг: 0 / 0
oracle dblink to mssql
    #39844422
Genosse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так и не удалось настроить Gateway... настроил через odbc
Спасибо
...
Рейтинг: 0 / 0
oracle dblink to mssql
    #39844620
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Genosse,

Какая версия MS SQL ?
есть таблиц совместимости Oracle GW и MS SQL
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / oracle dblink to mssql
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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