После запуска процесса репликации GoldenGate, обязательно возникнет инфраструктурная задача по очистке архивлогов на источнике.
Необходимо выполнить два пункта:
1. Согласно
документации https://docs.oracle.com/cd/E11882_01/server.112/e17069/strms_adcapture.htm#i1010653
необходимо уменьшить значение параметра CHECKPOINT_RETENTION_TIME, т.к.
значение по умолчанию слишком велико.
$ sqlplus '/ as sysdba' sql> BEGIN DBMS_CAPTURE_ADM.ALTER_CAPTURE( capture_name => 'OGG$CAP_EXTO', checkpoint_retention_time =>где EXTO - имя экстрактора.); END; / sql> select T.CHECKPOINT_RETENTION_TIME from DBA_CAPTURE t where capture_name = 'OGG$CAP_EXTO';
2. Для
уменьшения вероятности возникновения ошибок при работе rman
rman-08137: warning: archived log not deleted, needed
for standby or upstream capture process
необходимо увеличить частоту
обновления поля min_required_capture_change# представления v$database.
Данное
поле обновляется раз в 6 часов, что очень много при нормальной работе экстракторов.
Поэтому складывается ситуация когда значение поля required_checkpoint_scn
представления dba_capture оказывается намного больше, и архивлоги обработанные
экстрактором не могут быть удалены rman.
Согласно документации Doc ID 1581365.1 пункт
Updates to V$DATABASE.MIN_REQUIRED_CAPTURE_CHANGE#
в
param-файле экстрактора EXTO после строки USERID (DBLOGIN)
нужно выставить значение переменной _CKPT_RETENTION_CHECK_FREQ, например 3 часа:
TRANLOGOPTIONS
INTEGRATEDPARAMS(_CKPT_RETENTION_CHECK_FREQ 10800)
После
запуска экстрактора в представлениях переменных CAPTURE-процессов можно
наблюдать значение _CKPT_RETENTION_CHECK_FREQ:
/* All Capture parameters */
select * from DBA_CAPTURE_PARAMETERS order by
CAPTURE_NAME, PARAMETER;
/* Non-Default Capture parameters */
select * from DBA_CAPTURE_PARAMETERS where
SET_BY_USER='YES' order by CAPTURE_NAME, PARAMETER;
Слишком часто V$DATABASE.MIN_REQUIRED_CAPTURE_CHANGE# обновлять не стоит, т.к. в момент обновления все процессы переходят в ожидание.
Update.
3. Необходимо удостовериться, что на источнике отключены дополнительные/неактивные LOG_ARCHIVE_DEST
Для подобных LOG_ARCHIVE_DEST нужно выполнить команду:
Update.
От последствий разворачивания Downstream-репликации Goldengate на источнике остался LOG_ARCHIVE_DEST_3 (в тестовых средах LOG_ARCHIVE_DEST может остаться от standby).
3. Необходимо удостовериться, что на источнике отключены дополнительные/неактивные LOG_ARCHIVE_DEST
Для подобных LOG_ARCHIVE_DEST нужно выполнить команду:
$ sqlplus '/ as sysdba' sql> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_3='defer';4. В случае, если отключение LOG_ARCHIVE_DEST не поможет в решение проблемы rman-08137: warning: archived log not deleted, needed for standby or upstream capture process, необходимо воспользоваться рекомендацией из Doc ID 1380368.1.
$ sqlplus '/ as sysdba' sql> alter system set "_deferred_log_dest_is_valid" = FALSE scope=both;Определение параметра _deferred_log_dest_is_valid:
$ sqlplus '/ as sysdba' sql> select ksppinm, ksppdesc from x$ksppi where ksppinm = '_deferred_log_dest_is_valid'; KSPPINM KSPPDESC ---------------------------------- -------------------------------------------------------------------------------------- _deferred_log_dest_is_valid consider deferred log dest as valid for log deletion (TRUE/FALSE)
Комментариев нет:
Отправить комментарий