Настройка издателя 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 Publishing считается устаревшим. Чтобы перемещать данные, создавайте решения с использованием change data capture и 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 и DROP PUBLIC SYNONYM

  • CREATE PROCEDURE

  • CREATE SEQUENCE

  • СОЗДАНИЕ СЕАНСА

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

  • СОЗДАЙТЕ ЛЮБОЙ TRIGGER. Это требуется, только если одновременно выполняется репликация моментальных снимков и транзакций.

  • CREATE TABLE

  • CREATE VIEW

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

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

Примечание.

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

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

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

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

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

Действие Описание
Идентификация базы данных Существует два способа идентификации базы данных. Первый способ использует компонент 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, необходимо указать порт, на котором прослушиватель ожидает запросы на подключение к целевой базе данных. По умолчанию для протокола 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.