l 检查生产库和DG库状态
生产库:
SELECT inst_id, instance_name, host_name,
VERSION,TO_CHAR (startup_time, 'yyyy-mm-dd hh24:mi:ss') startup_time,
status, archiver, database_status
FROM gv$instance;
select name,open_mode,database_role,protection_mode,SWITCHOVER_STATUS From v$database;
DG库:
select open_mode,database_role from v$database;
l 检查生产库和DG库链接是否正常用以下语句检查。
生产库:
select dest_id,status,error from v$archive_dest where dest_id<=2;
(status为VALID则表示正常)
l 如果生产库和DG连接不正常,可将连接恢复正常。连接失败视报错而定。
alter system set log_archive_dest_state_2=enable;
l 检查DG库归档日志应用情况
select name,sequence#,applied,COMPLETION_TIME
from v$archived_log
where COMPLETION_TIME>sysdate-3
order by COMPLETION_TIME;
(applied为YES代表归档日志已经应用,NO表示还没有应用,IN_MEMORY表示正在恢复中。sequence#为归档日志序列号)
l 查看DG库自动应用归档进程是否启动,(MRP进程)。
select process, status from v$managed_standby;
l 生产库中备份缺失的归档日志,如果是rac环境,着想要备份rac所有节点缺失的归档日志。
生产库:
rman target /
backup archivelog sequence between 104 and 106 format '/home/oracle/db_%U';
注:(104和106是缺失的归档日志序列号)
将备份好的归档日志文件传输到DG库中。
DG库:
rman target /
catalog start with '/home/oracle/'; 注: (将备份文件路径添加到RMAN中。)
catalog backuppiece '/home/oracle/db_0at9veht_1_1';
注:(添加备份片,db_0at9veht_1_1为归档日志备份的名字。)
crosscheck backup;
注:(检查备份集情况,AVAILABLE表示可用,UNAVALIABLE表示不可用,EXPIRED表示过期。)
restore archivelog from logseq 104; 注: (从序列号104开始还原归档日志。)
recover database 注:(恢复归档日志。)
l 检查DG库归档日志恢复情况:
select name,sequence#,applied,COMPLETION_TIME from v$archived_log
注: (applied为YES代表归档日志已经应用,NO表示还没有应用,IN_MEMORY表示正在恢复中。sequence#为归档日志序列号)




