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


Подписчики Oracle

Начиная с SQL Server 2005 года SQL Server поддерживает принудительные подписки на Oracle через поставщик OLE DB Oracle, предоставляемый Oracle.

Настройка подписчика Oracle

Для настройки подписчика Oracle выполните следующие шаги:

  1. Установите и настройте клиентское сетевое программное обеспечение Oracle и поставщик Oracle OLE DB на распространитетеле SQL Server, чтобы распространитель смог устанавливать подключения к подписчику Oracle. Клиентское сетевое программное обеспечение Oracle должно быть самой последней доступной версии. Oracle рекомендует пользователям установить самую новую версию клиентского программного обеспечения. Клиентское программное обеспечение часто бывает новее, чем программное обеспечение баз данных. Наиболее простым способом установки программного обеспечения является использование универсального установщика Oracle с диска Oracle Client. В универсальном установщике Oracle необходимо ввести следующие сведения:

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

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

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

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

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

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

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

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

  1. Нажмите кнопку Пуск, затем щелкните Выполнить.

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

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

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

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

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

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

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

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

Примечание

Если на распространитетеле SQL Server используется несколько домашних экземпляров Oracle, убедитесь, что агент распространения использует последний поставщик Oracle OLE DB. В некоторых случаях Oracle не обновляет поставщик OLE DB по умолчанию при обновлении клиентских компонентов на распространитетеле SQL Server. Удалите старого поставщика OLE DB и установите его самую последнюю версию. Дополнительные сведения об установке и удалении поставщика см. в документации Oracle.

Вопросы, касающиеся подписчиков Oracle

Помимо вопросов, описанных в разделе Non-SQL Server Subscribers, необходимо рассмотреть следующие вопросы при репликации на подписчики Oracle:

  • Oracle обрабатывает как пустые строки, так и значения NULL как NULL. Это важно, если столбец SQL Server определен как NOT NULL и выполняется репликация столбца на подписчик Oracle. Во избежание сбоев при применении изменений на подписчике Oracle необходимо выполнить одно из следующих действий:

    • Убедиться в том, что пустые строки не вставляются в опубликованную таблицу в качестве значений столбцов.

    • Использовать параметр -SkipErrors для агента распространителя, если желательно получать уведомления об ошибках в журнал агента распространителя и продолжать обработку. Задать код ошибки Oracle 1400 (-SkipErrors1400).

    • Измените сформированный скрипт создания таблицы, удалив атрибут NOT NULL из любого символьного столбца, с которым могут быть связаны пустые строки, и предоставьте измененный скрипт в качестве пользовательского скрипта создания для статьи, используя параметр @creation_script хранимой процедуры sp_addarticle.

  • Подписчики Oracle поддерживают параметр схемы 0x4071. Дополнительные сведения о параметрах схемы см. в разделе sp_addarticle (Transact-SQL).

Сопоставление типов данных SQL Server и Oracle

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

Тип данных SQL Server Тип данных Oracle
bigint NUMBER(19,0)
binary(1-2000) RAW(1-2000)
binary(2001-8000) BLOB
bit NUMBER(1)
char(1-2000) CHAR(1-2000)
char(2001-4000) VARCHAR2(2001-4000)
char(4001-8000) CLOB
date DATE
datetime DATE
datetime2(0-7) TIMESTAMP(7) для Oracle 9 и Oracle 10, VARCHAR(27) для Oracle 8
datetimeoffset(0-7) TIMESTAMP(7) WITH TIME ZONE для Oracle 9 и Oracle 10, VARCHAR(34) для Oracle 8
decimal(1-38, 0-38) NUMBER(1-38, 0-38)
float(53) FLOAT
float FLOAT
geography BLOB
geometry BLOB
hierarchyid BLOB
image BLOB
int NUMBER(10,0)
money NUMBER(19,4)
nchar(1-1000) CHAR(1-1000)
nchar(1001-4000) NCLOB
ntext NCLOB
numeric(1-38, 0-38) NUMBER(1-38, 0-38)
nvarchar(1-1000) VARCHAR2(1-2000)
nvarchar(1001-4000) NCLOB
nvarchar(max) NCLOB
real ВЕЩЕСТВЕННОЕ ЧИСЛО
smalldatetime DATE
smallint NUMBER(5,0)
smallmoney NUMBER(10,4)
sql_variant Недоступно
sysname VARCHAR2(128)
text CLOB
time(0-7) VARCHAR(16)
timestamp RAW(8)
tinyint NUMBER(3,0)
uniqueidentifier CHAR(38)
varbinary(1-2000) RAW(1-2000)
varbinary(2001-8000) BLOB
varchar(1-4000) VARCHAR2(1-4000)
varchar(4001-8000) CLOB
varbinary(max) BLOB
varchar(max) CLOB
xml NCLOB

См. также

Non-SQL Server Subscribers
Подписка на публикации