小编给大家分享一下oracle dg库数据文件创建失败ORA-01111怎么办,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体报错如下SQL> alter database open read only ;alter database open read only*ERROR at line 1:ORA-10458: standby database requires recoveryORA-01157: cannot identify/lock data file 24 – see DBWR trace fileORA-01111: name for data file 24 is unknown – rename to correct fileORA-01110: data file 24:’/data/u01/app/oracle/product/11.2.0/dbhome_1/dbs/UNNAMED00024’刚刚在主库添加了数据文件:SQL> alter tablespace MODEL_BH add datafile ‘/data2/oradata/datafile/bapp/MODEL_BH010.dbf’ size 31g;然后查看下发现24号数据文件就是刚才添加的那文件:SQL>set line 1000SQL>set pagesize 1000SQL>col name for a60SQL> col status for a20SQL> select FILE#,name from v$datafile where file#=24; FILE# NAME———- ————————————————————
24 /data2/oradata/datafile/bapp/MODEL_BH010.dbf也就是说出库的这个文件,没有同步到从库,突然想到,今天这个文件的目录放到的一个新的挂载点上了/data2 (由于空间不足,新添加的挂在点)。坏了因为从库的db_file_name_convert文件没有配置传唤/data2/oradata/datafile/bapp/的路径,具体如下:SQL> show parameter convertNAME TYPE VALUE———————————— ———– ——————————db_file_na免费主机域名me_convert string /data/app/oracle/oradata/dataf
ile/bapp/, /data/u01/app/dataf
ile/然后我搭建的datagurd一般都是把备库的参数配置STANDBY_FILE_MANAGEMENT为auto,如下所示:SQL> show parameter STANDBY_FILE_MANAGEMENT;NAME TYPE VALUE———————————— ———– ——————————standby_fil免费主机域名e_management string AUTO1)STANDBY_FILE_MANAGEMENT=AUTO的情况下,如果从库的db_file_name_convert参数设置的正确了,那么主库创建的数据文件在备份端应用日志时会自动创建,从库会根据convert参数在备库创建相对应的数据文件;2)STANDBY_FILE_MANAGEMENT=AUTO的情况下,但是如果主库创建在其他路径的数据文件,也就是说如果从库的db_file_name_convert参数没有正确设置(就像我前面的,主库的/data2下的路径没有设置对应的转换路径,那么这时候从库就会创建到$ORACLE_HOME/dbs下(注意只是控制文件中有这个以UNNAMED开头命名的文件信息,但是不会真正的创建,同样如果主库是drop,备库也会drop。我的情况正是STANDBY_FILE_MANAGEMENT=AUTO,然后从库的db_file_name_convert参数没有正确设置,在从库查看文件状态为recover的,表示从库没有创建成功SQL> select file#,name ,status from v$datafile where status=’RECOVER’; FILE# NAME status———- ——————————————————————————————————-
24 /data/u01/app/oracle/product/11.2.0/dbhome_1/dbs/UNNAMED00024 RECOVER下面展示修复过程:1.在从库修改参数db_file_name_convert;如下所示,添加上/data2/oradata/datafile/bapp/的转换路径SQL> show parameter convertNAME TYPE VALUE———————————— ———– ——————————db_file_name_convert string /data/app/oracle/oradata/dataf
ile/bapp/, /data/u01/app/dataf
ile/, /data2/oradata/datafile/
bapp/, /data/u01/app/datafile/2.重启从库SQL> shu immediateSQL> startup mount3.修改从库的参数standby_file_management=manualSQL> alter system set standby_file_management=’manual’;System altered.注释:standby_file_management为manual,那么当主库添加了文件,从库需要手工创建上,并且如果standby_file_management=auto,备库是不允许手工创建文件的!!4. 在备库创建上那个文件,如下所示!!!SQL>alter database create datafile ‘/data/u01/app/oracle/product/11.2.0/dbhome_1/dbs/UNNAMED00024’ as ‘/data/u01/app/datafile/MODEL_BH010.dbf’;此时再查看这个24号文件,发现名字已经变回来了SQL> select name ,file# from v$datafile where file#=24;NAME——————————————————————————– FILE#———-/data/u01/app/datafile/MODEL_BH010.dbf
24但是此时候查看依旧是recover的状态:SQL> select file#,name ,status from v$datafile where status=’RECOVER’; FILE# NAME status———- ——————————————————————————————————-
24 /data/u01/app/oracle/product/11.2.0/dbhome_1/dbs/UNNAMED00024 RECOVER需要打开mrp进程,应用日志,恢复下备库!注意不要先read only open!alterdatabaserecovermanagedstandby database usingcurrentlogfiledisconnectfromsession;再次查看这个这个文件,发现已经不在是recover状态了,为online的了,这时候才是真的恢复成功了!SQL> select name ,status from v$datafile where file#=24;NAME STATUS——————————————————————————–/data/u01/app/datafile/MODEL_BH010.dbf
ONLINE7.以read only方式开启数据库需要先关闭mrp进程,然后才能以read only方式打开数据,否则报错!SQL> alter database open read only;alter database open read only*ERROR at line 1:ORA-10456: cannot open standby database; media recovery session may be inprogress关闭mrp进程:SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;Database altered.然后开启数据库SQL> alter database open read only;Database altered.再次开启mrp进程alterdatabaserecovermanagedstandby database usingcurrentlogfiledisconnectfromsession;8.修改从库的参数standby_file_management=autoSQL> alter system set standby_file_management=’auto’;经验证数据同步正常9.最后最好重启下备库!!!!然后别忘记启动mrp进程!看完了这篇文章,相信你对“oracle dg库数据文件创建失败ORA-01111怎么办”有了一定的了解,如果想了解更多相关知识,欢迎关注云技术行业资讯频道,感谢各位的阅读!
相关推荐: Oracle中is null和is not null如何优化
这篇文章给大家分享的是有关Oracle中is null和is not null如何优化的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。最近工作的时候遇到了比较大的数据查询,自己的sql在数据量小的时候没问题,在数据量达到300W的时候…