|
|
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
Добрый день. Установила и настроила freetds и unixodbc все как здесь http://www.sql.ru/forum/431539/2faq-kak-nastroit-odbc-pod-linux-chtoby-dostuchatsya-iz-oracle-do-mssql написано. Но все равно не работает линк, не могу понять в чем причина, ниже привела конфиги, может кто подскажет, где ошибаюсь. Есть еще предположение, может несовместимость версий или разрядности? У меня Oracle 10g Linux x32 и MS SQL 2012 x64. %ORACLE_HOME%/hs/admin/initmymssql.ora Код: sql 1. 2. 3. 4. 5. 6. 7. 8. listener.ora Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. tnsnames.ora Код: sql 1. 2. 3. 4. 5. 6. [oraprod@sak-oebst02 ~]$ tnsping mymssql TNS Ping Utility for Linux: Version 10.2.0.3.0 - Production on 23-MAY-2013 18:04:52 Copyright (c) 1997, 2006, Oracle. All rights reserved. Used parameter files: %ORACLE_HOME%/network/admin/PROD_test.domain/sqlnet_ifile.ora Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS = (protocol=tcp)(host=test)(port=1521)) (connect_data = (sid=mymssql)) (HS=OK)) OK (0 msec) Создан dblink: CREATE DATABASE LINK TEST CONNECT TO <пользователь_mssql> IDENTIFIED BY <пароль> USING 'mymssql'; Dblink создан успешно, при проверке соединения через дблинк возникает ошибка: Код: sql 1. 2. 3. Сообщение в alert.log HS: Unable to establish RPC connection to HS Agent... HS: ... Agent SID = (DESCRIPTION=(ADDRESS=(protocol=tcp)(host=test)(port=1521))(connect_data=(sid=mymssql))), NCR error = 65535 Unable to retrieve text of NETWORK/NCR message 65535 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2013, 16:00 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
а odbc соединение отдельно открывается? ps была какаято утилита для проверки из командной строки название запамятовал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 08:57 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
В файле hsodbcsql.trc может быть подсказка. Если такого нет, можно попробовать удалить параметр HS_FDS_TRACE_FILE_NAME = /tmp/hsodbcsql.trc, и поискать логи где-то тут: %ORACLE_HOME%/hs/log ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 09:15 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
XCB, Я проверяла так как в статье isql -v mymssql <логин> <пароль> коннектилось без проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 09:42 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
Digit_ALL, Файл hsodbcsql.trc есть, но он пустой, сделала как Вы написали в %ORACLE_HOME%/hs/log тоже пусто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 09:46 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
tanyshkaконнектилось без проблем. На всякий случай, запусти isql и проверь что выдает: Код: sql 1. Но похоже проблема в listener.ora где скорее всего нужно указать ENVS. Я не знаком с freetds. Использую EasySoft драйвер для SQL Server, но принцип должен быть тот-же. Листенер создает "clean environment" процесс и посему библиотеки oracle и freetds и environment variables которыми он пользуется не определены. Их необходимо задать в listener'е, в SID_DESC с помощью ENVS. Вот пример для EasySoft: Код: plsql 1. 2. 3. 4. 5. 6. Читай доку по freetds на предмет listener/envs. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 16:00 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
SY, Проверила выборку в isql, все ок выдает имя базы. Добавила LD_LIBRARY_PATH дописала нужные пути ко всем библиотекам и hs и odbc и freetds. Ошибка та же. Мне не принципиально, через что подключаться главное результат. Попробую EasySoft. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 16:44 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
А задача какая? чего хотите достичь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 16:47 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
tanyshkaМне не принципиально, через что подключаться главное результат. Попробую EasySoft. EasySoft = $ SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 16:48 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
tanyshkaОшибка та же. Listener перезапустила? В ENVS нужно все что требуется isql. Попробуй unset все envimonment variables и добавлять пока не запустится isql. Это даст список того что надо засунуть в ENVS. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 16:52 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
SY, Я так понимаю данный продукт платный, может кто посоветует бесплатный драйвер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 16:57 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
совсем чайникА задача какая? чего хотите достичь? Хочу получить рабочий dblink с oracle на sql. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 17:08 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
tanyshkaХочу получить рабочий dblink с oracle на sql. Для чего? Может оказаться, что лучше получить линк с MS SQL на Oracle или использовать GG... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 17:16 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
А есть свободная рабочая станция или сервер с MS Win? Можно HS agent поднять там, а конектитсься через него. Ставишь там Oracle Server Software only Базу не создаешь, поднимаешь только listener Там настраиваешь агента и делаешь на эту машину DBLINK c Linux ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 17:17 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
tanyshkaсовсем чайникА задача какая? чего хотите достичь? Хочу получить рабочий dblink с oracle на sql. ок. как решите проблему сможете мне чайнику рассказать как? я делал наоборот через sql server. там очень просто, есть linked server. устанавливал ораклового клиента, а далее в linked server выбирал параметры для подключения. почему я спросил про задачу, допустим что нужно вам что-то передавать из oracle в mssql. не рассматриваете как вариант сохранять файлы, например xml, в папке ОС, а затем, например через Integration services обрабатывать их и подкачивать в БД MS SQL. поэтому я и спросил для чего вам это надо. однако задачу прямого dblink из oracle в mssql я не решал, поэтому буду рад, если вы со мной поделитесь её решением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 17:19 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
SYtanyshkaОшибка та же. Listener перезапустила? В ENVS нужно все что требуется isql. Попробуй unset все envimonment variables и добавлять пока не запустится isql. Это даст список того что надо засунуть в ENVS. SY. Конечно перезапустила. Удалила все переменные, запустила /usr/bin/isql -v mymssql пользователь пароль, отработало. Получается ему вообще не надо никаких переменных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 17:21 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
В обратную сторону все настроено, linked servers, проблем нет. Предавать файлами не вариант. Мне нужно онлайн получать информацию в оракл из ms sql, поэтому дб линк - единственное решение. Настраивать на стороне ms sql не могу, не мой сервер, я получила только логин с него. Если все таки найду решение, то конечно опишу детально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 17:26 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
[quot tanyshka]SYПолучается ему вообще не надо никаких переменных? Сомневаюсь. Как минимум, он должен знать где лежит odbc.ini. Разве что c freetds он всегда должен быть в определеной директории. Еще момент, listener выполняется под unix id oracle, посему oracle должен иметь сответствующие привилегии на freetds. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 18:58 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
tanyshkalistener.ora Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Файлик именно в таком виде? Как минимум скобки... SID_DESC внутри SID_DESC естественно, никак не опознается Не говоря уж об %ORACLE_HOME% ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2013, 01:47 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
Вячеслав Любомудров, В файле %ORACLE_HOME% -естественно реальный путь. Не поняла про скобки, я где-то их пропустила? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2013, 09:47 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
как то так попробуйте: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2013, 09:54 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
SY, Про oracle пользователя я помню, поэтому под ним и проверяла. Я на файлы freetds сделала права 777. У меня библиотеки freetds и odbc лежат в /usr/local/lib/ и /usr/lib их и прописала в LD_LIBRARY_PATH ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2013, 09:55 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
Digit_ALL, Точно скобку не там закрыла. Вообщем решение где-то рядом, теперь ошибка ORA-12154. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2013, 13:14 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
Ура, получилось. Создала линк таким образом: CREATE PUBLIC DATABASE LINK "test" CONNECT TO TEST IDENTIFIED BY <PWD> USING '(DESCRIPTION = (ADDRESS = (protocol=tcp)(host=test)(port=1521)) (connect_data = (sid=mymssql)) (HS=OK))'; Connection : Successful Потом еще была трабла с соединением добавила: 1. Set INBOUND_CONNECT_TIMEOUT_<listener_name>=0 in listener.ora 2. Set SQLNET.INBOUND_CONNECT_TIMEOUT=0 in sqlnet.ora Итого, ошибка была в скобке в listener.ora и dblink, почему то не захотел использовать имя из tnsnames.ora И еще может кому пригодится, имя таблицы д.б. в кавычках по другому у меня не работает: SELECT * from "dbo.table_test"@test Спасибо всем за помощь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2013, 14:22 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
Dblink настроила, работает. Да вот только странно он работает, например, выбираю из таблицы Код: sql 1. Возвращает 5ть колонок из 7ми Если обратиться к тому столбцу, который он не показывает Код: sql 1. 2. На металинке говорят, что это баг 11ой версии, но у меня 10g. The ORA-00904 can be caused when a character length does not match between starting and receiving databases. http://www.dba-oracle.com/t_ora_00904_select_nvarchar_sql_server.htm Решение не помогло. Может у Вас есть идеи? Проблема, скорее всего, связана с текстовыми типами данных (тип столбца, который не отображаеться nvarchar) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2013, 18:01 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=38321007&tid=1883589]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
174ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 520ms |

| 0 / 0 |
