表空间物理文件被删除导致RMAN备份失败!

今天突然发现一直正常的备份脚本突然报错了。报错以及解决过程如下:

问题描述:
Starting backup at 07-DEC-09
using channel ORA_DISK_1
could not read file header for datafile 9 error reason 5
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of backup plus archivelog command at 12/07/2009 10:07:03
RMAN-06056: could not access datafile 9

[oracle@localhost pfile]$ ./startrman.sh.x
RMAN> 2> 3> 4> 5> 6> 7> 8> 9> Bad address
备份失败原因是由于9号数据文件错误,马上去查看9号数据文件:
SQL> select file#,name from v$datafile;

FILE# NAME
---------- --------------------------------------------------------------------------------
1 /u01/app/oracle/oracle/product/10.2.0/oradata/orcl/system01.dbf
2 /u01/app/oracle/oracle/product/10.2.0/oradata/orcl/catalog.dbf
3 /u01/app/oracle/oracle/product/10.2.0/oradata/orcl/sysaux01.dbf
4 /u01/app/oracle/oracle/product/10.2.0/oradata/orcl/hu_data01.dbf
5 /u01/app/oracle/oracle/product/10.2.0/oradata/orcl/zhang_data01.dbf
6 /u01/app/oracle/oracle/product/10.2.0/oradata/orcl/ytxt_data01.dbf
7 /u01/app/oracle/oracle/product/10.2.0/oradata/orcl/sysaux02.dbf
8 /u01/app/oracle/oracle/product/10.2.0/oradata/orcl/undotbs02.dbf
9 /tmp/zhang.dbf --经过检查发现,原来是这个文件不存在了,可能被人删除。才导致备份失败。

9 rows selected
分析过程:
由于用户删除了ZHANG表空间导致无法DROP,目前数据库是好的。但是在下次启动的时候肯定出错,解决办法:
1、重建控制文件
alter database backup controlfile to trace;
2、由于/tmp目录下zhang.dbf被人删除了,所以先手动创建一个,vi zhang.dbf然后随便输入点东西保存退出即可。这一步是尝试的,后来发现没什么效果。
alter database datafile '/tmp/zhang.dbf' offline drop;
如果open执行不成功,在startup mount状态执行
经验证这个方法是可行的,网上有人用这种方法解决了
原因:
数据在mout状态的时候,还没有加载数据文件,所以这时候drop会在控制文件里把这个信息删除掉,在启动就没有问题了

由于实际的数据文件已经不存在了。所以关键是更新下控制文件里面的信息即可。下面的测试结果:

SQL> alter database datafile '/tmp/zhang.dbf' offline drop;

Database altered

SQL> select * from v$tablespace;

TS# NAME INCLUDED_IN_DATABASE_BACKUP BIGFILE FLASHBACK_ON ENCRYPT_IN_BACKUP
---------- ------------------------------ --------------------------- ------- ------------ -----------------
0 SYSTEM YES NO YES
9 CATALOGTBS YES NO YES
2 SYSAUX YES NO YES
3 TEMP NO NO YES
4 HU YES NO YES
6 VIVA_DATA YES NO YES
7 YTXT YES NO YES
8 UNDOTBS2 YES NO YES
5 ZHANG YES NO YES

9 rows selected

SQL> drop tablespace zhang;

Tablespace dropped

SQL> select * from v$tablespace;

TS# NAME INCLUDED_IN_DATABASE_BACKUP BIGFILE FLASHBACK_ON ENCRYPT_IN_BACKUP
---------- ------------------------------ --------------------------- ------- ------------ -----------------
0 SYSTEM YES NO YES
9 CATALOGTBS YES NO YES
2 SYSAUX YES NO YES
3 TEMP NO NO YES
4 HU YES NO YES
6 VIVA_DATA YES NO YES
7 YTXT YES NO YES
8 UNDOTBS2 YES NO YES

8 rows selected

SQL>
可能运气比较好,在OPEN状态下即可搞定!然后再次运行RMAN备份脚本成功执行了。。。
--end

^_^^_^ River^_^^_^ 欢迎转载请注明原出处!

[@more@]

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

转载于:http://blog.itpub.net/22918188/viewspace-1029419/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值