文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

oracle dg库数据文件创建失败ORA-01111怎么办

2024-04-02 19:55

关注

小编给大家分享一下oracle dg库数据文件创建失败ORA-01111怎么办,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

具体报错如下

SQL> alter database open read only ;

alter database open read only

*

ERROR at line 1:

ORA-10458: standby database requires recovery

ORA-01157: cannot identify/lock data file 24 - see DBWR trace file

ORA-01111: name for data file 24 is unknown - rename to correct file

ORA-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 1000

SQL>set pagesize 1000

SQL>col name for a60

SQL> col status for a20

SQL> 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 convert 

NAME      TYPE VALUE

------------------------------------ ----------- ------------------------------

db_file_name_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_file_management      string     AUTO

1)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 convert 

NAME      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  immediate

SQL> startup  mount

3.修改从库的参数standby_file_management=manual

SQL> 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!

alter database recover managed standby database using current logfile disconnect from session;

再次查看这个这个文件,发现已经不在是recover状态了,为online的了,这时候才是真的恢复成功了!

SQL> select name ,status from v$datafile where file#=24;

NAME                                                               STATUS

--------------------------------------------------------------------------------

/data/u01/app/datafile/MODEL_BH010.dbf     ONLINE

7.以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 in

progress

关闭mrp进程:

SQL>  ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

Database altered.

然后开启数据库

SQL> alter database open read only;

Database altered.

再次开启mrp进程

alter database recover managed standby database using current logfile disconnect from session;

8.修改从库的参数standby_file_management=auto

SQL> alter system set standby_file_management='auto';

经验证数据同步正常

9.最后最好重启下备库!!!!然后别忘记启动mrp进程!

看完了这篇文章,相信你对“oracle dg库数据文件创建失败ORA-01111怎么办”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯