07ноя
Ежедневное тестирование работы связки primary-standby
Периодически нужно проверять все ли редо логи накатываються на резервном сервере. Для это можно просматривать некоторые предаставления.
Первым делом нужно проверить какой архивный журнал повторного выполнения создан на основном сервере и какие накатаны на резервных. Это можно сделать запросом:
SELECT ARCHIVED_SEQ#, APPLIED_SEQ# FROM V$ARCHIVE_DEST_STATUS;
10852 0
10852 10851
10852 10835
Из результатов видно,что на основном сервере создан лог 10852, на одном резервном накатан 10851 лог, на втором (установлено delay 480) накатан 10835.
Представление V$ARCHIVE_DEST_STATUS содержит информацию о всех местах архивации журнальных файлов.
Следующим запросом можна выявить логи, которые по каким либо причинам не были накатаны на резервных серверах:
SELECT my_primary.SEQUENCE# FROM (SELECT SEQUENCE# FROM V$ARCHIVED_LOG WHERE DEST_ID=1) my_primary,
(SELECT SEQUENCE# FROM V$ARCHIVED_LOG WHERE DEST_ID=2) standby1,
(SELECT SEQUENCE# FROM V$ARCHIVED_LOG WHERE DEST_ID=3) standby2
WHERE my_primary.SEQUENCE#=standby1.SEQUENCE#(+)
and my_primary.SEQUENCE#=standby2.SEQUENCE#(+)
and (standby2.SEQUENCE# is null or standby2.SEQUENCE# is null)
Еще очень полезно на резервной базе посмотреть на такую выборку:
SQL> select * from v$managed_standby;
PROCESS PID STATUS CLIENT_P CLIENT_PID CLIENT_DBID GROUP#
--------- ---------- ------------ -------- ---------------------------------------- ---------------------------------------- ---------------------------------
ARCH 2108 CONNECTED ARCH 2108 N/A N/A
ARCH 2100 CONNECTED ARCH 2100 N/A N/A
RFS 2392 RECEIVING ARCH 32508 1438788172 5
MRP0 948 WAIT_FOR_LOG N/A N/A N/A N/A
RFS 2400 ATTACHED ARCH 32276 1438788172 4
Следующее представление дает возможность посмотреть на каком файле нарушилась последовательность передачи архивных файлов и застопорился накат:
select * from v$archive_gap;
По перечисленным выше представлениям документацию посмотрите
здесь.