Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

18

积分

1

好友

3

主题
1#
发表于 2013-3-13 10:41:00 | 查看: 4331| 回复: 1
1.        故障描述
在某系统中,OGG生产端的MGR进程中配置了PURGEOLDEXTRACTS参数,但是trail文件不能自动删除,此现象持续了一段时间,每当发现/goldengate分区占用率超过90%后,被迫人为手工删除trail文件。
2.        故障原因
        通过查看两端trail文件发现
  1. GGSCI (pms_db1) 2> info rmttrail *

  2.        Extract Trail: ./dirdat/sa
  3.              Extract: DPESA
  4.                Seqno: 871
  5.                  RBA: 92501414
  6.            File Size: 200M

  7.        Extract Trail: ./dirdat/sa
  8.              Extract: EXTSA
  9.                Seqno: 1452
  10.                  RBA: 92305744
  11.            File Size: 200M

  12. GGSCI (pms_db1) 3> info exttrail *

  13.        Extract Trail: ./dirdat/sa
  14.              Extract: DPESA
  15.                Seqno: 871
  16.                  RBA: 92600729
  17.            File Size: 200M

  18.        Extract Trail: ./dirdat/sa
  19.              Extract: EXTSA
  20.                Seqno: 1452
  21.                  RBA: 92410591
  22.            File Size: 200M
复制代码
生产端和灾备端trail的sequnce number相差很多,并且两端的trail文件prefix name相同,通过MOS文档Goldengate Manager not purging trail files [ID 1460097.1]得知,如果生产和灾备端trail prefix name相同,生产端的PURGEOLDEXTRACTS参数删除的trail sequnce number依据的是灾备端的trail sequnce number,灾备端的trail sequnce number为871,OGG的PURGEOLDEXTRACTS参数就会将生产端trail sequnce number为871以前的trail文件删除,而保留了trail sequnce number为871以后的trail file,进而造成了这种未PURGE现象。
3.        故障重现
测试环境概述
  
  
源端
目标端
  
系统
  
Linux version  2.6.32-100.26.2.el5
Linux version  2.6.32-100.26.2.el5
  
IP地址
  
192.168.56.6
192.168.56.7
  
hostname
  
dg1
dg2
  
数据库名
  
test2
test
  
数据库版本
  
11.2.0.3
10.2.0.1
  
OGG user
  
ogg
ogg
  
process
  
EORA_1,PORA_1
replicat  RORA_1
参数文件
源端:
  1. GGSCI (dg1) 2> view params pora_1
  2. EXTRACT PORA_1
  3. SETENV (NLS_LANG=JAPANESE_JAPAN.JA16EUC)
  4. PASSTHRU
  5. RMTHOST 192.168.56.7, MGRPORT 7809
  6. RMTTRAIL ./dirdat/pa
  7. TABLE scott.*;
  8. TABLEEXCLUDE scott.emp2
  9. TABLEEXCLUDE scott.emp   -----这样会过滤掉一部分的trail内容,拉开seqno号

  10. GGSCI (dg1) 3> view params EORA_1
  11. EXTRACT EORA_1
  12. SETENV (NLS_LANG=JAPANESE_JAPAN.JA16EUC)
  13. USERID ogg, PASSWORD ogg
  14. TRANLOGOPTIONS EXCLUDEUSER ogg
  15. DBOPTIONS DECRYPTPASSWORD AACAAAAAAAAAAAIALFYGAHVENIMJLFPH ENCRYPTKEY DEFAULT
  16. TRANLOGOPTIONS INTEGRATEDPARAMS (max_sga_size 200, parallelism 3)
  17. EXTTRAIL ./dirdat/pa
  18. DDL INCLUDE ALL
  19. DDLOPTIONS ADDTRANDATA RETRYOP RETRYDELAY 10 MAXRETRIES 10, REPORT
  20. TABLE scott.*;

  21. GGSCI (dg1) 7> edit param  mgr
  22. PORT 7809
  23. AUTOSTART ER *
  24. PURGEOLDEXTRACTS /u01/app/ggs/dirdat/*, USECHECKPOINTS, minkeephours 1
  25. PURGEDDLHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 10
  26. PURGEMARKERHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 10
  27. LAGREPORTHOURS 1
  28. LAGINFOMINUTES 30
  29. LAGCRITICALMINUTES 45
复制代码
目标端:
  1. GGSCI (dg2) 17> view params rora_1
  2. REPLICAT RORA_1
  3. SETENV (NLS_LANG=JAPANESE_JAPAN.JA16EUC)
  4. USERID ogg, PASSWORD ogg
  5. HANDLECOLLISIONS
  6. ASSUMETARGETDEFS
  7. DISCARDFILE ./dirrpt/RORA_aa.DSC, PURGE
  8. DDL INCLUDE ALL
  9. DDLERROR DEFAULT IGNORE RETRYOP MAXRETRIES 3 RETRYDELAY 5
  10. DDLERROR DEFAULT DISCARD
  11. DDLERROR DEFAULT IGNORE RETRYOP
  12. MAP scott.*, TARGET scott.*;

  13. GGSCI (dg2) 18> view params mgr
  14. PORT 7809
  15. AUTOSTART ER *
  16. PURGEOLDEXTRACTS ./dirdat/*, usecheckpoints, minkeephours 1
  17. PURGEDDLHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 10
  18. PURGEMARKERHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 10
  19. LAGREPORTHOURS 1
  20. LAGINFOMINUTES 30
  21. LAGCRITICALMINUTES 45
复制代码
恢复场景
在源端scott用户下执行以下:
  1. SQL> begin
  2.   2  for i in 1 ..10000
  3.   3  loop
  4.   4  insert into emp2 select * from emp;
  5.   5  commit;
  6.   6  delete from emp2;
  7.   7  commit;
  8.   8  end loop;
  9.   9  end;
  10. 10  /

  11. SQL> begin
  12.   2  for i in 1 ..10000
  13.   3  loop
  14.   4  insert into emp1 select * from emp;
  15.   5  commit;
  16.   6  delete from emp1;
  17.   7  commit;
  18.   8  end loop;
  19.   9  end;
  20. 10  /
复制代码
重复执行几次,当两端trail大量生成后,会出现源端trail的seqno 和目标端trail的seqno不一致,并且seqno差距拉大。
通过PURGEOLDEXTRACTS参数MINKEEPHOURS子句的设置,一个小时后,两端seqno一致的trail文件都自动删除,但是源端trail seqno超过目标端最大seqno的trail文件无法删除。
尝试通过更改源端trail命名,将源端trail开头pa为aa,来实现源端trail文件的自动删除。

2#
发表于 2013-3-13 10:49:52
本帖最后由 Francis鹏鹏 于 2013-3-13 10:54 编辑

4.        故障解决
更改源端的trail命名规则
检查两端trail文件路径以及命名规则
  1. GGSCI (dg1) 22> info exttrail *
  2.        Extract Trail: ./dirdat/pa
  3.              Extract: EORA_1
  4.                Seqno: 838
  5.                  RBA: 323977
  6.            File Size: 1M
  7.        Extract Trail: ./dirdat/pa
  8.              Extract: PORA_1
  9.                Seqno: 382
  10.                  RBA: 880563
  11.            File Size: 1M
复制代码
两端的trail文件都是以pa开头的。

重新配置Extract进程
1.        修改Extract进程的参数文件
  1. GGSCI (dg1) 141> edit params eora_1
  2. EXTRACT EORA_1
  3. SETENV (NLS_LANG=JAPANESE_JAPAN.JA16EUC)
  4. USERID ogg, PASSWORD ogg
  5. TRANLOGOPTIONS EXCLUDEUSER ogg
  6. DBOPTIONS DECRYPTPASSWORD AACAAAAAAAAAAAGAIFAAUDVHCFUGFIYF ENCRYPTKEY DEFAULT
  7. TRANLOGOPTIONS INTEGRATEDPARAMS (max_sga_size 200, parallelism 3)
  8. --EXTTRAIL ./dirdat/pa
  9. EXTTRAIL ./dirdat/aa     ---原来是pa
  10. DDL INCLUDE ALL
  11. DDLOPTIONS ADDTRANDATA RETRYOP RETRYDELAY 10 MAXRETRIES 10, REPORT
  12. TABLE scott.*;
复制代码
2.        为Extract进程添加新的trail文件格式:
  1. GGSCI (dg1) 142> ADD EXTTRAIL ./dirdat/aa, extract eora_1, megabytes 1
复制代码
3.        重新启动Extract进程:
  1. GGSCI (dg1) 143> stop eora_1
  2. Sending STOP request to EXTRACT EORA_1 ...
  3. Request processed.
  4. GGSCI (dg1) 144> start eora_1
  5. Sending START request to MANAGER ...
  6. EXTRACT EORA_1 starting
复制代码
此时,Extract进程会重新生成一个以aa开头的trail文件,通过查看dirdat
  1. -rw-rw-rw- 1 oracle oinstall   1006 Mar 11 15:46 aa000000
复制代码
重新配置Datapump进程
1.        删除原Datapump进程
  1. GGSCI (dg1) 165> dblogin userid ogg, password ogg                       
  2. Successfully logged into database.                               
  3. GGSCI (dg1) 166> delete pora_1                                               
  4. Deleted EXTRACT PORA_1.
复制代码
2.        配置Datapump进程参数
  1. GGSCI (dg1) 2> view params pora_2
  2. EXTRACT PORA_2
  3. SETENV (NLS_LANG=JAPANESE_JAPAN.JA16EUC)
  4. PASSTHRU
  5. RMTHOST 192.168.56.7, MGRPORT 7809
  6. RMTTRAIL ./dirdat/pa
  7. TABLE scott.*;
  8. TABLEEXCLUDE scott.emp2
  9. TABLEEXCLUDE scott.emp
复制代码
3.        重新添加Datapump进程
  1. GGSCI (dg1) 168> add extract pora_2, exttrailsource ./dirdat/aa
  2. EXTRACT added.
复制代码
4.        为Datapump进程增加trail文件
  1. GGSCI (dg1) 171> add rmttrail ./dirdat/pa, extract pora_2, megabytes 1
  2. RMTTRAIL added.
复制代码
5.        定义读取源端trail文件时间点
  1. GGSCI (dg1) 172> alter extract pora_2, extseqno 0, extrba 0
  2. EXTRACT altered.
复制代码
6.        启动Datapump进程
  1. GGSCI (dg1) 42> start pora_2
  2. Sending START request to MANAGER ...
  3. EXTRACT PORA_2 starting
复制代码
测试PURGEOLDEXTRACTS
在源端scott用户下执行以下操作:
  1. SQL> begin
  2.   2  for i in 1 ..10000
  3.   3  loop
  4.   4  insert into emp2 select * from emp;
  5.   5  commit;
  6.   6  delete from emp2;
  7.   7  commit;
  8.   8  end loop;
  9.   9  end;
  10. 10  /

  11. SQL> begin
  12.   2  for i in 1 ..10000
  13.   3  loop
  14.   4  insert into emp1 select * from emp;
  15.   5  commit;
  16.   6  delete from emp1;
  17.   7  commit;
  18.   8  end loop;
  19.   9  end;
  20. 10  /
复制代码
在源端生成aa开头的trail文件,通过Datapump进程投递到目标端的trail文件继续以pa开头生成,并且Extract、Datapump和Replicat进程都工作正常。
通过PURGEOLDEXTRACTS参数MINKEEPHOURS子句的设置,一个小时后,源端aa开头trail文件开始自动删除。

5.        测试结论:
        通过修改trail file prefix name的方式,可以避免生产、灾备两端因为trail prefix same而造成生产端trail无法正常purge;并且此方法并不修改灾备端OGG,不会对灾备端造成任何影响。

参考文档
Goldengate Manager not purging trail files [ID 1460097.1]
How to change the name of trail files in Oracle GoldenGate OGG [ID 1321877.1]
已有 1 人评分威望 理由
Maclean Liu(刘相兵 + 18 ogg的好帖!

总评分: 威望 + 18   查看全部评分

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-11-18 18:46 , Processed in 0.051739 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569