Как синхронизировать две схемы баз данных Oracle 10G? - PullRequest
2 голосов
/ 27 мая 2010

Я использую Oracle 10G.

Позвольте мне объяснить вам. У меня есть одна исходная база данных с именем (DB1) и целевая база данных с именем (DB2).

  • У меня есть две схемы с именами dbs1 и dbs2 в исходной базе данных (DB1).

  • Я экспортировал обе схемы базы данных в исходную базу данных (DB1) и успешно импортировал ее в целевую базу данных (DB2).

  • Теперь я сталкиваюсь с проблемой синхронизации этих схем баз данных каждый раз от Исходной базы данных (DB1) до Целевой базы данных (DB2).

Может кто-нибудь помочь, дайте мне знать, как можно добиться этой синхронизации?

Ответы [ 2 ]

11 голосов
/ 27 мая 2010

Oracle имеет собственную встроенную функцию для обработки этой ситуации: она называется Streams. Узнайте больше .Существует также репликация, но она использует материализованные представления, а не таблицы в целевой базе данных. Узнайте больше .

Не смотрите на продукты сторонних производителей и не пытайтесь проконтролировать собственную реализацию, пока не учтете функциональность, которая у вас уже есть. Лицензии Oracle стоят дорого: убедитесь, что ваши деньги стоят денег.

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

Три ключевых вопроса, которые вы должны решить:

  1. синхронность Хотите, чтобы Target DB была полностью обновлена?с исходной базой данных?Или достаточно применить обновления асинхронно, возможно, даже в пакетном режиме?В крайнем случае синхронные обновления приводят к распределенным транзакциям, когда двухфазная фиксация означает, что изменения данных в исходной БД также должны применяться к целевой БД как часть той же транзакции.

  2. структурные изменения Достаточно просто распространять изменения DML из одной схемы в другую, но как насчет DDL - новые столбцы, новые таблицы и т. Д.

  3. направленность Будут ли все изменения всегда идти от исходной базы данных к целевой базе данных?Есть ли перспективы распространения данных в другом направлении?В связанном вопросе, могут ли данные в целевой БД изменяться независимо от изменений в исходной БД?Или Target DB только для чтения?

РЕДАКТИРОВАТЬ

Устаревшие утилиты IMP / EXP и более современная функциональность DataPump предназначены для одноразовых операций.То есть импортирование структуры и данных в пустую схему или импорт данных в пустые объекты.Они не подходят для использования в режиме скользящей синхронизации, где мы должны применять постепенные изменения.Подходящими инструментами для этой задачи являются те, которые я уже перечислил: Потоки или Репликация.

РЕДАКТИРОВАТЬ 2

"Можете ли вы привести пример дляТо же самое. Я был бы вам очень благодарен. "

Примеры потоков репликации и ?Это заняло бы много времени, и, честно говоря, я сомневаюсь, что вы можете позволить себе мою почасовую ставку.Что я могу сделать, так это указать на некоторые полезные ресурсы по Das Interwebs.Мартин Зан написал Руководство по выживанию репликации , которое довольно хорошо.Тим Холл имеет представление о Streams на своем сайте Oracle-Base;это для 9i, но это остается достойным учебником для начинающих.Ни один из них не является заменой документации, но они помогут вам разобраться с различными технологиями.

Вы описываете себя как «нового и очень наивного для БД Oracle».Поэтому вы должны понимать, что это не тривиальная задача.К сожалению, вы не можете просто вставить какой-нибудь пример кода и ожидать, что он сработает.У вас впереди много планирования, проектирования и конфигурации.Начните с ответов на вопросы, которые я перечислил выше.Вы должны точно знать, куда вы пытаетесь достичь, прежде чем принимать какие-либо решения о том, как туда добраться.

0 голосов
/ 27 мая 2010

Вы можете использовать такие инструменты управления базами данных, как LiquiBase

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...