Правильный метод синхронизации нескольких таблиц двух БД Oracle?

Есть две БД Oracle (FirstDB, SecondDB) на разных серверах, расположенных в одной сети.
Требуется выбрать данные из нескольких таблиц FirstDB и загрузить в одну таблицу SecondDB, максимально снизив нагрузку на FirstDB.

Моя идея:
Из SecondDB
CREATE TABLE x AS SELECT ... FROM Xdatalink.FirstDB [join ... ] where (из журнала синхронизации получаю время последней синхронизированной записи и фильтрую данные по времени изменения)
Тем самым загружая все новые и обновленные данные, со времени последней синхронизации, в SecondDB, и уже из нее, с помощью курсора по таблице, вставляю записи куда следует, если существует то обновляю.
Будет ли этот способ оптимальным? или есть более оптимальные?

Извиняюсь, забыл написать - datalink на FirstDB с правами только на чтение.
  • Вопрос задан
  • 3543 просмотра
Решения вопроса 1
Kwisatz
@Kwisatz
Больше web-приложений, хороших и разных
Есть еще другой вариант, вставлять таблицы по инициативе мастер-бд при помощи after insert триггера.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@DmitrySytkov
Можно создать матпредставление во второй БД, которое обновляется по расписанию или по завершению транзакции, подгружая порции данных из первой БД.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы