oracle dg库数据文件创建失败ORA

41次阅读
没有评论

共计 4270 个字符,预计需要花费 11 分钟才能阅读完成。

丸趣 TV 小编给大家分享一下 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 怎么办”有了一定的了解,如果想了解更多相关知识,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-24发表,共计4270字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)