欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

运用incremental backup恢复归档GAP的DG

程序员文章站 2022-04-17 16:01:36
...

经常听到有DBA因为对DATAGUARD监控不到位,导致归档日志和主库没有同步,更悲剧的是主库通常都设置了RMAN备份, 而全库备份结束后

经常听到有DBA因为对DATAGUARD监控不到位,导致归档日志和主库没有同步,,更悲剧的是主库通常都设置了RMAN备份,

而全库备份结束后通常会删除归档日志。遇到这种情况,发现很多DBA都会着手重新从主库全库备份恢复到从库,

遇到小的数据库还好,对于动辄上百G或T的库往往会很悲剧,因为数据拷贝时间都相当的漫长。

而事实上对于从库SCN和主库差距并不大,也可以理解为归档差距并不多的DG(比如我们的一个库上线1年了,一个月没有同步差距也不算很大),

根本没必要全库回复,这种情况下增量恢复能快速解决问题,以下是笔者的一次具体操作。

故障现象:

因为周六主库要做历史数据迁移,DBA主动停止了和从库的归档同步。悲剧的是周日凌晨主库有个全库备份动作,

备份完成后把所有的归档都给删除了,这就造成了这部分归档的丢失,从库存在GAP。DBA打算重做DG,申请了一个

晚上8小时的时间,因为数据备份和迁移要5小时,实施和测试计划3小时完成。笔者分析丢失的日志很少,及时制止

了这一实施申请,要求DBA采用incremental recover(增量备份恢复)的方法实现主库和从库同步,

先确定备库的current scn,以此在主库上执行incremental backup,将备份传至备库,使用recover noredo方式恢复备库。

事实证明这种方法是完全可行的。

具体实施如下。

一、实施准备(从库关键数据确认)

  • 1、SPFILE
  • create pfile='/home/Oracle/dba/pfile_before_recover_dg.ora' from spfile;
  • -rw-r--r-- 1 oracle oinstall 1496 11-14 21:36 pfile_before_recover_dg.ora
  • drwxr-xr-x 2 oracle oinstall 4096 11-14 21:35 spfile
  • drwxr-xr-x 2 oracle oinstall 4096 06-01 11:17 expdata
  • drwxr-xr-x 2 oracle oinstall 4096 2011-04-26 script
  • [oracle@L-DB-163-18 dba]$ more *.ora
  • MYPORT.__db_cache_size=3741319168
  • MYPORT.__java_pool_size=16777216
  • MYPORT.__large_pool_size=16777216
  • MYPORT.__shared_pool_size=805306368
  • MYPORT.__streams_pool_size=0
  • *.audit_file_dest='/u01/app/oracle/admin/MYPORT/adump'
  • *.background_dump_dest='/u01/app/oracle/admin/MYPORT/bdump'
  • *.compatible='10.2.0.3.0'
  • *.control_files='/u01/datafile/control01.ctl','/u01/datafile/control02.ctl'#Restore Controlfile
  • *.core_dump_dest='/u01/app/oracle/admin/MYPORT/cdump'
  • *.db_block_size=8192
  • *.db_domain=''
  • *.db_file_multiblock_read_count=32
  • *.db_file_name_convert='+DATA/MYPORT/datafile','/oradata/datafile'
  • *.db_name='MYPORT'
  • *.db_unique_name='standby'
  • *.dispatchers=''
  • *.fal_client='STANDBY'
  • *.fal_server='MYPORT'
  • *.job_queue_processes=10
  • *.log_archive_config='DG_CONFIG=(MYPORT,standby)'
  • *.log_archive_dest_1='LOCATION=/u01/archive valid_for=(all_logfiles,all_roles) db_unique_name=standby'
  • *.log_archive_dest_2='service=MYPORT lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=MYPORT'
  • *.log_archive_dest_state_1='ENABLE'
  • *.log_archive_dest_state_2='ENABLE'
  • *.log_archive_max_processes=4
  • *.log_file_name_convert='+DATA/MYPORT/onlinelog','/u01/datafile'
  • *.open_cursors=1000
  • *.pga_aggregate_target=1092957696
  • *.processes=1000
  • *.remote_login_passwordfile='EXCLUSIVE'
  • *.sessions=885
  • *.sga_max_size=4589934592
  • *.sga_target=4589934592
  • *.shared_servers=0
  • *.standby_file_management='AUTO'
  • *.undo_management='AUTO'
  • *.undo_tablespace='UNDOTBS1'
  • *.user_dump_dest='/u01/app/oracle/admin/MYPORT/udump'
  • [oracle@L-DB-163-18 dba]$
  • 2、查看在线LOG
  • cd /u01/datafile
  • [oracle@L-DB-163-18 dba]$ cd /u01/datafile
  • [oracle@L-DB-163-18 datafile]$ ls -lt
  • 总计 1474052
  • -rw-r----- 1 oracle oinstall 19873792 11-14 21:39 control01.ctl
  • -rw-r----- 1 oracle oinstall 19873792 11-14 21:39 control02.ctl
  • -rw-r----- 1 oracle oinstall 104858112 11-14 21:39 stand03.log
  • -rw-r----- 1 oracle oinstall 104858112 11-14 21:38 stand01.log
  • -rw-r----- 1 oracle oinstall 104858112 11-14 20:22 stand02.log
  • -rw-r----- 1 oracle oinstall 104858112 11-14 18:14 stand04.log
  • -rw-r----- 1 oracle oinstall 104858112 11-11 02:18 stand05.log
  • -rw-r----- 1 oracle oinstall 104858112 11-11 02:18 stand06.log
  • -rw-r----- 1 oracle oinstall 20979712 07-14 04:41 temp01.dbf
  • -rw-r----- 1 oracle oinstall 104858112 07-14 03:44 group_4.270.697238219
  • -rw-r----- 1 oracle oinstall 104858112 07-14 03:44 group_4.271.697238221
  • -rw-r----- 1 oracle oinstall 104858112 07-14 03:44 group_3.268.697238217
  • -rw-r----- 1 oracle oinstall 104858112 07-14 03:44 group_3.269.697238219
  • -rw-r----- 1 oracle oinstall 104858112 07-14 03:44 group_2.264.697238179
  • -rw-r----- 1 oracle oinstall 104858112 07-14 03:44 group_2.265.697238179
  • -rw-r----- 1 oracle oinstall 104858112 07-14 03:44 group_1.262.697238177
  • -rw-r----- 1 oracle oinstall 104858112 07-14 03:44 group_1.263.697238177
  • [oracle@L-DB-163-18 datafile]$
  • 3、查看数据文件
  • [oracle@L-DB-163-18 datafile]$ cd /oradata/datafile
  • [oracle@L-DB-163-18 datafile]$ ls -lt
  • 总计 235078392
  • -rw-r----- 1 oracle oinstall 134225920 11-14 09:20 bbcled_data.588.727381165.dbf
  • -rw-r----- 1 oracle oinstall 16106135552 11-14 09:20 auditbbc.882.710070905.dbf
  • -rw-r----- 1 oracle oinstall 13631496192 11-14 09:20 eport_data.522.736786031.dbf
  • -rw-r----- 1 oracle oinstall 268443648 11-14 09:20 eport_index.779.736786171.dbf
  • -rw-r----- 1 oracle oinstall 26346135552 11-14 09:20 in_bbc_data.291.730331961.dbf
  • -rw-r----- 1 oracle oinstall 10737426432 11-14 09:20 in_bbc_data.752.758838665
  • -rw-r----- 1 oracle oinstall 5368717312 11-14 09:20 in_bbc_index.869.729797303.dbf
  • -rw-r----- 1 oracle oinstall 536879104 11-14 09:20 inman_data.617.718999513.dbf
  • -rw-r----- 1 oracle oinstall 134225920 11-14 09:20 inman_index.723.718999521.dbf
  • -rw-r----- 1 oracle oinstall 268443648 11-14 09:20 in_man_index.885.729797313.dbf
  • -rw-r----- 1 oracle oinstall 34358697984 11-14 09:20 in_hangzhou_data.362.747696959.dbf
  • -rw-r----- 1 oracle oinstall 10737426432 11-14 09:20 in_hangzhou_data.740.758652903
  • -rw-r----- 1 oracle oinstall 8388616192 11-14 09:20 in_hangzhou_index.821.729797323.dbf
  • -rw-r----- 1 oracle oinstall 104865792 11-14 09:20 in_xian_index.663.747696899.dbf
  • -rw-r----- 1 oracle oinstall 268443648 11-14 09:20 in_xian_index.724.729797333.dbf
  • -rw-r----- 1 oracle oinstall 34359730176 11-14 09:20 hangzhou.451.709317119.dbf
  • -rw-r----- 1 oracle oinstall 2147491840 11-14 09:20 sysaux.257.697238119.dbf
  • -rw-r----- 1 oracle oinstall 5368717312 11-14 09:20 system.256.697238117.dbf
  • -rw-r----- 1 oracle oinstall 1056768 11-14 09:20 tbs_catalog.791.752426905.dbf
  • -rw-r----- 1 oracle oinstall 1073750016 11-14 09:20 tbs_catalog.891.710434097.dbf
  • -rw-r----- 1 oracle oinstall 209723392 11-14 09:20 ts_test.348.704715437.dbf
  • -rw-r----- 1 oracle oinstall 7225745408 11-14 09:20 undotbs1.258.697238119.dbf
  • -rw-r----- 1 oracle oinstall 4294975488 11-14 09:20 undotbs2.267.697238205.dbf
  • -rw-r----- 1 oracle oinstall 34304827392 11-14 09:20 users.259.697238119.dbf
  • -rw-r----- 1 oracle oinstall 23571996672 11-14 09:20 users.604.752426949.dbf
  • -rw-r----- 1 oracle oinstall 536879104 11-14 09:20 xian.880.711538313.dbf
  • 运用incremental backup恢复归档GAP的DG