暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

ogg 归档丢失WAITING FOR DICTIONARY REDO

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

最后修改时间:2021-04-08 17:07:58
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论