RAC 之 RMAN 恢复

zz/2024/4/20 0:14:19

 

之前整理的RMAN 有关还原的文章:

         RMAN 系列(五) ---- RMAN 还原 恢复

      http://www.cndba.cn/Dave/article/1065

 

      RMAN 备份与恢复 实例

      http://www.cndba.cn/Dave/article/1073

 

         Oracle Rmanresetlogs版本恢复

      http://www.cndba.cn/dave/article/1271

 

 

RAC 下的RMAN 讲究的是备份和还原的策略要一致。备份策略的不同,会导致备份结果的分步不同,进而影响恢复的策略和步骤。一般情况下,恢复策略和备份策略必须是对应的。如果备份策略进行了修改,那么恢复也应该采用相同的策略。之前我们的RMAN 备份参考:

RAC RMAN 备份

http://www.cndba.cn/Dave/article/1001

 

 

 

这里面有2个注意事项:

1.       执行恢复的节点要能看到所有节点的归档文件。 这个在RAC 备份那篇里已经讲了方法,就是把归档文件传送到其他节点,这样就能够看到所有节点的归档文件了。

2.       备份集的存放问题。 如果我们放在共享设备上,那么节点可以访问所有的备份文件,那么就可以直接进行恢复操作。 如果不是放在共享设备,可以通过NFS mount来挂载,或者设置2个通道。 分别指向多个实例。

 

 

示例:

 

1.1 先停止数据库

 

[oracle@rac1 bin]$ srvctl stop db -d orcl

[oracle@rac1 bin]$ crs_stat -t

Name           Type           Target    State     Host

------------------------------------------------------------

ora.orcl.db    application    OFFLINE   OFFLINE

ora....oltp.cs application    OFFLINE   OFFLINE

ora....cl1.srv application    OFFLINE   OFFLINE

ora....cl2.srv application    OFFLINE   OFFLINE

ora....l1.inst application    OFFLINE   OFFLINE

ora....l2.inst application    OFFLINE   OFFLINE

ora....SM1.asm application    ONLINE    ONLINE    rac1

ora....C1.lsnr application    ONLINE    ONLINE    rac1

ora.rac1.gsd   application    ONLINE    ONLINE    rac1

ora.rac1.ons   application    ONLINE    ONLINE    rac1

ora.rac1.vip   application    ONLINE    ONLINE    rac1

ora....SM2.asm application    ONLINE    ONLINE    rac2

ora....C2.lsnr application    ONLINE    ONLINE    rac2

ora.rac2.gsd   application    ONLINE    ONLINE    rac2

ora.rac2.ons   application    ONLINE    ONLINE    rac2

ora.rac2.vip   application    ONLINE    ONLINE    rac2

 

 

1.2 将节点启动到mount 状态:

 

备份集存在在2个节点的情况(2个节点的RAC),在这种情况下,需要分配2个通道分别连接对应的节点。 每个节点都需要启动到mount状态。 因为每个节点都有备份文件,所以在每个节点都需要执行restore,如果没有启动的话,就会报错,对于备份集存放在共享设备的就不用这么麻烦。

 

 

[oracle@rac1 bin]$ export ORACLE_SID=orcl1

[oracle@rac1 bin]$ rman target /

Recovery Manager: Release 10.2.0.1.0 - Production on Mon Sep 27 02:56:55 2010

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

connected to target database (not started)

 

RMAN> startup mount;

Oracle instance started

database mounted

Total System Global Area     180355072 bytes

Fixed Size                     1218388 bytes

Variable Size                100665516 bytes

Database Buffers              75497472 bytes

Redo Buffers                   2973696 bytes

 

[oracle@rac2 bin]$ export ORACLE_SID=orcl2

[oracle@rac2 bin]$ rman target /

Recovery Manager: Release 10.2.0.1.0 - Production on Mon Sep 27 02:57:44 2010

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

connected to target database (not started)

 

RMAN> startup mount;

Oracle instance started

database mounted

Total System Global Area     180355072 bytes

Fixed Size                     1218388 bytes

Variable Size                 83888300 bytes

Database Buffers              92274688 bytes

Redo Buffers                   2973696 bytes

 

 

1.3            完全恢复

 

在任意一个节点上执行:

 

RMAN> RUN {

allocate channel c1 device type disk connect  'sys/oracle@orcl1';

allocate channel c2 device type disk connect  'sys/oracle@orcl2';

restore database;

recover database;

}

2> 3> 4> 5> 6>

using target database control file instead of recovery catalog

allocated channel: c1

channel c1: sid=146 instance=orcl1 devtype=DISK

 

allocated channel: c2

channel c2: sid=146 instance=orcl2 devtype=DISK

 

Starting restore at 27-SEP-10

 

skipping datafile 2; already restored to file +DATA/orcl/datafile/undotbs1.278.730181053

skipping datafile 3; already restored to file +DATA/orcl/datafile/sysaux.277.730181053

skipping datafile 5; already restored to file +DATA/orcl/datafile/undotbs2.284.730181347

skipping datafile 1; already restored to file +DATA/orcl/datafile/system.276.730181051

skipping datafile 4; already restored to file +DATA/orcl/datafile/users.279.730181053

skipping datafile 7; already restored to file +DATA/orcl/datafile/anhuianqing.dbf

Finished restore at 27-SEP-10

 

Starting recover at 27-SEP-10

 

starting media recovery

media recovery complete, elapsed time: 00:00:04

 

Finished recover at 27-SEP-10

released channel: c1

released channel: c2

 

RMAN> sql 'alter database open';

sql statement: alter database open

 

 

1.4 不完全恢复

 

 

1.4.1基于时间点的恢复

RMAN> RUN {

allocate channel c1 device type disk connect  'sys/oracle@orcl1';

allocate channel c2 device type disk connect  'sys/oracle@orcl2';

set until time "to_date('2010/9/27 03:30:00','yyyy/mm/dd hh24:mi:ss')";

restore database;

recover database;

}

2> 3> 4> 5> 6> 7> 8>

allocated channel: c1

channel c1: sid=143 instance=orcl1 devtype=DISK

 

allocated channel: c2

channel c2: sid=146 instance=orcl2 devtype=DISK

 

executing command: SET until clause

 

Starting restore at 27-SEP-10

 

channel c1: starting datafile backupset restore

channel c1: specifying datafile(s) to restore from backup set

restoring datafile 00001 to +DATA/orcl/datafile/system.276.730181051

restoring datafile 00004 to +DATA/orcl/datafile/users.279.730181053

restoring datafile 00007 to +DATA/orcl/datafile/anhuianqing.dbf

channel c1: reading from backup piece /u01/backup/orcl_2blotmnp_1_1_20100927

channel c2: starting datafile backupset restore   -- 这里使用了2个通道,因为这个测试的备份集是放在2个节点的。

channel c2: specifying datafile(s) to restore from backup set

restoring datafile 00002 to +DATA/orcl/datafile/undotbs1.278.730181053

restoring datafile 00003 to +DATA/orcl/datafile/sysaux.277.730181053

restoring datafile 00005 to +DATA/orcl/datafile/undotbs2.284.730181347

channel c2: reading from backup piece /u01/backup/orcl_2clotmno_1_1_20100927

channel c2: restored backup piece 1

piece handle=/u01/backup/orcl_2clotmno_1_1_20100927 tag=ORCL_HOT_DB_BK

channel c2: restore complete, elapsed time: 00:01:21

channel c1: restored backup piece 1

piece handle=/u01/backup/orcl_2blotmnp_1_1_20100927 tag=ORCL_HOT_DB_BK

channel c1: restore complete, elapsed time: 00:02:48

Finished restore at 27-SEP-10

 

Starting recover at 27-SEP-10

 

starting media recovery

media recovery complete, elapsed time: 00:00:03

 

Finished recover at 27-SEP-10

 

released channel: c1

released channel: c2

 

RMAN>

 

 

恢复完成之后,在两个节点执行:

alter database open resetlogs;

打开数据即可。

 

 

1.4.2 基于SCN的恢复

 

当前SCN 查看方法:

SQL> select current_scn from v$database;

CURRENT_SCN

-----------

1118216

 

 

RMAN> RUN {

allocate channel c1 device type disk connect  'sys/oracle@orcl1';

allocate channel c2 device type disk connect  'sys/oracle@orcl2';

restore database until scn 1118215 ;

recover database until scn 1118215 ;

}

2> 3> 4> 5> 6>

using target database control file instead of recovery catalog  -- catalog 模式, 这种模式备份控制文件非常重要

allocated channel: c1

channel c1: sid=142 instance=orcl1 devtype=DISK

 

allocated channel: c2

channel c2: sid=151 instance=orcl2 devtype=DISK

 

Starting restore at 27-SEP-10

 

channel c1: starting datafile backupset restore

channel c1: specifying datafile(s) to restore from backup set

restoring datafile 00001 to +DATA/orcl/datafile/system.276.730181051

restoring datafile 00004 to +DATA/orcl/datafile/users.279.730181053

restoring datafile 00007 to +DATA/orcl/datafile/anhuianqing.dbf

channel c1: reading from backup piece /u01/backup/orcl_2blotmnp_1_1_20100927

channel c2: starting datafile backupset restore

channel c2: specifying datafile(s) to restore from backup set

restoring datafile 00002 to +DATA/orcl/datafile/undotbs1.278.730181053

restoring datafile 00003 to +DATA/orcl/datafile/sysaux.277.730181053

restoring datafile 00005 to +DATA/orcl/datafile/undotbs2.284.730181347

channel c2: reading from backup piece /u01/backup/orcl_2clotmno_1_1_20100927

channel c2: restored backup piece 1

piece handle=/u01/backup/orcl_2clotmno_1_1_20100927 tag=ORCL_HOT_DB_BK

channel c2: restore complete, elapsed time: 00:03:58

channel c1: restored backup piece 1

piece handle=/u01/backup/orcl_2blotmnp_1_1_20100927 tag=ORCL_HOT_DB_BK

channel c1: restore complete, elapsed time: 00:05:47

Finished restore at 27-SEP-10

 

Starting recover at 27-SEP-10

 

starting media recovery

 

archive log thread 1 sequence 44 is already on disk as file /u02/rac1_arch/1_44_730181171.dbf

archive log thread 2 sequence 38 is already on disk as file /u02/rac1_arch/2_38_730181171.dbf

archive log thread 1 sequence 1 is already on disk as file /u02/rac1_arch/1_1_730784806.dbf

archive log thread 2 sequence 1 is already on disk as file /u02/rac2_arch/2_1_730784806.dbf

archive log filename=/u02/rac1_arch/1_44_730181171.dbf thread=1 sequence=44

archive log filename=/u02/rac1_arch/2_38_730181171.dbf thread=2 sequence=38

archive log filename=/u02/rac2_arch/2_1_730784806.dbf thread=2 sequence=1

media recovery complete, elapsed time: 00:00:09

Finished recover at 27-SEP-10

released channel: c1

released channel: c2

 

恢复结束,用 alter database open resetlogs 打开数据库。

 

 

小结:

以上都是简单的测试,具体情况还是要具体对待。 经验积累的多了,就知道怎么处理了。 总之,备份重于一切。 有了备份,才有恢复的可能。

 

 

 

 

 

 

------------------------------------------------------------------------------

QQ: 492913789
Email: ahdba@qq.com
Blog: http://www.cndba.cn/dave

网上资源: http://tianlesoftware.download.csdn.net

相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx

DBA1 群:62697716(); DBA2 群:62697977()

DBA3 群:63306533;     聊天 群:40132017

--加群需要在备注说明SGA的组成部分,否则拒绝申请


http://www.ngui.cc/zz/2721260.html

相关文章

RAC crs 卸载后,再次安装Oracle, crs 目录还存在的问题

今天在做RAC data Guard 的实验。 用了之前做RAC 添加节点的虚拟机。 即以前的rac3节点。 这个节点之前已经卸载过了。 卸载方法参考: RAC 卸载 说明 http://blog.csdn.net/tianlesoftware/archive/2010/09/18/5892225.aspx 但是在安装Oracle 软件的时候&#x…

oracle 11gR2 RAC root.sh 错误 ORA-15072 ORA-15018

Oracle 11gR2 RAC 安装Clusterware 结束, 在第二个节点执行root.sh脚本的是报如下错误: DiskGroup DATA1 creation failed with the following message: ORA-15018: diskgroup cannot be created ORA-15072: command requires at least 1 regular failu…

Oracle Data Guard ORA-16086: standby database does not contain available standby 处理方法

启动Data Guard 后, 查看同步情况: SQL> select error from v$archive_dest; ERROR ----------------------------------------------------------------- ORA-16086: standby database does not contain available standby log files ERROR ---…

Oracle Transparent Application Failover(TAF) 说明

前几天和一个朋友讨论到Oracle Net Services的高级特性的问题,就研究了下。 Oracle 官网上的说明参考: Enabling Advanced Features of Oracle Net Services http://download.oracle.com/docs/cd/B19306_01/network.102/b14212/advcfg.htm#i473297 在这…

IBM AIX 5.3 系统管理 -- 监视和性能优化一

一. 监视文件系统增长 在 AIX 5L 系统上,管理员需要监视文件系统增长以防止文件系统装满。 基于“Berkeley 磁盘配额系统”(Berkeley Disk Quota System) 的磁盘配额系统提供了一种控制磁盘空间使用的有效方法。可以为各个用户或组定义配额系统,并且每…

IBM HACMP 系列 -- 基础知识

一. 什么是 HACMP(High Availability Cluster Multi-Processing) 1.1 高可用性 在当今的复杂环境中,为应用程序提供连续的服务是成功的 IT 实现的重要组成部分。高可用性屏蔽或消除计划内和计划外的系统和应用程序停机时间,是帮助为应用程序客户端提供…

浅谈 HACMP 心跳

一. 初识 HACMP 心跳 HACMP 软件主要监控 4 种故障:节点,网卡,网络,应用。其中前三种都是通过心跳来监控并产生事件响应的,我们可以看出使用 HACMP 集群,可谓玩的就是心跳。如果不了解心跳的过程和基本原理…

Oracle Golden Gate 简述

Oracle 在2009年收购了Golden Gate,之后Oracle 把Stream 的一些优点引入到了Golden Gate。 所以以后在数据复制这块,Oracle 肯定也是大力发展Golden Gate。 官网参考: http://www.oracle.com/us/corporate/Acquisitions/goldengate/index.h…

OEM 应用程序要求的数据库权限超出了您当前具有的权限 解决方法

当Oralce 访问OEM 出现如下错误时: 应用程序要求的数据库权限超出了您当前具有的权限 从如下2个方面检查: (1)给用户赋SELECT_CATALOG_ROLE grant SELECT_CATALOG_ROLE to user (2)DBSNMP,SYSMA…

RAC srvctl 命令报 libpthread.so.0 cannot open shared object file No such file or directory 解决方法

运行srvctl 命令报错: [oraclerac1 u01]$ srvctl remove asm -n rac1 /u01/app/oracle/product/10.2.0/db_1/jdk/jre/bin/java: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory 开始还觉…