如何通过rman的增量备份恢复dataguard中standby端的数据
很多正在使用dataguard的客户,都会遇到一个棘手的问题: 在备份端与主库同步的过程中由于网络原因或磁盘问题导致一个或多个归档日志丢失,进而dataguard同步无法继续。很多客户都选择了重新全库恢复,并重新搭建dataguard。 如果我们的源数据库非常大(超过100G的数据量),其实可以选择一种更简便并高效的恢复方法--通过rman的增量备份恢复dataguard中standby端的数据。
具体恢复过程如下:
1) Stop the managed recovery process (MRP) on the STANDBY database
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
2) Determine the SCN of the STANDBY database.
SQL> SELECT CURRENT_SCN FROM V$DATABASE;
CURRENT_SCN
--------------
3164433
SQL> select min(checkpoint_change#) from v$datafile_header
where file# not in (select file# from v$datafile where enabled = 'READ ONLY');
MIN(F.FHSCN)
----------------
3162298
comment:上面一个为控制文件中记录的SCN号,另一个为数据文件头记录的SCN号, 我们需要选择较小SCN号(3162298)的来备份。
3) Take an incremental backup of the PRIMARY database
RMAN> BACKUP INCREMENTAL FROM SCN 3162298 DATABASE FORMAT '/tmp/ForStandby_%U' tag 'FORSTANDBY';
4) Transfer all backup sets to STANDBY server
scp /tmp/ForStandby_* standby:/tmp
5) Catalog the backups in STANDBY controlfile.
RMAN> CATALOG START WITH '/tmp/ForStandby';
6) Recover the STANDBY database with the cataloged incremental backup:
RMAN> RECOVER DATABASE NOREDO;
7) In RMAN, connect to the PRIMARY database and create a standby control file backup:
RMAN> BACKUP CURRENT CONTROLFILE FOR STANDBY FORMAT '/tmp/ForStandbyCTRL.bck';
8) Copy the standby control file backup to the STANDBY system.
9) Capture datafile information in STANDBY database.
We now need to refresh the standby controlfile from primary controlfile (for standby) backup. However, since the datafile names are likely different than primary, let's save the name of datafiles on standby first, which we can refer after restoring controlfile from primary backup to verify if there is any discrepancy. Run below query from Standby and save results for further use.
10) From RMAN, connect to STANDBY database and restore the standby control file:
RMAN> SHUTDOWN IMMEDIATE ;
RMAN> STARTUP NOMOUNT;
RMAN> RESTORE STANDBY CONTROLFILE FROM '/tmp/ForStandbyCTRL.bck';
11) Shut down the STANDBY database and startup mount:
RMAN> SHUTDOWN;
RMAN> STARTUP MOUNT;
scp /tmp/ForStandbyCTRL.bck standby:/tmp
12) Catalog datafiles in STANDBY if location/name of datafiles is different
Since the controlfile is restored from PRIMARY the datafile locations in STANDBY controlfile will be same as PRIMARY database, if the directory structure is different between the standby and primary or you are using Oracle managed file names, catalog the datafiles in STANDBY will do the necessary rename operations. If the primary and standby have identical structure and datafile names, this step can be skipped.
Perform the below step in STANDBY for each diskgroup where the datafile directory structure between primary and standby are different.
RMAN> CATALOG START WITH '+DATA/mystd/datafile/';
To determine if any files have been added to Primary since the standby current scn:
SQL>SELECT FILE#, NAME FROM V$DATAFILE WHERE CREATION_CHANGE# > 3162298
If the above query returns with 0 zero rows, you can switch the datafiles. This will rename the datafiles to its correct name at the standby site:
RMAN> SWITCH DATABASE TO COPY;
datafile 1 switched to datafile copy "+DATA/mystd/datafile/system.297.688213333"
datafile 2 switched to datafile copy "+DATA/mystd/datafile/undotbs1.268.688213335"
datafile 3 switched to datafile copy "+DATA/mystd/datafile/sysaux.267.688213333"
13) Configure the STANDBY database to use flashback (optional)
SQL> ALTER DATABASE FLASHBACK OFF;
SQL> ALTER DATABASE FLASHBACK ON;
14) On STANDBY database, clear all standby redo log groups:
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 1;
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 2;
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 3;
....
15) On the STANDBY database, start the MRP
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
For more detailed info:
Steps to perform for Rolling Forward a Physical Standby Database using RMAN Incremental Backup. (Doc ID 836986.1)
如何通过rman的增量备份恢复dataguard中standby端的数据的更多相关文章
- 使用RMAN增量备份处理Dataguard因归档丢失造成的gap
场景: 备库执行日志应用出现如下报错: Thu Mar 29 11:21:45 2018FAL[client]: Failed to request gap sequence GAP - thread ...
- ORACLE RMAN备份及还原 RMAN能够进行增量备份:数据库,表空间,数据文件
ORACLE RMAN备份及还原 RMAN能够进行增量备份:数据库.表空间.数据文件 仅仅有使用过的block能够被备份成backup set 表空间与数据文件相应关系:dba_data_file ...
- ORACLE异机增量备份恢复
PROD异机增量备份恢复验证实施文档 准备工作:source 源库:PROD数据库备份策略:周日0级RMAN备份,周一至周六1级差异增量备份0 4 * * 0 /data/rmanlev0.sh &g ...
- 怎样使用 RMAN 增量备份恢复 data guard log gap(日志断档)
主库查询最小scn 信息: SQL> col current_scn for 999999999999999 SQL> SELECT CURRENT_SCN FROM V$DATABAS ...
- 利用增量备份恢复因归档丢失造成的DG gap
故障现象:data guard归档出现gap,悲剧的是丢失的归档在主库上被rman备份时删除了,丢失的归档大约有20几个,数据库大小约2T,如果重建DG将非常耗时间,因此决定利用增量备份的方式恢复DG ...
- 通过增量备份恢复来处理Oracle DG 复制GAP
1.确定增备scn范围,通过alert日志获取gap日志序列GAP - thread 1 sequence 109631-117170 2.根据序列获取增备起点SCN提示最小gap序列为109631, ...
- Oracle的Rman差异增量备份
所谓增量备份,顾名思义即是每次备份操作那些发生了"变化"的数据块.在RMAN增量备份中有两种:Differential(差异备份)和Cumulative(增量备份)方式.由于需求这 ...
- 【转】mysql增量备份恢复实战企业案例
来源地址:http://seanlook.com/2014/12/05/mysql_incremental_backup_example/ 小量的数据库可以每天进行完整备份,因为这也用不了多少时间,但 ...
- oracle 增量备份恢复策略(基础知识)
EXP和IMP是Oracle提供的一种逻辑备份工具.逻辑备份创建数据库对 象的逻辑拷贝并存入一个二进制转储文件.这种逻辑备份需要在数据库启动的情况下使用, 其导出实质就是读取一个数据库记录集(甚至可以 ...
随机推荐
- Python -- 图片处理
使用PIL库 转换图片格式(jpg --> png) from PIL import Image Image.open('E:/art.jpg').save('E:/art.png')
- 《Mysql技术内幕,Innodb存储引擎》——索引与算法
B+树 B+树中,所有记录节点都按照键值的大小顺序放在同一层叶子节点,各个叶子节点指针进行连接. 图中指针是单向的,但是书上的图是双向的,而且旋转应该也是双向才能完成) B+树插入处理 Leaf Pa ...
- onkeydown事件
<img src="images/hot.jpg" alt="" id="imgId" class="img1"/ ...
- 不会几个框架,都不好意思说搞过前端: Vue.js - 60分钟快速入门
Vue.js——60分钟快速入门 Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的.相比于Angular.js,Vue.js提供了更加简洁.更易于理 ...
- Node.js之Express四
Express提供的大部分功能是通过中间件函数完成的,这些中间件函数在Node.js收到请求的时点和发送响应的时点之间执行.Express的Connect模块提供了中间件框架,可以方便的在全局或路径级 ...
- 使用JS导出页面内容到Excel
JS代码 <script> $(function(){ // 使用outerHTML属性获取整个table元素的HTML代码(包括<table>标签),然后包装成一个完整的HT ...
- 二进制转化、<<、>>、>>>移位运算
参考资料: https://www.cnblogs.com/wxb20/p/6033458.html https://www.cnblogs.com/joahyau/p/6420619.html ht ...
- CentOS6.8启动Tomcat无法访问
今天笔者在CentOS6.8的生产环境上配置Java环境,安装JDK,部署Tomcat,这本来是很简单的一件事,可是最后发现通过IP一直访问不了Tomcat的默认页面. 图1. 无法访问Tomcat默 ...
- JVM内存问题定位
一.查看机器资源使用状态: 使用top命令,内存占用较高的那个PID对应的进程一般就是JVM了 二.查看Swap状态: 使用free -m 命令,一般内存占用过高会导致swap占用也偏高,看看swap ...
- Linux的虚拟内存管理-如何分配和释放内存,以提高服务器在高并发情况下的性能,从而降低了系统的负载
Linux的虚拟内存管理有几个关键概念: Linux 虚拟地址空间如何分布?malloc和free是如何分配和释放内存?如何查看堆内内存的碎片情况?既然堆内内存brk和sbrk不能直接释放,为什么不全 ...