Гетерогенный сервис

dbstalker, 24 июня

В первый раз довелось настраивать гетерогенный сервис для ORACLE 8. С того времени сохранилась инструкция (я её приведу ниже). По ней настраивался гетерогенный сервис для ORACLE 9 и 10. Так как ORACLE 10g у меня под Linux, то были некоторые отличительные моменты, о которых я упомяну в конце поста. Сервис настраивался для работы с dbf-файлами. Для работы с файлами excel пользовались инструкцией здесь есть описание настройки для работы с Microsoft SQL Server и приведены решения возможных проблем.

Гетерогенный сервис – компонент интегрированный в базу данных и служит для того, чтобы можно было из среды оракла работать с неоракловскими базами данных как вроде они часть базы данных ORACLE. Доступ к внешним данным через гетерогенный сервис осуществляется через DATABASE LINK.

И так, настройка гетерогенного сервиса.

  1. В случае использования ОС Windows NT 4.0 необходимо установить “Microsoft Data Access Components 2.5” (mdac_typ.exe). После установки этой библиотеки необходимо перегрузить ОС Windows NT 4.0.
  2. Создаем системный ODBC-источник “DBF” для драйвера “Microsoft Visual FoxPro Driver” на компьютере, где находится сервер баз данных Oracle8i.В графе “Database type” указать “Free Table directory”, “Path” – путь к папке (желательно локальной) где планируется размещать DBF-файлы.
  3. Создаем файл инициализации - файл initDBF.ora в папке %ORACLE_HOME%\hs\admin должен быть, например, таким
    HS_FDS_CONNECT_INFO = DBF
    HS_FDS_TRACE_LEVEL = OFF
    HS_LANGUAGE=ukrainian_AMERICA.RU8PC866
    
  4. Создаем дополнительный LISTENER. Для этого в файл %ORACLE_HOME%\network\admin\listener.ora добавляем строки:
    LSNR2 =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = HOST)(PORT = 1526))
      )
    SID_LIST_LSNR2 =
      (SID_LIST =
        (SID_DESC =
          (PROGRAM = d:\oracle\ora817\bin\hsodbc)
          (SID_NAME = DBF)
          (ORACLE_HOME = d:\oracle\ora817)
        )
      )
    
    где HOST – имя сервера, 1526 – № свободного порта, d:\oracle\ora817 – Ваш %ORACLE_HOME%\
  5. Создать соответствующую запись в %ORACLE_HOME%\network\admin\tnsnames.ora.Для этого добавляем строки:
    DBF.domain =
     (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1526))
        )
        (CONNECT_DATA =
          (SID = DBF)
        )
        (HS = OK)
      )
    
    где .domain – параметр db_domain из файла init.ora, 1526 – № порта указанный в предыдущем пункте.
  6. С помощью программы lsnrctl запустить созданный листенер LISTENER.Для этого из оболочки lsnrctl выполнить команду start lsnr2
  7. В случае использования ОС Windows 2000 с установленным компонентом Active Directory необходимо в файле %ORACLE_HOME%\network\admin\sqlnet.ora установить - SQLNET.AUTHENTICATION_SERVICES= (NONE)
  8. Создать DATABASE LINK из оболочки SQL Plus (пользователем SYS або SYSTEM) с помощью команды:
    	CREATE PUBLIC DATABASE LINK "HS.WORLD" USING 'DBF.domain' ;
    
    где .domain – параметр db_domain из файла init.ora
  9. Проверить функционирование HS выполнив из SQL Plus запрос
    	SELECT TABLE_NAME FROM ALL_TABLES@HS.WORLD;
    
    Эта команда должна выдать перечень всех DBF-файлов, которые находятся в папке, куда показывает ODBC-источник “DBF”.

Это все. Касательно гетерогенного сервиса для ORACLE 10g под LINUX. Так как не удалось раздобыть ODBC –драйвера, то пришлось пойти извращенным путем.

На сервере, где ОС WINDOWS, работает гетерогенный сервер на базе данных ORACLE9, установленный по инструкции изложенной выше. На сервере, где ОС LINUX, в tnsnames.ora добавили строки:

DBF.domain =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = host_win)(PORT = 1526))
    )
    (CONNECT_DATA =
      (SID = DBF)
    )
    (HS = OK)
  )

где host_win – имя сервера под ОС WINDOWS с установленным гетерогенным сервисом.В этой базе создали DATABASE LINK:

CREATE PUBLIC DATABASE LINK "HS.WORLD" USING 'DBF.domain' ;

Вот и все. Хотя очень хотелось, чтобы кто-то отозвался и посоветовал как этот сервис создать “неизвращенным” способом на LINUX для ORACLE 10g.

Тэги: общее

ОднаКнопка

2 комментария

Прокоментировать

Молодой разработчик
24 июня 2008 г. в 18:29

Интересная информация. К сожалению я только приступаю к изучению Оракла. Уже добавил сайт в закладки.
Спаисбо за интересные публикации!

Shiko
30 октября 2008 г. в 17:00

"Вот и все. Хотя очень хотелось, чтобы кто-то отозвался и посоветовал как этот сервис создать “неизвращенным” способом на LINUX для ORACLE 10g."
Вот и я сижу в поисках как настроить для 10g для windows 2003 x64 платформы без извращений результатов 0. На 32-ой стал беспроблем причем новый листенер не создавал достаточно было добавить
(SID_DESC =
    (PROGRAM = d:\oracle\ora\bin\hsodbc)
    (SID_NAME = DBF)
    (ORACLE_HOME = d:\oracle\ora)
)
Статья хорошая, автору респект регулярно просматриваю блог

 

Новый комментарий

Я не спамер: введите суму 0+8



 

От авторов блога

О Блоге - прочитай перед началом.

Задать вопрос и получить ответ - уже решено 94 вопросов

Глоссарий - список терминов и сокращений


 
 

Бизнес форум

Последние темы:

средства для рук
17 августа, 3 ответа
(Без темы)Шкаф купе
17 августа, 2 ответа
Страховая компания
17 августа, 1 ответа