Базы данных Oracle - статьи

         

Создание кэша со сквозной записью


Принимая во внимание, что источником данных о телефонах/адресах является Oracle Database, а адресатом – Oracle TimesTen, вы хотите, чтобы зарегистрированные данные текли в другом направлении. Диспетчеры должны регистрировать события, имеющие отношение к звонкам в 911, в Oracle TimesTen. Однако, вы хотите, чтобы данные журнала были переданы для долгосрочного хранения в Oracle Database. С этой целью можно создать асинхронную группу кэша со сквозной записью. В листинге 4 показан предназначенный для этой цели оператор Oracle TimesTen.

Листинг 4. Создание кэша со сквозной записью

CREATE ASYNCHRONOUS WRITETHROUGH CACHE GROUP call_log_data FROM dispatch.call_log ( call_num BIGINT, event_time TIMESTAMP, event VARCHAR(80), PRIMARY KEY (call_num, event_time) ) UNIQUE HASH ON (call_num, event_time) PAGES=1000;

После создания группы, запустите сервис тиражирования Oracle TimesTen, вызывая для этого из ttIsql встроенную процедуру ttRepStart:

CALL ttRepStart();

Начиная с этого момента, все строки, которые ваше диспетчерское приложение вставляет в таблицу CALL_LOG Oracle TimesTen, будут вставлены в таблицу CALL_LOG в Oracle Database. Поскольку группа кэша является асинхронной, Oracle TimesTen зафиксирует транзакции, использующие вставки в CALL_LOG, не дожидаясь, пока соответствующие вставки будут зафиксированы в Oracle Database. Если подключение к Oracle Database будет прервано, то Oracle TimesTen будет отслеживать недавно вставленные записи журнала и отправлять их в Oracle Database, когда подключение будет установлено вновь.

Асинхронный кэш со сквозной записью дает вам лучшую производительность. Однако, вы можете создать синхронную группу кэша, если вы хотите гарантировать, что когда транзакция, использующая таблицу CALL_LOG, фиксируется в Oracle TimesTen, любые изменения в таблице CALL_LOG будут также зафиксированы и в Oracle Database. Выбор полностью остается за вами и определяется только вашими деловыми потребностями.



Содержание раздела