Non-SQL Server Subscribers
Область применения: SQL Server
Следующие подписчики, отличные от SQL Server, могут подписываться на публикации моментальных снимков и транзакций с помощью push-подписок. Подписки поддерживаются для двух самых последних версий каждой из баз данных, приведенных в списке, с использованием самой последней версии поставщика OLE DB из приводимого списка.
Разнородная репликация на подписчики, отличные от подписчика SQL Server, устарела. Публикация Oracle устарела. Чтобы переместить данные, создайте решения с помощью записи измененных данных и служб SSIS.
Внимание
Эта функция будет удалена в будущей версии SQL Server. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.
База данных | Операционная система | Provider |
---|---|---|
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. Дополнительные сведения об этом параметре см. в разделе агент распространения репликации.Учетная запись, под которой запускается агент распространителя, должна иметь доступ с правом на чтение к установочному каталогу поставщика OLE DB.
По умолчанию для подписчиков, отличных от SQL Server, агент распространения использует значение [(назначение по умолчанию)] для базы данных подписки (параметр -SubscriptionDB для агент распространения):
Для СУБД Oracle сервер имеет не более одной базы данных, поэтому нет необходимости указывать базу данных.
Для IBM Db2 база данных указана в строка подключения DB2. Дополнительные сведения см. в статье Создание подписки для подписчика, отличного от подписчика SQL Server.
Если распространитель SQL Server работает на 64-разрядной платформе, необходимо использовать 64-разрядную версию соответствующего поставщика OLE DB.
Репликация перемещает данные в формате Юникода независимо от параметров сортировки и кодовых страниц, используемых на издателе и подписчике. При репликации между издателями и подписчиками рекомендуется выбрать совместимые параметры сортировки и кодовую страницу.
Если статья добавляется в публикацию или удаляется из нее, необходимо повторно инициализировать подписки на подписчиков, отличных от SQL Server.
Единственными ограничениями, поддерживаемыми для всех подписчиков, отличных от SQL Server, являются NULL и NOT NULL. Ограничения первичного ключа реплицируются как уникальные индексы.
В разных базах данных значение NULL обрабатывается по-разному, что влияет на представление пустых значений, пустых строк и значений 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-mode и символьный режим. Подписчики, отличные от SQL Server, требуют моментальных снимков в режиме символов.
Подписчики, отличные от SQL Server, не могут использовать немедленное обновление или обновление в очереди подписок или быть узлами в одноранговой топологии.
Подписчики, отличные от SQL Server, не могут быть автоматически инициализированы из резервной копии.