RMAN备份恢复--RAC环境数据库备份(三)

作者:yangtingkun
2008/2/12 0:00:00
本文关键字: BPM 业内新闻

RAC 环境的备份、恢复和普通数据库的备份、恢复是有一些区别的。

这篇介绍基于裸设备的RAC环境下的恢复。上一篇文章已经介绍了采用带CONNECT语句的方式备份,这里介绍对应的恢复方法。

首先备份并删除上次全备份以来的归档日志,然后准备开始恢复:

                
RMAN > run 2 > { 3 > allocate channel c1 device type disk format ' /data1/backup/%U '
connect sys / test@testrac1; 4 > allocate channel c2 device type disk format ' /data1/backup/%U '
connect sys / test@testrac2; 5 > backup archivelog all delete all input; 6 > }

分配的通道: c1通道c1: sid=288实例=testrac1 devtype=DISK

分配的通道: c2通道c2: sid=294实例=testrac2 devtype=DISK

启动backup14-5-07当前日志已存档通道c1:正在启动存档日志备份集通道c1:正在指定备份集中的存档日志输入存档日志线程=1序列=181记录ID=328时间戳=622553558输入存档日志线程=1序列=182记录ID=330时间戳=622553686输入存档日志线程=1序列=183记录ID=333时间戳=622559736通道c1:正在启动段114-5-07通道c2:正在启动存档日志备份集通道c2:正在指定备份集中的存档日志输入存档日志线程=2序列=101记录ID=329时间戳=622553567输入存档日志线程=2序列=102记录ID=331时间戳=622553690输入存档日志线程=2序列=103记录ID=332时间戳=622559728通道c2:正在启动段114-5-07通道c2:已完成段114-5-07段句柄=/data1/backup/2rihn0fk_1_1标记=TAG20070514T131536注释=NONE通道c2:备份集已完成,经过时间:00:01:06通道c2:正在删除存档日志存档日志文件名=/data1/archivelog/2_101_618591128.dbf记录ID=329时间戳=622553567存档日志文件名=/data1/archivelog/2_102_618591128.dbf记录ID=331时间戳=622553690存档日志文件名=/data1/archivelog/2_103_618591128.dbf记录ID=332时间戳=622559728通道c1:已完成段114-5-07段句柄=/data1/backup/2qihn0fp_1_1标记=TAG20070514T131536注释=NONE通道c1:备份集已完成,经过时间:00:01:09通道c1:正在删除存档日志存档日志文件名=/data1/archivelog/1_181_618591128.dbf记录ID=328时间戳=622553558存档日志文件名=/data1/archivelog/1_182_618591128.dbf记录ID=330时间戳=622553686存档日志文件名=/data1/archivelog/1_183_618591128.dbf记录ID=333时间戳=622559736完成backup14-5-07释放的通道: c1释放的通道: c2

在恢复之前,需要将数据库关闭,通过rman启动实例并准备恢复:

$ srvctl stop db -d testrac

下面准备通过RMAN进行数据库的恢复。由于RAC的备份是同时备份到两个节点的本地硬盘上,因此恢复的时候也应该两个节点同时进行RESTORE操作。

可以在两个节点上分别启动RMAN,将数据库处于STARTUP MOUNT状态,然后就可以在任意一个节点上执行RESTORE操作:

                 
$ rman target / 恢复管理器: Release 10.2 . 0.3 . 0 - Production on 星期一 5月 14 13 : 46 : 25 2007 Copyright (c) 1982 , 2005 , Oracle. All rights reserved.

已连接到目标数据库(未启动)

                 
RMAN > startup mount

Oracle实例已启动数据库已装载

系统全局区域总计2147483648字节

Fixed Size 2031480字节
Variable Size 335544456
字节
Database Buffers 1795162112
字节
Redo Buffers 14745600
字节

                
RMAN > exit

恢复管理器完成。

另一个节点:

                 
$ rman target / 恢复管理器: Release 10.2 . 0.3 . 0 - Production on 星期一 5月 14 13 : 46 : 41 2007 Copyright (c) 1982 , 2005 , Oracle. All rights reserved.

已连接到目标数据库(未启动)

                 
RMAN > startup mount

Oracle实例已启动数据库已装载

系统全局区域总计2147483648字节

Fixed Size 2031480字节
Variable Size 335544456
字节
Database Buffers 1795162112
字节
Redo Buffers 14745600
字节

                 
RMAN > run 2 > { 3 > allocate channel c1 device type disk format ' /data1/backup/%U '
connect sys / test@testrac1; 4 > allocate channel c2 device type disk format ' /data1/backup/%U '
connect sys / test@testrac2; 5 > restore database; 6 > }

使用目标数据库控制文件替代恢复目录分配的通道: c1通道c1: sid=313实例=testrac1 devtype=DISK

分配的通道: c2通道c2: sid=316实例=testrac2 devtype=DISK

启动restore14-5-07

通道c2:正在开始恢复数据文件备份集通道c2:正在指定从备份集恢复的数据文件正将数据文件00002恢复到+DISK/testrac/datafile/undotbs1.263.618591197正将数据文件00003恢复到+DISK/testrac/datafile/sysaux.264.618591225正将数据文件00004恢复到+DISK/testrac/datafile/undotbs2.266.618591249正将数据文件00007恢复到+DISK/testrac/datafile/zhejiang02.dbf正将数据文件00011恢复到+DISK/testrac/datafile/zhejiang04.dbf正将数据文件00013恢复到+DISK/testrac/datafile/lt_index_ts01.dbf正将数据文件00014恢复到+DISK/testrac/datafile/zhejiang06.dbf通道c2:正在读取备份段/data1/backup/2lihmp9f_1_1通道c1:正在开始恢复数据文件备份集通道c1:正在指定从备份集恢复的数据文件正将数据文件00001恢复到+DISK/testrac/datafile/system.262.618591167正将数据文件00005恢复到+DISK/testrac/datafile/users.267.618591279正将数据文件00006恢复到+DISK/testrac/datafile/zhejiang01.dbf正将数据文件00008恢复到+DISK/testrac/datafile/ndmain01.dbf正将数据文件00009恢复到+DISK/testrac/datafile/zhejiang03.dbf正将数据文件00010恢复到+DISK/testrac/datafile/ndindex01.dbf正将数据文件00012恢复到+DISK/testrac/datafile/zhejiang05.dbf通道c1:正在读取备份段/data1/backup/2kihmp9k_1_1通道c1:已恢复备份段1段句柄= /data1/backup/2kihmp9k_1_1标记= TAG20070514T111250通道c1:恢复完成,用时: 00:17:18通道c2:已恢复备份段1段句柄= /data1/backup/2lihmp9f_1_1标记= TAG20070514T111250通道c2:恢复完成,用时: 00:19:24完成restore14-5-07释放的通道: c1释放的通道: c2

如果只启动了RAC的一个节点,则会导致RMAN出现下面的错误:

MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore
命令(05/11/2007 17:55:17)失败
RMAN-06026:
有些目标没有找到-终止恢复
RMAN-06100:
没有通道来恢复数据文件14的备份或是副本
RMAN-06100:
没有通道来恢复数据文件13的备份或是副本
RMAN-06100:
没有通道来恢复数据文件11的备份或是副本
RMAN-06100:
没有通道来恢复数据文件7的备份或是副本
RMAN-06100:
没有通道来恢复数据文件4的备份或是副本
RMAN-06100:
没有通道来恢复数据文件3的备份或是副本
RMAN-06100:
没有通道来恢复数据文件2的备份或是副本

下面恢复归档日志:

                 
RMAN > run 2 > { 3 > allocate channel c1 device type disk format ' /data1/backup/%U '
connect sys / test@testrac1; 4 > allocate channel c2 device type disk format ' /data1/backup/%U '
connect sys / test@testrac2; 5 > restore (archivelog sequence between 179 and 183 thread 1 ) 6 > (archivelog sequence between 99 and 103 thread 2 ); 7 > }

分配的通道: c1通道c1: sid=313实例=testrac1 devtype=DISK

分配的通道: c2通道c2: sid=316实例=testrac2 devtype=DISK

启动restore14-5-07

通道c1:正在启动到默认目标的存档日志恢复通道c2:正在启动到默认目标的存档日志恢复通道c1:正在恢复存档日志存档日志线程=1序列=179通道c2:正在恢复存档日志存档日志线程=2序列=99通道c1:正在恢复存档日志存档日志线程=1序列=180通道c1:正在读取备份段/data1/backup/2oihmq8g_1_1通道c2:正在恢复存档日志存档日志线程=2序列=100通道c2:正在读取备份段/data1/backup/2pihmq8b_1_1通道c2:已恢复备份段1段句柄= /data1/backup/2pihmq8b_1_1标记= TAG20070514T112919通道c2:恢复完成,用时: 00:00:35通道c2:正在启动到默认目标的存档日志恢复通道c2:正在恢复存档日志存档日志线程=2序列=101通道c2:正在恢复存档日志存档日志线程=2序列=102通道c2:正在恢复存档日志存档日志线程=2序列=103通道c2:正在读取备份段/data1/backup/2rihn0fk_1_1通道c1:已恢复备份段1段句柄= /data1/backup/2oihmq8g_1_1标记= TAG20070514T112919通道c1:恢复完成,用时: 00:00:52通道c1:正在启动到默认目标的存档日志恢复通道c1:正在恢复存档日志存档日志线程=1序列=181通道c1:正在恢复存档日志存档日志线程=1序列=182通道c1:正在恢复存档日志存档日志线程=1序列=183通道c1:正在读取备份段/data1/backup/2qihn0fp_1_1通道c2:已恢复备份段1段句柄= /data1/backup/2rihn0fk_1_1标记= TAG20070514T131536通道c2:恢复完成,用时: 00:01:12通道c1:已恢复备份段1段句柄= /data1/backup/2qihn0fp_1_1标记= TAG20070514T131536通道c1:恢复完成,用时: 00:01:12完成restore14-5-07释放的通道: c1释放的通道: c2

现在面临一个问题,对于还原(RESTORE)操作,可以两个实例同时进行,但是对于恢复(RECOVER)操作,只能一个实例完成。

这就要求一个实例必须能同时看到两个实例的归档日志。可以通过nfs mount等方式来实现,这里采用最简单的方法,将节点2上的归档拷贝到节点1的归档目录下。

RMAN> host 'rcp 172.25.198.223:/data1/archivelog/* /data1/archivelog'
2> ;

主机命令完成

                 
RMAN > run 2 > { 3 > allocate channel c1 device type disk format ' /data1/backup/%U '
connect sys / test@testrac1; 4 > allocate channel c2 device type disk format ' /data1/backup/%U '
connect sys / test@testrac2; 5 > recover database; 6 > }

释放的通道: ORA_SBT_TAPE_1释放的通道: ORA_SBT_TAPE_2释放的通道: ORA_DISK_1释放的通道: ORA_DISK_2分配的通道: c1通道c1: sid=313实例=testrac1 devtype=DISK

分配的通道: c2通道c2: sid=316实例=testrac2 devtype=DISK

启动recover14-5-07

正在开始介质的恢复

存档日志线程1序列179已作为文件/data1/archivelog/1_179_618591128.dbf存在于磁盘上存档日志线程1序列180已作为文件/data1/archivelog/1_180_618591128.dbf存在于磁盘上存档日志线程1序列181已作为文件/data1/archivelog/1_181_618591128.dbf存在于磁盘上存档日志线程1序列182已作为文件/data1/archivelog/1_182_618591128.dbf存在于磁盘上存档日志线程1序列183已作为文件/data1/archivelog/1_183_618591128.dbf存在于磁盘上存档日志线程2序列99已作为文件/data1/archivelog/2_99_618591128.dbf存在于磁盘上存档日志线程2序列100已作为文件/data1/archivelog/2_100_618591128.dbf存在于磁盘上存档日志线程2序列101已作为文件/data1/archivelog/2_101_618591128.dbf存在于磁盘上存档日志线程2序列102已作为文件/data1/archivelog/2_102_618591128.dbf存在于磁盘上存档日志线程2序列103已作为文件/data1/archivelog/2_103_618591128.dbf存在于磁盘上存档日志文件名=/data1/archivelog/1_179_618591128.dbf线程=1序列=179存档日志文件名=/data1/archivelog/2_99_618591128.dbf线程=2序列=99存档日志文件名=/data1/archivelog/2_100_618591128.dbf线程=2序列=100存档日志文件名=/data1/archivelog/1_180_618591128.dbf线程=1序列=180存档日志文件名=/data1/archivelog/1_181_618591128.dbf线程=1序列=181存档日志文件名=/data1/archivelog/2_101_618591128.dbf线程=2序列=101存档日志文件名=/data1/archivelog/1_182_618591128.dbf线程=1序列=182存档日志文件名=/data1/archivelog/2_102_618591128.dbf线程=2序列=102介质恢复完成,用时: 00:06:16完成recover14-5-07释放的通道: c1释放的通道: c2

RMAN>

如果没有将归档日志文件拷贝到恢复节点上,则会出现下面的错误:

                 
RMAN > run 2 > { 3 > allocate channel c1 device type disk format ' /data1/backup/%U '
connect sys / test@testrac1; 4 > allocate channel c2 device type disk format ' /data1/backup/%U '
connect sys / test@testrac2; 5 > recover database; 6 > }

分配的通道: c1通道c1: sid=313实例=testrac1 devtype=DISK

分配的通道: c2通道c2: sid=316实例=testrac2 devtype=DISK

启动recover14-5-07

正在开始介质的恢复

存档日志线程1序列179已作为文件/data1/archivelog/1_179_618591128.dbf存在于磁盘上存档日志线程1序列180已作为文件/data1/archivelog/1_180_618591128.dbf存在于磁盘上存档日志线程1序列181已作为文件/data1/archivelog/1_181_618591128.dbf存在于磁盘上存档日志线程1序列182已作为文件/data1/archivelog/1_182_618591128.dbf存在于磁盘上存档日志线程1序列183已作为文件/data1/archivelog/1_183_618591128.dbf存在于磁盘上存档日志文件名=/data1/archivelog/1_179_618591128.dbf线程=1序列=179通道c2:正在启动到默认目标的存档日志恢复通道c2:正在恢复存档日志存档日志线程=2序列=99通道c2:正在恢复存档日志存档日志线程=2序列=100通道c2:正在读取备份段/data1/backup/2pihmq8b_1_1通道c2:已恢复备份段1段句柄= /data1/backup/2pihmq8b_1_1标记= TAG20070514T112919通道c2:恢复完成,用时: 00:00:25故障转移到上一个备份存档日志文件名=/data1/archivelog/2_99_618591128.dbf线程=2序列=99释放的通道: c1释放的通道: c2
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: recover
命令(05/14/2007 15:01:38)失败

RMAN-11003:
在分析/执行SQL语句期间失败: alter database recover logfile '/data1/archivelog/2_99_618591128.dbf'
ORA-00308:
无法打开归档日志
'/data1/archivelog/2_99_618591128.dbf'
ORA-27037:
无法获得文件状态

SVR4 Error: 2: No such file or directory
Additional information: 3

责编:
vsharing 微信扫一扫实时了解行业动态
portalart 微信扫一扫分享本文给好友
著作权声明:kaiyun体育官方人口 文章著作权分属kaiyun体育官方人口 、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。
最新专题
流动存储 为大数据而生

伴随信息技术的突飞猛进,更大量级的非结构化数据与结构化数据构成的大数据成为企业级存储所面临的最大挑战:一方..

磁盘阵列及虚拟化存储

利用数组方式来作磁盘组,配合数据分散排列的设计,提升数据的安全性。虚拟化存储,对存储硬件资源进行抽象化表现。

    畅享
    首页
    返回
    顶部
    ×
    畅享IT
      信息化规划
      IT总包
      供应商选型
      IT监理
      开发维护外包
      评估维权
    客服电话
    400-698-9918
    Baidu
    map