免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6587 | 回复: 8
打印 上一主题 下一主题

rman备份rac archivelog的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-01-28 22:02 |只看该作者 |倒序浏览
环境: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/满了,放到这边的?)

论坛徽章:
0
2 [报告]
发表于 2008-01-29 10:02 |只看该作者
解决你这个问题可以有两种方法:
1.  将两个节点的archive dest设置成NFS,每个节点都可以访问其他节点的日志
2.  将两个节点的archive dest设置成不同目录。比如node1: /arch1
                                                                        node2: /arch2

论坛徽章:
0
3 [报告]
发表于 2008-01-29 14:27 |只看该作者
我今天先做了个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);
但不知道是否存在易患。我在以上操作之后把剩余的归档日志手工删了。

论坛徽章:
0
4 [报告]
发表于 2008-01-29 14:29 |只看该作者
原帖由 lpss 于 2008-1-29 14:27 发表
我在以上操作之后把剩余的归档日志手工删了。


强,建议找台机器做下备份恢复测试。

论坛徽章:
0
5 [报告]
发表于 2008-01-29 14:42 |只看该作者
没有环境了。现在上线的系统所存在的归档是由下列步骤产生的测试上线部署、测试运行、调试、exp、删除表所有者、用sql生成表结构、imp有用数据、上线运行。再此期间归档日志一直没有被整理过。现在归档日志空间接近100%,急于处理。我以为crosscheck archivelog之后,再全备,再备archivelog后,其剩下的archivelog都没用了呢。请帮我看看,存在哪些问题?谢谢!

论坛徽章:
0
6 [报告]
发表于 2008-01-29 15:00 |只看该作者
个人认为应该没有问题。

论坛徽章:
0
7 [报告]
发表于 2008-01-29 15:45 |只看该作者
原帖由 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,在你的备份机制中是如何备份的?

论坛徽章:
0
8 [报告]
发表于 2008-01-29 17:16 |只看该作者
原帖由 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);
请问这样可以吗?因为是生产环境,我不能进行修改测试。
请赐教,谢谢!

论坛徽章:
3
15-16赛季CBA联赛之辽宁
日期:2017-12-28 12:15:1015-16赛季CBA联赛之福建
日期:2017-12-28 12:26:5115-16赛季CBA联赛之新疆
日期:2018-03-07 15:09:17
9 [报告]
发表于 2010-09-16 15:23 |只看该作者
在rac1中确实发现了2个2*.log,当时查看系统环境,磁盘空间rac1中arch1接近90%,rac2中arch1接近98%。折腾 ...
lpss 发表于 2008-01-29 17:16


在rac1中确实发现了2个2*.log
的原因是节点2曾经down机。所以的它的在线日志就归档到节点一的目录下了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP