Как создать подписку для подписчика, отличного от подписчика SQL Server (среда SQL Server Management Studio)

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

  1. Установите и настройте на распространителе SQL Server соответствующее клиентское программное обеспечение и соответствующий поставщик OLE DB. Дополнительные сведения см. в разделах Подписчики Oracle и Подписчики IBM DB2.

  2. Создайте публикацию с помощью мастера создания публикаций. Дополнительные сведения о создании публикаций см. в разделе Как создать публикацию и определить статьи (среда SQL Server Management Studio) и Как создать публикацию из базы данных Oracle (среда SQL Server Management Studio). Укажите в мастере создания публикаций следующие параметры:

    • На странице Тип публикации выберите Публикация моментальных снимков или Публикация транзакций.

    • На странице Агент моментальных снимков снимите флажок Создать моментальный снимок немедленно.

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

  3. В диалоговом окне Свойства публикации — <ИмяПубликации> разрешите публикацию для подписчиков, отличных от SQL Server. В этом разделе содержатся дополнительные сведения об этом шаге. Дополнительные сведения о диалоговом окне «Свойства публикации» см. в разделе Свойства публикации — <Публикация>.

  4. Создайте подписку с помощью мастера создания подписок. В этом разделе содержатся дополнительные сведения об этом шаге.

  5. (Необязательно) Измените свойство статьи pre_creation_cmd для сохранения таблиц на подписчике. В этом разделе содержатся дополнительные сведения об этом шаге.

  6. Создайте моментальный снимок для публикации. В этом разделе содержатся дополнительные сведения об этом шаге.

  7. Синхронизация подписки. Дополнительные сведения см. в разделе Как синхронизировать принудительную подписку (среда SQL Server Management Studio).

ПримечаниеПримечание

Эта процедура применяется к издателям, использующим Microsoft SQL Server 2005 или более поздние версии.

Включение публикации для подписчиков, отличных от подписчиков SQL Server

  1. Подключитесь к издателю в среде Среда SQL Server Management Studio, а затем раскройте узел сервера.

  2. Раскройте папку Репликация, а затем — папку Локальные публикации.

  3. Щелкните правой кнопкой мыши публикацию, а затем щелкните Свойства.

  4. На странице Параметры подписки выберите значение True для параметра Разрешать подписчики, отличные от подписчиков SQL Server. Выбор этого параметра изменяет количество свойств так, чтобы публикация была совместимой с подписчиками, отличными от подписчика SQL Server.

    ПримечаниеПримечание

    Если выбрано значение True, то свойство статьи pre_creation_cmd устанавливается в значение «drop». Этот параметр говорит о том, что репликация должна удалить таблицу на подписчике, если ее имя совпадает с именем таблицы в статье. Если на подписчике имеются таблицы, которые необходимо сохранить, вызовите хранимую процедуру sp_changearticle для каждой статьи, указав значение none в качестве параметра pre_creation_cmd: sp_changearticle @publication= 'MyPublication', @article= 'MyArticle', @property='pre_creation_cmd', @value='none'.

  5. Нажмите кнопку ОК. Будет предложено создать новый моментальный снимок для публикации. Если не нужно создавать его в данный момент, выполните позднее шаги, описанные в следующей процедуре «Инструкции».

Создание подписки для подписчика, отличного от подписчика SQL Server

  1. Раскройте папку Репликация, а затем — папку Локальные публикации.

  2. Щелкните правой кнопкой мыши соответствующую публикацию, а затем щелкните Создать подписку.

  3. Убедитесь в том, что на странице Расположение агента распространителя установлен флажок Выполнять все агенты на распространителе. Подписчики, отличные от SQL Server, не поддерживают выполнение агентов на подписчике.

  4. На странице Подписчики щелкните Добавить подписчик, а затем — Добавить подписчик, отличный от подписчика SQL Server.

  5. В диалоговом окне Добавление подписчика, отличного от подписчика SQL Server выберите тип подписчика.

  6. Введите значение в поле Имя источника данных:

    • Для Oracle это будет введенное TNS-имя (transparent network substrate).

    • Для IBM это может быть любое имя. Обычно указывается сетевой адрес подписчика.

    На этом этапе вводится имя источника данных, и учетные данные, указанные на шаге 9, этим мастером не проверяются. Они не используются репликацией, пока для этой подписки выполняется агент распространителя. Подключившись к подписчику с помощью клиентского средства (например, sqlplus для Oracle), убедитесь в том, что все значения проверены. Дополнительные сведения см. в разделах Подписчики Oracle и Подписчики IBM DB2.

  7. Нажмите кнопку ОК. Теперь на странице Подписчики мастера данный подписчик будет отображен в столбце Подписчик с доступным только для чтения значением (назначение по умолчанию) в столбце База данных подписки:

    • Для СУБД Oracle сервер имеет не более одной базы данных, поэтому нет необходимости указывать базу данных.

    • Для IBM DB2 база данных указывается в свойстве строки соединения DB2 Исходный каталог, которое может быть введено в поле Дополнительные параметры соединения, описанном далее в этом разделе.

  8. Чтобы получить доступ к диалоговому окну Безопасность агента распространителя, на странице Безопасность агента распространителя нажмите кнопку свойств (), расположенную рядом с подписчиком.

  9. В диалоговом окне Безопасность агента распространителя выполните следующие действия:

    • Введите в поля Учетная запись процесса, Пароль и Подтверждение пароля учетную запись и пароль Microsoft Windows, под которыми будет выполняться агент распространителя, и установите локальное соединение с распространителем.

      Эта учетная запись должна иметь следующие минимальные разрешения: членство в предопределенной роли базы данных db_owner в базе данных распространителя; членство в списке доступа к публикации (PAL); разрешения на чтение хранилища моментального снимка; разрешение на чтение каталога установки поставщика OLE DB. Дополнительные сведения о списках доступа к публикации см. в разделе Организация безопасности издателя.

    • Под полем Соединиться с подписчиком введите в поля Имя входа, Пароль и Подтверждение пароля имя входа и пароль, которые следует использовать для соединения с подписчиком. Это имя входа уже должно быть сконфигурировано и иметь разрешения, достаточные для создания объектов в базе данных подписки.

    • В поле Дополнительные параметры соединения укажите любые параметры соединения для подписчика в форме строки соединения (Oracle не требует дополнительных параметров). Каждый параметр должен быть отделен точкой с запятой. Ниже приводится пример строки соединения DB2 (переносы строк использованы для удобства чтения):

      Provider=DB2OLEDB;Initial Catalog=MY_SUBSCRIBER_DB;Network Transport Library=TCP;Host CCSID=1252;
      PC Code Page=1252;Network Address=MY_SUBSCRIBER;Network Port=50000;Package Collection=MY_PKGCOL;
      Default Schema=MY_SCHEMA;Process Binary as Character=False;Units of Work=RUW;DBMS Platform=DB2/NT;
      Persist Security Info=False;Connection Pooling=True;
      

      Большинство параметров в строке зависят от конфигурируемого сервера DB2, но параметр Обрабатывать двоичное значение как символ всегда должен иметь значение False. Параметр Исходный каталог должен иметь значение для определения базы данных подписки.

  10. На странице Расписание синхронизации выберите из меню Расписание агента расписание для агента распространителя (обычно используется расписание Выполнять постоянно).

  11. На странице Инициализация подписок укажите, следует ли инициализировать подписку и, если да, когда ее необходимо инициализировать:

    • Снимите флажок Инициализировать, только если были созданы все объекты и были добавлены все необходимые данные в базу данных подписки.

    • Чтобы после завершения выполнения этого мастера агент распространителя передал файлы моментальных снимков подписчику, выберите в раскрывающемся списке столбца Инициализировать, когда значение Немедленно. Выберите При первой синхронизации, чтобы агент передал файлы при следующем запланированном запуске.

  12. На странице Действия мастера при желании можно написать сценарий для подписки. Дополнительные сведения см. в разделе Создание сценариев репликации.

Сохранение таблиц на подписчике

  • По умолчанию при разрешении публикации для подписчиков, не являющихся подписчиками SQL Server, значение свойства статьи pre_creation_cmd устанавливается в «drop». Этот параметр говорит о том, что репликация должна удалить таблицу на подписчике, если ее имя совпадает с именем таблицы в статье. Если на подписчике уже существуют таблицы, которые необходимо сохранить, то для каждой статьи вызовите хранимую процедуру sp_changearticle, указав в качестве параметра pre_creation_cmd значение «none». sp_changearticle @publication= 'MyPublication', @article= 'MyArticle', @property='pre_creation_cmd', @value='none'.

Создание моментального снимка для публикации

  1. Раскройте папку Репликация, а затем — папку Локальные публикации.

  2. Щелкните правой кнопкой мыши публикацию, а затем щелкните Просмотреть состояние агента моментальных снимков.

  3. В диалоговом окне Просмотр состояния агента моментальных снимков — <публикация> нажмите кнопку Пуск.

Когда агент моментальных снимков завершит создание моментального снимка, на экран будет выведено примерно следующее сообщение: «[100%] Создан моментальный снимок 17 статей».