Используем документацию http://docs.oracle.com/cd/E11882_01/...e12013/toc.htm
Версии:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
MSSQL 2000
[oracle@oebs admin]$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.5 (Tikanga)
[oracle@oebs admin]$ cat /etc/oracle-release
Oracle Linux Server release 5.5
- Для указанной версии Oracle БД ставим софт из p10098816_112020_Linux-x86-64_5of7.zip стандартным образом, через runInstaller. Выбираем среди предлагаемых продуктов MSSQL. Установка должна завершится без ошибок.
- Прописываем в $ORACLE_HOME/dg4msql/admin/initdg4msql.ora (тут прописываются данные удалённого mssql-сервера):
HS_FDS_CONNECT_INFO=[<доменное имя или адрес севера mssql>]:<порт сервера mssql>//<база данных mssql>
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER - Прописываем дополнительный лисенер в $ORACLE_HOME/network/admin/listener.ora
(тут прописываются данные локального лисенера. <название
лисенера> должно совпадать с названием того лисенера, который уже
есть!!!):
SID_LIST_<название листенера>=
(SID_LIST=
(SID_DESC=
(SID_NAME=dg4msql)
(ORACLE_HOME=/home/oracle/product/db11202)
(PROGRAM=dg4msql)
)
) - Прописываем новый инстанс в $ORACLE_HOME/network/admin/tnsnames.ora (тут прописываются данные, где инсталлирован агент - в нашем случае - сам хост, где установлена база данных ORACLE):
dg4msql =
(DESCRIPTION =
(ADDRESS =
(PROTOCOL = TCP)
(HOST = <доменное имя хоста, где установлен агент. В нашем случае - текущий локальный хост с базой>)
(PORT = <порт, по которому слушает лисенер. Должен совпадать с портом, указанным в listener.ora>)
)
(CONNECT_DATA =
(SID = dg4msql)
)
(HS=OK)
)
- В $ORACLE_HOME/network/admin/sqlnet.ora должно быть написано
NAMES.DIRECTORY_PATH= (TNSNAMES) - Рестуртуем listener:
lsnrctl stop <название лисенера>
lsnrctl start <название лисенера>
lsnrctl status <название лисенера>
В информации о статусе должно присутствовать:
Service "dg4msql" has 1 instance(s).
Instance "dg4msql", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully - Создаём dblink:
sqlplus "/as sysdba":
SQL> create public database link mssql connect to "<имя пользователя mssql>" IDENTIFIED BY "<пароль пользователя mssql>" USING 'dg4msql';
пример:
- Удаление dblinkа при необходимости делается следующей командой:
SQL> drop public database link mssql; - Селекты делаются следующей командой:
SQL> select * from user.table@mssql - Синтаксис для использования алиасов своеобразный:
SQL> select "t"."column_name" from "user"."table"@mssql "t"; - При работе с полями mssql типа datetime выдаёт то правильные значения, то бинарный мусор. Помогает явное приведение типа:
SQL> select to_date("t"."column_with_date") from "user"."table"@mssql "t";
Комментариев нет:
Отправить комментарий