ogg 归档丢失
场景:模拟归档丢失之后OGG的处理
ogg版本:12.2.0.2 数据库版本oracle12201
GGSCI> ALTER EXTRACT ex0, BEGIN now
GGSCI> ALTER EXTRACT ex0, BEGIN 2021-04-08 09:53:47
GGSCI> ALTER EXTRACT ex0, SCN 9794544
GGSCI> ALTER EXTRACT ex0, ETROLLOVER
GGSCI> dblogin userid c##ggs@CDB,password ggs
GGSCI> unregister extract ex0 database
GGSCI> register extract ex0 database container (pdb2)
测试结论:
1 如果归档文件存在,可以正常的跳到指定SCN开始抽取,
2 如果归档丢失且不能恢复,不能跳到指定SCN开始抽取,只能通过unregister重新从register的时间点开始抽取
1 正常停掉ogg抽取,投递进程,
GGSCI> stop *
2 数据库切换日志多次,然后执行检查点
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
alter system checkpoint;
3 RMAN删除归档报错:不能删归档
delete noprompt archivelog all device type disk;
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
4 强制删除归档 或者把归档移动到备份目录,模拟归档丢失
delete noprompt force archivelog all device type disk;
or
mv *.arc bak/
5 重启ogg进程(模拟丢失归档)
归档丢失,启动之后状态一直是STARTING(持续3-4分钟,之后报错)
start ex1
OGG-00868 ERROR Error code 1291, error message: ORA-01291: missing logfile
(Missing Log File WAITING FOR DICTIONARY REDO: FILE /u01/xx/o1_mf_1_53_j6wrjq35_.arc, THREAD 1, SEQUENCE 53, SCN 0x0000.009573a2. Read Position SCN: 0.9794468 (9794468)).
6 RMAN刷新控制文件记录,确认归档丢失
rman target /
crosscheck backup;
crosscheck copy;
report obsolete;
list expired copy;
list expired archivelog all;
delete expired copy;
alter system switch logfile;
alter system checkpoint;
@arch 查看归档
7 确定丢失的归档范围
select min(decode(DELETED,'YES',SEQUENCE#,null)) lost_min_seq#
,max(decode(DELETED,'YES',SEQUENCE#,null)) lost_max_seq#
,min(decode(DELETED,'NO',SEQUENCE#,null)) fond_min_seq#
,min(decode(DELETED,'NO',FIRST_CHANGE#,null)) fond_min_scn
,min(decode(DELETED,'NO',FIRST_TIME,null)) fond_min_time
,scn_to_timestamp(9794468) scn_time
from gv$archived_log where SEQUENCE#>=53 and thread#=1 and first_time>scn_to_timestamp(9794468);
LOST_MIN_SEQ# LOST_MAX_SEQ# FOND_MIN_SEQ# FOND_MIN_SCN FOND_MIN_TIME SCN_TIME
------------- ------------- ------------- ------------ ------------------- -------------------
54 64 65 9794544 2021-04-08 09:53:47 2021-04-08 09:52:53
8 查看抽取进程信息 尝试从可用的SCN开始抽取
-- and the SCN or timestamp value specified cannot be below the outbound server's first SCN or timestamp.
dblogin userid c##ggs@CDB,password ggs
INFO EXTRACT ex0, SHOWCH DETAIL
Select first_Scn, start_scn, capture_name, Applied_scn from dba_capture;
FIRST_SCN START_SCN CAPTURE_NAME APPLIED_SCN
------------ ------------ --------------- ------------
9755745 9756605 OGG$CAP_EX0 9794466
select * from sys.streams$_capture_process;
select * from system.logmnr_session$;
-- # for RAC 跳过SCN,跳到有归档的第1个SCN
ALTER EXTRACT ex0, THREAD 2, BEGIN 2019-05-27 01:34:56
ALTER EXTRACT ex0, THREAD 1, BEGIN 2019-05-27 01:24:18
-- # for noRAC
ALTER EXTRACT ex0, THREAD 1, BEGIN 2021-04-08 09:53:47
ALTER EXTRACT ex0, BEGIN 2021-04-08 09:53:47
ALTER EXTRACT ex0, SCN 9794544
ALTER EXTRACT ex0, ETROLLOVER
9 使用时间点跳过抽取报错
使用时间点不能识别SCN
dblogin userid c##ggs@CDB,password ggs
ALTER EXTRACT ex0, BEGIN 2021-04-08 09:53:47
start ex0
报错:OGG-00868: ERROR Error code 1291, error message: ORA-01291: missing logfile
(Missing Log File WAITING FOR DICTIONARY REDO. Read Position SCN: Unknown).
10 使用指定SCN开始抽取
报错WAITING FOR DICTIONARY REDO
dblogin userid c##ggs@CDB,password ggs
ALTER EXTRACT ex0, SCN 9794544
ALTER EXTRACT ex0, ETROLLOVER
start ex0
报错:OGG-00868: ERROR Error code 1291, error message: ORA-01291: missing logfile
(Missing Log File WAITING FOR DICTIONARY REDO. Read Position SCN: 0.9794544 (9794544)).
11 使用当前时间开始抽取
报错WAITING FOR DICTIONARY REDO 不能识别SCN
alter extract ex0 begin now;
alter extract ex0 begin 2021-04-08 09:53:48;
报错:OGG-00868: ERROR Error code 1291, error message: ORA-01291: missing logfile
(Missing Log File WAITING FOR DICTIONARY REDO. Read Position SCN: Unknown).
还是报错missing logfile,怀疑是register在数据库里面注册信息()未修改
12 重新注册信息SOURCECATALOG
GGSCI> dblogin userid c##ggs@CDB,password ggs
GGSCI> unregister extract ex0 database
GGSCI> register extract ex0 database container (pdb2)
dblogin userid c##ggs@CDB,password ggs
INFO EXTRACT ex0, SHOWCH DETAIL
Integrated Extract outbound server first scn: 0.9901496 (9901496)
CURRENT_SCN
------------
9909397
13 重新register之后,可以正常抽取
再启动scn不能低于边界的first scn 9901496 ,基本只能从register时间点开始重新抽取 ogg BUG
alter extract ex0 begin now
start ex0
14 抽取进程的trace文件不能自动跳转
# 指定从队列文件抽取的位置(如果有pump进程)
ALTER EXTRACT pd0, EXTSEQNO 2831, EXTRBA 0
ALTER EXTRACT pd0, EXTSEQNO 26, EXTRBA 338
16 启动复制进程,检查是否有数据,完成恢复
start ex0
start pd0
start rp3




