SELECT apply_name, queue_name, status FROM
Проверка:
SQL> SELECT apply_name, queue_name, status FROM all_apply;
APPLY_NAME QUEUE_NAME STATUS ------------------------ ------------------------ --------
APPLY_STREAM STREAMS_QUEUE
DISABLED
Для удобства отключим реакцию на ошибки, иначе процесс применения изменений может самопроизвольно прекращаться:
BEGIN DBMS_APPLY_ADM.SET_PARAMETER ( apply_name => '
apply_stream' , parameter => '
disable_on_error' , value => '
N' ); END; /
Осталось запустить процессы захвата и примения изменений:
CONNECT streamadmin/streamadmin@
source
EXECUTE DBMS_CAPTURE_ADM.
START_CAPTURE ( 'capture_stream' )
EXECUTE - DBMS_APPLY_ADM.
START_APPLY@
subdb1.class ( 'apply_stream' )
Проверка:
SQL>
CONNECT streamadmin/streamadmin@
source
Connected. SQL> SELECT empno FROM scott.emp MINUS 2 SELECT empno FROM scott.emp@
subdb1.class
3 . SQL> SAVE delta REPLACE Wrote file delta.sql SQL> @delta
no rows selected
SQL> INSERT INTO scott.emp ( empno ) VALUES ( 3333 );
1 row created.
SQL> @delta
EMPNO ----------
3333
SQL> COMMIT;
Commit complete.
SQL> @delta
no rows selected
Заметьте, что поток переносит изменения только в одну сторону. Таблица-приемник при этом не закрыта от обычной правки. Однако же такую правку следует выполнять осмотрительно, поскольку она может привести к ошибкам при автоматическом изменении данных потоком (эта проблема решается специально седствами разрешении конфликтов). Вдобавок учтите, что множественные операции INSERT, UPDATE, DELETE применяются в принимающей БД в рамках одной (автономной) транзакции (невзирая на то, что в журнале БД множественные изменения фиксируются набором однострочных изменений). Следовательно ошибка хотя бы в изменении одной-единственной строки приведет к отказу изменений всей множественной операции.
Упражнение. Внести изменения в таблицу SCOTT.EMP на принимающей БД. Убедиться в сохраняющихся расхождениях в таблицах БД-источника и БД-получателя.
Упражнение. Проверить передачу изменений DDL. Добавить столбец в таблицу SCOTT.EMP@MAINDB.CLASS. Наблюдать результат в SCOTT.EMP@SUBDB1.CLASS. Изменить тип столбца, наблюдать результат в базе-получателе.
1 До версии 10 использовалось название Advanced Queuing (AQ).
1 Начиная с версии 10.2.
Содержание Назад
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий