Oracle TimesTen и Golden Gate

Всем известно, что Oracle TimesTen может быть использован, как быстрый кэш для Oracle Database. Причем кэш может быть 'read only' или изменяемый. В первом случае, все изменения, сделанные в Oracle DB передаються в Oracle TimesTen. Во втором случае, наоборот, изменения, сделанные в TimesTen передаются в DB.

Так вот, при использовании TimesTen как 'read only', есть один нюанс. Процесс сбора изменений, сделанных в Oracle Database, построен с использованием триггеров. Следовательно результат - если БД высоко нагружена (тысячи транзакций в секунду), то использование триггеров существенно загрузит Oracle Database, но и если в TT указан маленький интервал AUTOREFRESH-а, может возникнуть ситуация, что запрос по системным таблицам TT в Oracle DB не успеет отработать, а уже поступит новый запрос, тем самым можно получить ряд "неприятностей".

Как же решить данную задачу?

Решение пришло с покупкой Oracle Corporation компании Golden Gate. Именно программное обеспечение данной компании для быстрой репликации данных способно очень легко решить данную задачу. Если очень грубо, Golden Gate читает логи (именно логи или архивные журналы) реплицируемой системы (в нашем случае это Oracle DB), затем, передает изменения в подписчик (в нашем случае Oracle TimesTen). Подробнее про Golden Gate можно почитать в блоге Александра Рындина.

Следовательно, при использовании данного подхода имеем ряд преимуществ:
1 - триггеры не используются, следовательно нагрузка на базу падает.
2 - возможно репликация в схему звездочка, что при использовании стандартного механизма возможно.
3 - удобный визуальный контроль процесса репликации.

Процесс, настройки репликации Oracle DB и Oracle TT подробно описан в документе (Doc ID 1099523.1 TimesTen Replication Using GoldenGate: Sample Configuration) на support.oracle.com

Комментариев нет: