六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 59|回复: 0

oracle standby 创建数据文件报ORA-01111解决

[复制链接]

升级  3.2%

168

主题

168

主题

168

主题

进士

Rank: 4

积分
516
 楼主| 发表于 2013-1-14 08:40:43 | 显示全部楼层 |阅读模式
Oracle 的physical standby节点上的介质恢复操作终止,报错ORA-01111错误,一个新文件不能创建。

在alert.log中记录的错误信息如下:
Tue Nov 20 17:16:48 2012MRP0: Background Media Recovery terminated with error 1111Tue Nov 20 17:16:48 2012Errors in file /u01/oracle/app/oracle/admin/testdb/bdump/testdb1_mrp0_31483.trc:ORA-01111: name for data file 42 is unknown - rename to correct fileORA-01110: data file 42: '/u01/oracle/app/oracle/product/10.2.0/db/dbs/UNNAMED00042'ORA-01157: cannot identify/lock data file 42 - see DBWR trace fileORA-01111: name for data file 42 is unknown - rename to correct fileORA-01110: data file 42: '/u01/oracle/app/oracle/product/10.2.0/db/dbs/UNNAMED00042'Tue Nov 20 17:16:48 2012Errors in file /u01/oracle/app/oracle/admin/testdb/bdump/testdb1_mrp0_31483.trc:ORA-01111: name for data file 42 is unknown - rename to correct fileORA-01110: data file 42: '/u01/oracle/app/oracle/product/10.2.0/db/dbs/UNNAMED00042'ORA-01157: cannot identify/lock data file 42 - see DBWR trace fileORA-01111: name for data file 42 is unknown - rename to correct fileORA-01110: data file 42: '/u01/oracle/app/oracle/product/10.2.0/db/dbs/UNNAMED00042'Tue Nov 20 17:16:48 2012MRP0: Background Media Recovery process shutdown (testdb1)Tue Nov 20 17:16:48 2012Completed: alter database recover managed standby database disconnect from sessionTue Nov 20 17:16:53 2012 

检查备库节点上standby_file_management的配置值,如果是manual的话,表示系统不能自动创建数据文件;而如果是auto的话,则系统会自动创建,但创建时可能因这样那样的因素而失败。
SQL> show parameter standby_file_managementNAME                                 TYPE        VALUE------------------------------------ ----------- ------------------------------standby_file_management              string      AUTO 

数据库初始化参数standby_file_management的值是auto。

于是,我们手工重建它。
 
(miki西游 @mikixiyou 原文链接: http://mikixiyou.iteye.com/blog/1731218)

第一步,将standby_file_management修改为manual,在auto下不允许自己创建文件。
SQL> alter system set standby_file_management=manual;System altered. 

在auto下操作会失败,错误会是这样:
SQL> alter database create datafile '/u01/oracle/app/oracle/product/10.2.0/db/dbs/UNNAMED00042' as '+VDG1/testdb/datafile/tbs_test12301.dbf';alter database create datafile '/u01/oracle/app/oracle/product/10.2.0/db/dbs/UNNAMED00042' as '+VDG1/testdb/datafile/tbs_test12301.dbf'*ERROR at line 1:ORA-01275: Operation CREATE DATAFILE is not allowed if standby file managementis automatic. 

第二步,使用alter database create datafile 'old filename' as 'new filename';重建数据文件。

这个'new filename'的名称从主库去查,保持一致即可。
SQL> alter database create datafile '/u01/oracle/app/oracle/product/10.2.0/db/dbs/UNNAMED00042' as '+VDG1/testdb/datafile/tbs_test12301.dbf';Database altered. 

第三步,将standby_file_management修改回来。
SQL> alter system set standby_file_management=auto; 

这个问题是因为新建文件在VDG1下没有目录/testdb/datafile,手工创建一下,就可以解决掉。
 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

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