Discuz教程网

rman备份rac archivelog的问题

[复制链接]
authicon tingliang 发表于 2010-10-26 01:56:21 | 显示全部楼层 |阅读模式

环境:oracle10g rac,两个节点,实例名分别为racdb1和racdb2,数据库名racdb。两个实例的log_archive_dest_1均设置为'LOCATION=/opt/app/oracle/archive/arch1'。两个实例的archivelog均在本地,也没有nfs。
现要通过RMAN备份归档时出现找不到归档文件的错误。下面是**屏蔽**作的过程:
1、在节点一上修改log_archive_dest_1的SID,操作如下:
SQL> alter system set log_archive_dest_1 = 'LOCATION=/opt/app/oracle/archive/arch1' SID = 'racdb1';
System altered.
在节点二上修改log_archive_dest_1的SID,操作如下:
SQL> alter system set log_archive_dest_1 = 'LOCATION=/opt/app/oracle/archive/arch1' SID = 'racdb2';
System altered.
2、RMAN>CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET;
3、使用下列脚本备份
run{
allocate channel rac1 type 'sbt_tape'
connect 'sys/oracle@racdb1'
parms 'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo_zh.opt)';
allocate channel rac2 type 'sbt_tape'
connect 'sys/oracle@racdb2'
parms 'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo_zh.opt)';
sql 'alter system archive log thread 2 current';
sql 'alter system archive log thread 1 current';
backup
  filesperset 10
  format 'arch_%t_%s_%c_%p.arc'
  (archivelog UNTIL TIME 'SYSDATE' delete all input channel rac1)
  (archivelog UNTIL TIME 'SYSDATE' delete all input channel rac2);
release channel rac1;
release channel rac2;
}
不论在哪个节点都会出现类似下面的错误提示:
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of backup command at 01/28/2008 15:36:35
RMAN-06059: expected archived log not found, lost of archived log compromises recoverability
ORA-19625: error identifying file /opt/app/oracle/archive/arch1/2_124_642339076.dbf
ORA-27037: unable to obtain file status
IBM AIX RISC System/6000 Error: 2: A file or directory in the path name does not exist.
Additional information: 3
分解在两个节点上
crosscheck archivelog all;
delete expired archivelog all;
每次都会找到一些不同的文件,删除后再备份问题依旧。(只是文件名换了)
请问,这种问题该如何解决。是否应在 backup archivelog 中加 like 之类的,不是很明白,能否指点指点呀,谢谢!
另:在racdb1的/arch1/中大多是1_%.dbf,只有两三个2_%.dbf(是不是由于racdb2的/arch1/满了,放到这边的?)



上一篇:请教缺少归档文件情况下的恢复~!
下一篇:双机RAC模式?
authicon numenhuang 发表于 2010-10-26 02:47:39 | 显示全部楼层

解决你这个问题可以有两种方法:
1.  将两个节点的archive dest设置成NFS,每个节点都可以访问其他节点的日志
2.  将两个节点的archive dest设置成不同目录。例如node1: /arch1
                                                                        node2: /arch2
authicon lpss 发表于 2010-10-26 04:40:55 | 显示全部楼层

我今天先做了个backup full,然后把backup archivelog 中加入 like '/arch1/1%'(对应channel rac1)和like '/arch1/2%'(对应channel rac2)。由于我发现在每个节点上的log_archive_format都是%t_%s_%r.dbf。备份可以通过。
backup
  filesperset 10
  format 'arch_%t_%s_%c_%p.arc'
  (archivelog like '/arch1/1%' delete all input channel rac1)
  (archivelog like '/arch1/2%' delete all input channel rac2);
但不知道是否存在易患。我在以上操作之后把剩余的归档日志手工删了。
authicon numenhuang 发表于 2010-10-26 05:54:37 | 显示全部楼层
原帖由 lpss 于 2008-1-29 14:27 发表
我在以上操作之后把剩余的归档日志手工删了。
强,建议找台机器做下备份恢复测试。
authicon lpss 发表于 2010-10-26 07:27:46 | 显示全部楼层

没有环境了。现在上线的系统所存在的归档是由下列步骤产生的测试上线部署、测试运行、调试、exp、删除表所有者、用sql生成表结构、imp有用数据、上线运行。再此期间归档日志一直没有被整理过。现在归档日志空间接近100%,急于处理。我以为crosscheck archivelog之后,再全备,再备archivelog后,其剩下的archivelog都没用了呢。请帮我看看,存在哪些问题?谢谢!
authicon Chinese_Dragon 发表于 2010-10-26 08:37:29 | 显示全部楼层

个人认为应该没有问题。
authicon numenhuang 发表于 2010-10-26 08:56:46 | 显示全部楼层
原帖由 lpss 于 2008-1-29 14:27 发表
我今天先做了个backup full,然后把backup archivelog 中加入 like '/arch1/1%'(对应channel rac1)和like '/arch1/2%'(对应channel rac2)。由于我发现在每个节点上的log_archive_format都是%t_%s_%r.dbf。备份可 ...
假设在rac1 存在2*.log,在你的备份机制中是如何备份的?
authicon lpss 发表于 2010-10-26 11:19:35 | 显示全部楼层
原帖由 numenhuang 于 2008-1-29 15:45 发表
假设在rac1 存在2*.log,在你的备份机制中是如何备份的?
在rac1中确实发现了2个2*.log,当时查看系统环境,磁盘空间rac1中arch1接近90%,rac2中arch1接近98%。折腾半天我将两个2*.log拷贝到了rac2上,才进行的上述操作。
我不知道为什么2*.log会出现在rac1上?
假设要是象您建议的在不同节点上建立不同的归档日志目录,就我目前的情况能否按如下步骤实现:
就两个节点来说,
1、在rac1和rac2中都建立arch1和arch2目录
2、分别设置rac1和rac2的log_archive_dest_1参数:
connect sys/password@racdb1 as sysdba
alter system set log_archive_dest_1='LOCATION=/opt/app/oracle/archive/arch1' SID = 'racdb1';
connect sys/password@racdb2 as sysdba
alter system set log_archive_dest_1='LOCATION=/opt/app/oracle/archive/arch2' SID = 'racdb2';
(其中不明白,指定的SID起什么作用,这是我在其他文档上看到的)
3、修改备份arch的脚本
backup
  filesperset 10
  format 'arch_%t_%s_%c_%p.arc'
  (archivelog  delete all input channel rac1)
  (archivelog  delete all input channel rac2);
请问这样可以吗?由于是生产环境,我不能进行修改测试。
请赐教,谢谢!
authicon XQKA 发表于 2010-10-26 12:04:20 | 显示全部楼层
在rac1中确实发现了2个2*.log,当时查看系统环境,磁盘空间rac1中arch1接近90%,rac2中arch1接近98%。折腾 ...
lpss 发表于 2008-01-29 17:16
在rac1中确实发现了2个2*.log
的原因是节点2曾经down机。因此的它的在线日志就归档到节点一的目录下了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-2 20:07

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表