Подписчики, не использующие SQL Server

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

Следующие подписчики, не использующие SQL Server, могут подписываться на публикации моментальных снимков и транзакционные публикации с помощью push-подписок. Две самые свежие версии каждой базы данных перечисляли подписки поддержки с использованием самой последней версии указанного провайдера OLE DB.

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

Внимание

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

База данных Операционная система Поставщик
Oracle Все платформы, поддерживаемые Oracle Поставщик OLE DB для Oracle (поставляемый Oracle)
IBM Db2 MVS, AS400, Unix, Linux, Windows, за исключением версии 9.x Поставщик OLE DB для Microsoft Host Integration Server (HIS)

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

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

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

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

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

Сведения о создании подписок на Oracle и IBM Db2 см. в статье "Подписчики Oracle" и "Подписчики IBM Db2".

Вопросы для подписчиков, не пользующихся SQL Server

При репликации на подписчики, не использующие SQL Server, следует учитывать следующие соображения.

Общие рекомендации

  • Репликация поддерживает публикацию таблиц и индексированных представлений в виде таблиц для подписчиков, отличных от SQL Server (индексированные представления нельзя реплицировать как индексированные представления).

  • Когда вы создаёте публикацию в мастере создания публикации, а затем настраиваете её для подписчиков, не использующих SQL Server, с помощью диалогового окна «Свойства публикации», вы не указываете владельца всех объектов в базе данных подписки у подписчиков, не использующих SQL Server. Для подписчиков Microsoft SQL Server владелец является владельцем соответствующего объекта в базе данных публикаций.

  • Если у публикации есть как подписчики SQL Server, так и подписчики, не использующие SQL Server, необходимо включить поддержку подписчиков, не использующих SQL Server, для этой публикации, прежде чем создавать какие-либо подписки для подписчиков SQL Server.

  • По умолчанию скрипты, которые агент моментальных снимков генерирует для подписчиков, не входящих в SQL Server, используют идентификаторы без кавычок в синтаксисеCREATE TABLE. Таким образом, опубликованная таблица с названием test воспроизводится как TEST. Чтобы использовать тот же регистр, что и у таблицы в базе данных публикации, укажите для агента распространения параметр -QuotedIdentifier. Также необходимо использовать параметр -QuotedIdentifier, если опубликованные имена объектов (такие как таблицы, столбцы и ограничения) содержат пробелы или зарезервированные слова в версии базы данных на не-SQL Server Subscriber. Дополнительные сведения об этом параметре см. в разделе агент распространения репликации.

  • Учетная запись, под которой запускается агент распространителя, должна иметь доступ с правом на чтение к установочному каталогу поставщика OLE DB.

  • По умолчанию для абонентов, не входящих в SQL Server, агент распространения использует значение [(default destination)] для базы данных подписки (параметр -SubscriberDB для агент распространения):

  • Если распространитель SQL Server работает на 64-разрядной платформе, необходимо использовать 64-разрядную версию соответствующего поставщика OLE DB.

  • Репликация передает данные в формате Unicode независимо от правил сортировки или кодовых страниц, используемых на Издателе и Подписчике. При репликации между издателями и подписчиками выбирайте совместимую коллацию или кодовую страницу.

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

  • Единственные ограничения, поддерживаемые для всех не-SQL Server подписчиков: NULL и NOT NULL. Ограничения первичного ключа реплицируются как уникальные индексы.

  • Разные базы данных по-разному обрабатывают значение NULL. Это различие влияет на то, как представлены пустое значение, пустая строка и a NULL . Это различие влияет на поведение значений, вставленных в столбцы с уникальными ограничениями. Например, Oracle допускает несколько NULL значений в столбце, считающихся уникальными, тогда как SQL Server допускает только одно NULL значение в уникальном столбце.

    Ещё один фактор — то, как NULL значения, пустые строки и пустые значения обрабатываются, когда столбец определен как NOT NULL. Сведения по этому вопросу для подписчиков Oracle см. в разделе Подписчики Oracle.

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

Соответствие требованиям базы данных подписчика

  • Опубликованная схема и данные должны соответствовать требованиям базы данных абонента. Например, если база данных, не относящаяся к SQL Server, имеет меньший максимальный размер строки, чем SQL Server, убедитесь, что опубликованная схема и данные не превышают этот размер.

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

  • DDL не поддерживается для подписчиков без SQL Server. Дополнительные сведения об изменениях в схеме см. в разделе Внесение изменений в схемы баз данных публикации.

Поддержка функций репликации

  • SQL Server предлагает два типа подписок: отправка и извлечение. Подписчики, не использующие SQL Server, должны использовать подписки типа push, при которых агент распространения запускается на распространителе SQL Server.

  • SQL Server поддерживает два формата снимков: собственный формат bcp и символьный формат. Подписчикам, не использующим SQL Server, необходимы моментальные снимки в символьном режиме.

  • Подписчики, не использующие SQL Server, не могут использовать подписки с немедленным обновлением или с отложенным обновлением, а также быть узлами в топологии «равный-равному».

  • Подписчики без SQL Server нельзя автоматически инициализировать из резервной копии.