RMAN备份恢复——RAC环境数据库的备份(二)

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

RMAN备份恢复——RAC环境数据库的备份(一):http://yangtingkun.itpub.net/post/468/285260

这篇介绍基于裸设备的RAC环境下的备份。


对于建立在裸设备上的RAC环境,由于归档不能存放到裸设备上,因此,所有的归档都必须保存在本地的磁盘上。直接通过RMAN备份会导致错误。

首先模仿裸设备的情况,修改原来LOG_ARCHIVE_DEST_1的配置,将每个实例的归档改在本地硬盘:

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1 = 'LOCATION=/data1/archivelog' SID = 'testrac1';

系统已更改。

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1 = 'LOCATION=/data1/archivelog' SID = 'testrac2';

系统已更改。

然后尝试直接备份数据库:

$ rman target /

恢复管理器: Release 10.2.0.3.0 - Production on 星期五 5 11 16:06:48 2007

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

连接到目标数据库: TESTRAC (DBID=4291216984)

RMAN> run
2> {
3> allocate channel c1 device type disk format '/data1/backup/%U';
4> backup database plus archivelog delete all input;
5> }

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

启动 backup 11-5 -07当前日志已存档释放的通道: c1
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: backup plus archivelog
命令 ( 05/11/2007 16:08:09 ) 失败

RMAN-06059:
没有找到预期的归档日志, 归档日志的丢失将影响可恢复性
ORA-19625:
识别文件/data1/archivelog/2_89_618591128.dbf时出错
ORA-27037:
无法获得文件状态
SVR4 Error: 2: No such file or directory
Additional information: 3

RMAN>

由于节点1上无法访问到节点2上的归档,所以出现了上面的错误。对于这种情况,可以使用带CONNECT语句的ALLOCATE来分配CHANNEL

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 database plus archivelog delete all input;
6> }

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

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

启动 backup 11-5 -07当前日志已存档通道 c1: 正在启动存档日志备份集通道 c1: 正在指定备份集中的存档日志输入存档日志线程 =1 序列 =164 记录 ID=288 时间戳=622309643输入存档日志线程 =1 序列 =165 记录 ID=289 时间戳=622309764输入存档日志线程 =1 序列 =166 记录 ID=291 时间戳=622310875通道 c1: 正在启动段 1 11-5 -07通道 c2: 正在启动存档日志备份集通道 c2: 正在指定备份集中的存档日志输入存档日志线程 =2 序列 =89 记录 ID=290 时间戳=622309924输入存档日志线程 =2 序列 =90 记录 ID=292 时间戳=622310884输入存档日志线程 =2 序列 =91 记录 ID=294 时间戳=622312599通道 c2: 正在启动段 1 11-5 -07通道 c1: 已完成段 1 11-5 -07段句柄=/data1/backup/26ihff55_1_1 标记=TAG20070511T163652 注释=NONE通道 c1: 备份集已完成, 经过时间:00:00:56通道 c1: 正在删除存档日志存档日志文件名 =/data1/archivelog/1_164_618591128.dbf 记录 ID=288 时间戳 =622309643存档日志文件名 =/data1/archivelog/1_165_618591128.dbf 记录 ID=289 时间戳 =622309764存档日志文件名 =/data1/archivelog/1_166_618591128.dbf 记录 ID=291 时间戳 =622310875通道 c2: 已完成段 1 11-5 -07段句柄=/data1/backup/27ihff51_1_1 标记=TAG20070511T163652 注释=NONE通道 c2: 备份集已完成, 经过时间:00:00:58通道 c2: 正在删除存档日志存档日志文件名 =/data1/archivelog/2_89_618591128.dbf 记录 ID=290 时间戳 =622309924存档日志文件名 =/data1/archivelog/2_90_618591128.dbf 记录 ID=292 时间戳 =622310884存档日志文件名 =/data1/archivelog/2_91_618591128.dbf 记录 ID=294 时间戳 =622312599通道 c1: 正在启动存档日志备份集通道 c1: 正在指定备份集中的存档日志输入存档日志线程 =1 序列 =167 记录 ID=293 时间戳=622312603通道 c1: 正在启动段 1 11-5 -07通道 c1: 已完成段 1 11-5 -07段句柄=/data1/backup/28ihff6v_1_1 标记=TAG20070511T163652 注释=NONE通道 c1: 备份集已完成, 经过时间:00:00:01通道 c1: 正在删除存档日志存档日志文件名 =/data1/archivelog/1_167_618591128.dbf 记录 ID=293 时间戳 =622312603完成 backup 11-5 -07

启动 backup 11-5 -07通道 c1: 启动全部数据文件备份集通道 c1: 正在指定备份集中的数据文件输入数据文件 fno=00006 name=+DISK/testrac/datafile/zhejiang01.dbf输入数据文件 fno=00009 name=+DISK/testrac/datafile/zhejiang03.dbf输入数据文件 fno=00012 name=+DISK/testrac/datafile/zhejiang05.dbf输入数据文件 fno=00008 name=+DISK/testrac/datafile/ndmain01.dbf输入数据文件 fno=00010 name=+DISK/testrac/datafile/ndindex01.dbf输入数据文件 fno=00001 name=+DISK/testrac/datafile/system.262.618591167输入数据文件 fno=00005 name=+DISK/testrac/datafile/users.267.618591279通道 c1: 正在启动段 1 11-5 -07通道 c2: 启动全部数据文件备份集通道 c2: 正在指定备份集中的数据文件输入数据文件 fno=00007 name=+DISK/testrac/datafile/zhejiang02.dbf输入数据文件 fno=00011 name=+DISK/testrac/datafile/zhejiang04.dbf输入数据文件 fno=00014 name=+DISK/testrac/datafile/zhejiang06.dbf输入数据文件 fno=00002 name=+DISK/testrac/datafile/undotbs1.263.618591197输入数据文件 fno=00004 name=+DISK/testrac/datafile/undotbs2.266.618591249输入数据文件 fno=00013 name=+DISK/testrac/datafile/lt_index_ts01.dbf输入数据文件 fno=00003 name=+DISK/testrac/datafile/sysaux.264.618591225通道 c2: 正在启动段 1 11-5 -07通道 c2: 已完成段 1 11-5 -07段句柄=/data1/backup/2aihff6v_1_1 标记=TAG20070511T163754 注释=NONE通道 c2: 备份集已完成, 经过时间:00:13:16通道 c2: 启动全部数据文件备份集通道 c2: 正在指定备份集中的数据文件备份集中包括当前控制文件通道 c2: 正在启动段 1 11-5 -07通道 c2: 已完成段 1 11-5 -07段句柄=/data1/backup/2bihffvr_1_1 标记=TAG20070511T163754 注释=NONE通道 c2: 备份集已完成, 经过时间:00:00:03通道 c2: 启动全部数据文件备份集通道 c2: 正在指定备份集中的数据文件在备份集中包含当前的 SPFILE通道 c2: 正在启动段 1 11-5 -07通道 c2: 已完成段 1 11-5 -07段句柄=/data1/backup/2cihffvv_1_1 标记=TAG20070511T163754 注释=NONE通道 c2: 备份集已完成, 经过时间:00:00:02通道 c1: 已完成段 1 11-5 -07段句柄=/data1/backup/29ihff73_1_1 标记=TAG20070511T163754 注释=NONE通道 c1: 备份集已完成, 经过时间:00:15:07完成 backup 11-5 -07

启动 backup 11-5 -07当前日志已存档通道 c1: 正在启动存档日志备份集通道 c1: 正在指定备份集中的存档日志输入存档日志线程 =1 序列 =168 记录 ID=295 时间戳=622313584通道 c1: 正在启动段 1 11-5 -07通道 c2: 正在启动存档日志备份集通道 c2: 正在指定备份集中的存档日志输入存档日志线程 =2 序列 =92 记录 ID=296 时间戳=622313580通道 c2: 正在启动段 1 11-5 -07通道 c1: 已完成段 1 11-5 -07段句柄=/data1/backup/2dihfg3m_1_1 标记=TAG20070511T165309 注释=NONE通道 c1: 备份集已完成, 经过时间:00:00:01通道 c1: 正在删除存档日志存档日志文件名 =/data1/archivelog/1_168_618591128.dbf 记录 ID=295 时间戳 =622313584通道 c2: 已完成段 1 11-5 -07段句柄=/data1/backup/2eihfg3h_1_1 标记=TAG20070511T165309 注释=NONE通道 c2: 备份集已完成, 经过时间:00:00:02通道 c2: 正在删除存档日志存档日志文件名 =/data1/archivelog/2_92_618591128.dbf 记录 ID=296 时间戳 =622313580完成 backup 11-5 -07释放的通道: c1释放的通道: c2

RMAN>

采用这种方法后可以成功的备份。

yangtingkun 发表于:2007.05.12 18:34 ::分类: ( ORACLE ) ::阅读:(5796次) :: 评论 (14)
re: RMAN备份恢复——RAC环境数据库的备份(二) [回复]

分配两个channel来备份数据库,那么两个节点的/data1目录下都有数据库的backup piece,这样在restore的过程中是否需要把两个节点上的backup piece合并后,才能执行restore呢?

overmars 评论于: 2007.05.16 14:55
re: RMAN备份恢复——RAC环境数据库的备份(二) [回复]

继续看RMAN备份恢复——RAC环境数据库的备份(三)吧

yangtingkun 评论于: 2007.05.16 22:45
re: RMAN备份恢复——RAC环境数据库的备份(二) [回复]

斑竹
run {
allocate channel ch1 device type disk connect sys/user_sss8io@xxx;
allocate channel ch2 device type disk connect sys/user_sss8io@xxx;
sql 'alter system archive log current';
backup database format '/backup/back/db_%d_%T_%U';
backup archivelog all format '/backup/back/arc_%d_%T_%U' delete all input;
release channel ch1;
release channel ch2;
}
为什么我的RAC1和RAC2有些归档没有删除掉?
由于归档满我曾经手工删除过一些归档日志,会不会有这个有关系?

howard_zhang 评论于: 2007.08.08 17:36
re: RMAN备份恢复——RAC环境数据库的备份(二) [回复]

把完整的备份过程及屏幕输出贴出来

yangtingkun 评论于: 2007.08.13 23:28
re: RMAN备份恢复——RAC环境数据库的备份(二) [回复]

斑竹我的问题解决了!
感谢!laughing

howard_zhang 评论于: 2007.08.15 18:08
关于ALTER SYSTEM SET LOG_ARCHIVE_DEST_1语句 [回复]

很荣幸看到你的BLOG
有个问题追问一下:
在RAC下执行ALTER SYSTEM SET LOG_ARCHIVE_DEST_1语句,可以加scope选项吗?我执行的时候加了scope不管是=memoryspfile,还是both,都报错,在网上搜了一下说不用scope语句即可,我执行了一下,果然可以了,而且和scope=both的效果一样。
但是一直不知道为什么这样,我在ORACLE文档上看的是后面加了scope语句的,你这里也没有加,请问这里究竟是怎样的,谢谢!

sdmei 评论于: 2008.01.15 15:37
re: RMAN备份恢复——RAC环境数据库的备份(二) [回复]

还真没有注意过,明天试试

yangtingkun 评论于: 2008.01.16 23:32
re: RMAN备份恢复——RAC环境数据库的备份(二) [回复]

加scope = spfile肯定是没有问题的

SQL> alter system set log_archive_dest_1 = 'LOCATION=/data1/archivelog VALID_FOR=(ALL_LOGFILES,ALLROLES) DB_UNIQUE_NAME=testrac'
2 scope = spfile sid = 'testrac1';

系统已更改。

yangtingkun 评论于: 2008.01.17 15:22
re: RMAN备份恢复——RAC环境数据库的备份(二) [回复]

我的环境是AIX5.3+ORACLE10G,两个节点,racdb1,racdb2。归档放在本地,在备份时发现在节点上有时会出现另一个节点的archivelog。导致备份归档失败。我不知道是什么原因导致节点的归档存放到另一个节点上?能帮我解释一下吗?谢谢!

lpss 评论于: 2008.03.02 14:27
re: RMAN备份恢复——RAC环境数据库的备份(二) [回复]

获益匪浅!
但是有个问题想请教,在rac中某一台db上做过crosscheck之后,会标志另一台的备份文件为expired,而实际上,这个备份文件是刚刚备份的,想请教有什么方法可以处理这个问题!

stephen 评论于: 2008.03.24 15:39
re: RMAN备份恢复——RAC环境数据库的备份(二) [回复]

没有什么好办法,因为这台实例检测不到另外实例上的备份。

使用一个实例完成备份可以避免这个问题。

yangtingkun 评论于: 2008.03.24 18:51
re: RMAN备份恢复——RAC环境数据库的备份(二) [回复]

谢谢你的回复,如何在一个实例完成备份呢?我没有使用nfs,也不能使另一个实例shutdown的
而且还有一个问题,delete obsolete和delete expired都不能正常删除我以前做的datafilecopy,crosscheck之后一样
RMAN-06207: WARNING: 55 objects could not be deleted for DISK channel(s) due
RMAN-06208: to mismatched status. Use CROSSCHECK command to fix status
RMAN-06210: List of Mismatched objects
RMAN-06211: ==========================
RMAN-06212: Object Type Filename/Handle
RMAN-06213: --------------- ---------------------------------------------------
RMAN-06214: Datafile Copy /u01/clusterrawdbf/system01.dbf
RMAN-06214: Datafile Copy /u01/clusterrawdbf/system02.dbf
RMAN-06214: Datafile Copy /u01/clusterrawdbf/system03.dbf
RMAN-06214: Datafile Copy /u01/clusterrawdbf/system04.dbf
RMAN-06214: Datafile Copy /u01/clusterrawdbf/system05.dbf

stephen 评论于: 2008.03.24 19:55
re: RMAN备份恢复——RAC环境数据库的备份(二) [回复]

后面的多篇都介绍了这个问题,你接着看吧。我推荐你使用data guard的机制将所有节点的日志同步到一个节点,在这个节点进行备份

那个实例产生的备份由那个实例来删除。

yangtingkun 评论于: 2008.03.24 23:48
re: RMAN备份恢复——RAC环境数据库的备份(二) [回复]

非常感谢!

stephen 评论于: 2008.03.25 08:17

发表评论

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13024285/viewspace-671662/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/13024285/viewspace-671662/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值