Поделиться через


Настройка издателя Oracle

Область применения: SQL Server

Публикации издателей Oracle создаются таким же способом, как и публикации моментальных снимков и публикации транзакций, но перед тем как создать публикацию от издателя Oracle, необходимо выполнить следующие шаги (в данном разделе подробно описаны шаги 1, 3 и 4):

  1. Используя предоставленный скрипт, создайте в базе данных Oracle административного пользователя для репликации.

  2. На каждую из публикуемых таблиц предоставьте разрешение SELECT непосредственно (не через роль) пользователю с правами администратора Oracle, созданному на шаге 1.

  3. Установите клиентское программное обеспечение Oracle и поставщик OLE DB на распространителю Microsoft SQL Server, а затем остановите и перезапустите экземпляр SQL Server. Если распространитель запущен на 64-разрядной платформе, нужно использовать 64-разрядную версию поставщика OLE DB Oracle.

  4. Настройте базу данных Oracle в качестве издателя на распространителю SQL Server.

SQL Server поддерживает следующие разнородные сценарии репликации транзакций и моментальных снимков:

  • Публикация данных из SQL Server в подписчики, отличные от SQL Server.

  • Публикация данных в Oracle и из Oracle имеет следующие ограничения:

Сценарий 2016 или более ранние версии 2017 или более поздние версии
Репликация из Oracle Поддержка только Oracle 10g или более ранних версий Поддержка только Oracle 10g или более ранних версий
Репликация в Oracle Версии до Oracle 12c Не поддерживается

Разнородная репликация на подписчики, отличные от подписчика SQL Server, устарела. Публикация Oracle устарела. Чтобы переместить данные, создайте решения с помощью записи измененных данных и служб SSIS.

Список объектов, которые могут реплицироваться из базы данных Oracle, приводится в статье Рассмотрение структуры и ограничений издателей Oracle.

Примечание.

Необходимо быть членом предопределенной роли сервера sysadmin , чтобы включить издатель или распространитель и создать публикацию или подписку Oracle из публикации Oracle.

Создание схемы администратора репликации в базе данных Oracle

Агенты репликации подключаются к базе данных Oracle и выполняют операции в контексте созданной пользовательской схемы. Этой схеме должны быть предоставлены некоторые разрешения, перечисленные далее. Эта схема владеет всеми объектами, созданными процессом репликации Microsoft SQL Server на издателе Oracle, за исключением общедоступного синонима MSSQLSERVERDISTRIBUTOR. Дополнительные сведения об объектах, создаваемых в базе данных Oracle, см. в разделе Objects Created on the Oracle Publisher.

Примечание.

При удалении открытого синонима MSSQLSERVERDISTRIBUTOR и пользователя сконфигурированной репликации Oracle с параметром CASCADE из издателя Oracle удаляются все объекты репликации.

Для помощи в настройке пользовательской схемы репликации предоставляется образец скрипта. Скрипт доступен в следующем каталоге после установки SQL Server: <drive>:\\Program Files\Microsoft SQL Server<\InstanceName>\MSSQL\Install\oracleadmin.sql. Он также содержится в разделе Script to Grant Oracle Permissions.

Подключитесь к базе данных Oracle под учетной записью с правами доступа администратора базы данных (DBA) и выполните скрипт. Данный скрипт запрашивает имя пользователя и пароль для схемы администратора репликации, а также табличное пространство по умолчанию, в котором будут создаваться объекты (табличное пространство уже должно существовать в базе данных Oracle). Сведения об указании других табличных пространств для объектов см. в статье Управление табличными пространствами Oracle. Выберите любое имя пользователя и надежный пароль, запишите их, так как они запрашиваются позднее при настройке базы данных Oracle в качестве издателя. Рекомендуется использовать схему только для объектов, которые требуются для репликации. Не создавайте таблиц, которые будут публиковаться в этой схеме.

Создание пользовательской схемы вручную

При создании схемы администратора репликации необходимо предоставить схеме следующие разрешения, непосредственно или через роль базы данных:

  • CREATE PUBLIC SYNONYM and DROP PUBLIC SYNONYM

  • СОЗДАТЬ ПРОЦЕДУРУ

  • CREATE SEQUENCE

  • CREATE SESSION

Необходимо также предоставить пользователю непосредственно (не через роль) следующие разрешения:

  • CREATE ANY TRIGGER. Это требуется, только если одновременно выполняется репликация моментальных снимков и транзакций.

  • СОЗДАТЬ ТАБЛИЦУ

  • СОЗДАТЬ ПРЕДСТАВЛЕНИЕ

Установка и настройка клиентского сетевого ПО Oracle на распространителе SQL Server

Необходимо установить и настроить клиентское программное обеспечение Oracle и поставщик Oracle OLE DB на распространителю SQL Server, чтобы распространитель смог установить подключение к издателю Oracle. После установки программного обеспечения задайте соответствующие разрешения для папок, в которых установлено программное обеспечение, а затем остановите и перезапустите экземпляр SQL Server, чтобы убедиться, что все параметры обновлены (разрешения описаны далее в разделе "Настройка разрешений каталога").

Примечание.

Необходимо использовать клиентское сетевое ПО Oracle последней доступной версии. Oracle рекомендует пользователям установить самую новую версию клиентского программного обеспечения. Клиентское программное обеспечение часто бывает новее, чем программное обеспечение баз данных.

Наиболее простой способ установки и настройки клиентского сетевого ПО заключается в использовании универсального установщика Oracle и программы Net Configuration Assistant, расположенных на компакт-диске с клиентским ПО Oracle.

В универсальном установщике Oracle необходимо ввести следующие сведения:

Информация Description
Oracle Home Это путь к каталогу, в который устанавливается программное обеспечение Oracle. Примите значение по умолчанию (C:\oracle\ora90 или похожее) или задайте другой путь. Дополнительные сведения о каталоге Oracle Home см. в подразделе «Рассмотрение Oracle Home» далее в этом разделе.
Имя каталога Oracle Home Псевдоним для пути к каталогу Oracle Home.
Тип установки В Oracle 10g выберите параметр установки Administrator .

После того как установка Oracle завершена, для настройки сетевых подключений используйте компонент Net Configuration Assistant. Для настройки сетевых подключений необходимо ввести сведения в четырех разделах. Администратор базы данных Oracle настраивает сеть, когда устанавливает базу данных и прослушиватель, поэтому он должен быть способен предоставить эти сведения, если они отсутствуют. Необходимо выполнить следующие действия:

Действие Description
Идентификация базы данных Существует два способа идентификации базы данных. Первый способ использует компонент Oracle System Identifier (SID), который доступен во всех версиях Oracle. Второй метод использует компонент Service Name, доступный в версиях Oracle, начиная с 8.0. Оба метода используют значение, которое конфигурируется при создании базы данных, и важно, чтобы конфигурация сетевого клиента использовала тот же метод именования, что и администратор при конфигурации прослушивателя базы данных.
Идентификация сетевого псевдонима базы данных Необходимо указать сетевой псевдоним, который будет использоваться для доступа к базе данных Oracle. Этот псевдоним также предоставляется при идентификации базы данных Oracle в качестве издателя на распространителю SQL Server. Сетевой псевдоним — это, по существу, указатель на удаленный SID или имя службы, сконфигурированное при создании базы данных. Это относится к нескольким названиям в различных версиях и продуктах Oracle, включая Net Service Name и TNS Alias. SQL*Plus запрашивает этот псевдоним как параметр «Host String» при входе.
Выберите сетевой протокол. Выберите соответствующие поддерживаемые протоколы. Большинство приложений использует протокол TCP.
Задайте сведения об узле для идентификации прослушивателя базы данных Узел — это имя или DNS-псевдоним компьютера, на котором запущен прослушиватель Oracle. Обычно это тот же компьютер, на котором расположена база данных. Для некоторых протоколов, возможно, нужно будет указать дополнительные сведения. Например если выбрать протокол ТСР, нужно будет указать порт, который слушается прослушивателем для запросов на подключение к целевой базе данных. По умолчанию для протокола TCP используется порт 1521.

Установка разрешений для каталогов

Учетная запись, в которой выполняется служба SQL Server на распространитете, должна быть предоставлена возможность чтения и выполнения разрешений для каталога (и всех подкаталогов), в котором устанавливается клиентское сетевое программное обеспечение Oracle.

Проверка соединения между распространителем SQL Server и издателем Oracle

Перед завершением программы Net Configuration Assistant есть возможность проверить подключения к издателю Oracle. До начала проверки соединения убедитесь в том, что экземпляр базы данных Oracle находится в режиме «в сети» и запущен прослушиватель Oracle. Если проверка не удалась, свяжитесь с администратором Oracle, ответственным за базу данных, к которой была предпринята попытка подключиться.

После успешного подключения к издателю Oracle попробуйте подключиться к базе данных под учетной записью и паролем, связанным с созданной схемой администратора репликации. При выполнении под той же учетной записью Windows, которую использует служба SQL Server, необходимо выполнить следующее:

  1. Нажмите кнопку Пуск и выберите пункт Выполнить.

  2. Введите cmd и нажмите кнопку ОК.

  3. В командной строке введите:

    sqlplus <UserSchemaLogin>/<UserSchemaPassword>@<NetServiceName>

    Например: sqlplus replication/$tr0ngPasswerd@Oracle90Server

  4. Если настройка сети прошла удачно, будет выполнен вход и появится запрос SQL.

  5. Если при подключении к базе данных Oracle возникают проблемы, см. подраздел «Распространитель SQL Server не может подключиться к экземпляру базы данных Oracle» в разделе Troubleshooting Oracle Publishers.

Рассмотрение Oracle Home

Oracle поддерживает параллельную установку двоичных файлов приложений, но только один набор двоичных файлов может использоваться для репликации в текущий момент. Каждый набор двоичных файлов связан с Oracle Home; двоичные файлы находятся в каталоге %ORACLE_HOME%\bin. Когда репликация выполняет подключение к издателю Oracle, необходимо убедиться в том, что используется правильный набор двоичных файлов (а именно, последняя версия клиентского сетевого ПО).

Войдите в распространитель с учетными записями, используемыми службой SQL Server и службой агент SQL Server, и задайте соответствующие переменные среды. Переменная %ORACLE_HOME% должна указывать на точку установки, заданную при установке сетевого клиентского программного обеспечения. Переменная %PATH% должна включать каталог %ORACLE_HOME% \bin в качестве первой записи, относящейся к Oracle. Сведения о настройке переменных среды см. в документации по операционной системе Windows.

Настройка базы данных Oracle как издателя на распространителе SQL Server

Издатели Oracle всегда используют удаленный распространитель; Необходимо настроить экземпляр SQL Server для роли распространителя для издателя Oracle (издатель Oracle может использовать только один распространитель, но один распространитель может обслуживать более одного издателя Oracle). После настройки распространителя определите экземпляр базы данных Oracle в качестве издателя на распространителе SQL Server через SQL Server Management Studio, Transact-SQL или объекты управления репликацией (RMO). Дополнительные сведения о настройке распространителя см. в этой статье.

Примечание.

Издатель Oracle не может иметь то же имя, что и его распространитель SQL Server или то же имя, что и любой из издателей SQL Server, использующих тот же распространитель.

При идентификации баз данных Oracle в качестве издателя необходимо выбрать параметр публикации Oracle: Complete или Oracle Gateway. После идентификации издателя изменить данный параметр без удаления и перенастройки издателя невозможно. Параметр «Complete» предназначен для обеспечения публикаций моментальными снимками и публикаций транзакций полным набором поддерживаемых функций, необходимых для публикаций Oracle. Параметр «Oracle Gateway» обеспечивает оптимизацию производительности для случаев, когда шлюзом между системами выступает репликация.

После идентификации издателя Oracle на распространителю SQL Server репликация создает связанный сервер с тем же именем, что и имя службы TNS базы данных Oracle. Этот связанный сервер может использоваться только репликацией. Если необходимо подключиться к издателю Oracle через связанное подключение к серверу, создайте другое имя службы TNS, а затем используйте это имя при вызове sp_addlinkedserver (Transact-SQL).

Чтобы настроить издатель Oracle и создать публикацию, см. раздел Create a Publication from an Oracle Database.