经常听到有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
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
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
[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
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
-rw-r
![linux](/linuxfile/logo.gif)
Statement:The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn