#oracle #sql-server-2008 #replication
#Oracle #sql-server-2008 #репликация
Вопрос:
Попытка установить репликацию транзакций с сервера oracle на экземпляр Sql2008 R2. Я могу настроить «публикацию Oracle» с помощью репликации, нового мастера публикации Oracle; кажется, все идет нормально, вплоть до добавления статей (таблица oracle) и возможности сопоставления типов данных. но когда я выбираю репликацию транзакций, он сообщает мне, что выбранная мной исходная таблица oracle не имеет первичного ключа. Что неверно.
Если выбрать моментальный снимок, он переходит в бесконечный цикл.
Я заметил, что связанный сервер (с oracle) использует поставщика msdaOra, есть ли способ заставить мастер публикации использовать OraOLEDB.Поставщик Oracle при настройке связанного связанного сервера.
любая помощь приветствуется
Ответ №1:
Я обнаружил, что ограничений Oracle PK недостаточно для SQL Server, чтобы считать, что в таблице есть PK. Убедитесь, что Oracle DDL для таблицы явно создает уникальный индекс, соответствующий этому PK. Если все, что у вас есть, это ограничение и организационный индекс в Oracle, SQL Server исключит его из репликации на уровне транзакции. Я все еще пытаюсь найти способ обойти это, поскольку я не хочу добавлять уникальный индекс в действующую систему сбора данных в реальном времени n production. Я не знаю, что SQL server даже действительно нуждается в уникальном индексе … но я думаю, что скорее ему просто нужно знать квалификаторы уникальности, которые он МОЖЕТ получить только из определения ограничения.
Ответ №2:
Какая версия Oracle? вот ссылка на некоторые инструкции Microsoft. Убедитесь, что на сервере SQL Server установлена версия клиентского программного обеспечения Oracle x64 — установка клиента oracle должна быть параметром настройки администратора. Имеет ли пользователь репликации, настроенный для подключения к oracle, доступ select к схеме, которую вы пытаетесь реплицировать? (глупый вопрос, но я должен спросить) Кроме того, настроили ли вы репликацию транзакций для этой системы перед тестированием?
Вы тестировали его на исходной таблице, у которой не было первичного ключа? — (тестирование этого поля sql 2k8 r2 в другой тестовой среде oracle) если это так, вам может потребоваться повторная инициализация дистрибутива.
вам также потребуется sql 2k8 r2 enterprise edition для настройки репликации из oracle publisher.