DBA备忘录:Data Guard之添加数据文件
NinGoo's blog

DBA备忘录:Data Guard之添加数据文件

一般情况下,如果数据文件采用的是裸设备,为了便于管理,会在裸设备上创建soft link,这样在data guard环境中就有个问题,必须在主备库同时执行创建相同的link,否则备库是auto standby file management的话,会导致数据文件创建失败(前提是去掉了文件系统的写权限,否则会加到文件系统中去,这样麻烦更麻烦了)。

加入在主库创建了soft link,添加了datafile,而备库没有创建对应的link多话,则会遇到以下错误:

Errors in file /u01/oracle/admin/comm/bdump/comm_mrp0_2380526.trc:
ORA-01274: cannot add datafile ‘/u01/oracle/oradata/comm/test.dbf’ – file could not be created
ORA-01119: error in creating database file ‘/u01/oracle/oradata/comm/test_66.dbf’
ORA-27040: skgfrcre: create error, unable to create file
IBM AIX RISC System/6000 Error: 13: Permission denied
Some recovered datafiles maybe left media fuzzy
Media recovery may continue but open resetlogs may fail
MRP0: Background Media Recovery process shutdown

由于备库无法创建相应的datafile,恢复进程终止。此时如果尝试重启恢复进程:

Errors in file /u01/oracle/admin/test/bdump/test_mrp0_602168.trc:
ORA-01111: name for data file 397 is unknown – rename to correct file
ORA-01110: data file 397: ‘/u01/oracle/product/9.2/dbs/UNNAMED00397′
ORA-01157: cannot identify/lock data file 397 – see DBWR trace file
ORA-01111: name for data file 397 is unknown – rename to correct file
ORA-01110: data file 397: ‘/u01/oracle/product/9.2/dbs/UNNAMED00397′
MRP0: Background Media Recovery process shutdown

根据alert文件的提示,执行rename操作:

SQL> alter database rename file ‘/u01/oracle/product/9.2/dbs/UNNAMED00397′ to ‘/u01/oracle/oradata/test/test_66.dbf’;
alter database rename file ‘/u01/oracle/product/9.2/dbs/UNNAMED00397′ to ‘/u01/oracle/oradata/test/test_66.dbf’
*
ERROR at line 1:
ORA-01511: error in renaming log/data files
ORA-01275: Operation RENAME is not allowed if standby file management is
automatic.

在备库执行数据/日志文件相关操作时,必须先将standby file management改成手动模式:

SQL> alter system set standby_file_management=manual;

System altered.

SQL> alter database rename file ‘/u01/oracle/product/9.2/dbs/UNNAMED00397′ to ‘/u01/oracle/oradata/test/test_66.dbf’;

Database altered.

SQL> alter system set standby_file_management=auto;

System altered.

Rename成功,再次启动恢复进程,发现还是有问题:

Errors in file /u01/oracle/admin/comm/bdump/test_mrp0_2359904.trc:
ORA-01110: data file 397: ‘/u01/oracle/oradata/test/test_66.dbf’
ORA-01122: database file 397 failed verification check
ORA-01110: data file 397: ‘/u01/oracle/oradata/test/test_66.dbf’
ORA-01251: Unknown File Header Version read for file number 397
MRP0: Background Media Recovery process shutdown

由于最开始创建文件失败,后面的rename操作实际上只是修改了数据字典的信息,对应的裸设备上并没有执行创建数据文件的初始化动作,自然没有正确的数据文件头信息,只需要执行create datafile as即可:

SQL> alter system set standby_file_management=manual;

System altered.

SQL> alter database create datafile 397 as ‘/u01/oracle/oradata/test/test_66.dbf’;

Database altered.

SQL> alter system set standby_file_management=auto;

System altered.

SQL> recover managed standby database disconnect from session;
Media recovery complete.

无觅相关文章插件,快速提升流量

本文网址:http://www.ningoo.net/html/2007/dba_memo_data_guard_add_data_file.html

订阅到Google | 收藏到Del.icio.us | 推荐到鲜果

上一篇: 下一篇:

本文Tags: , ,

4 条评论

  • At 2007.12.07 10:55, waityou81 said:

    good,学习

    • At 2008.07.09 11:16, db said:

      很好,今天就用上了…

      alter database create datafile 397 as ‘/u01/oracle/oradata/test/test_66.dbf’;
      补充一点心得:
      1 文件路径(/u01/oracle/oradata/test/)的确定.
      可以查看已有的数据文件的路径.
      2 假如不放心可以再加上size 参数.
      alter database create datafile 397 as ‘/u01/oracle/oradata/test/test_66.dbf’ size xxxM;

      • At 2009.02.09 16:54, 菜牛牛 said:

        谢谢啦 哈哈 解决了

        • At 2010.12.28 20:42, said:

          写的真的很好,昨天我在主库上面创建了一个新路径,然后添加了数据文件。
          结果备库1天都没有同步上。我还以为没有办法了呢?按照这个,马上就可以了
          真是非常感谢


          (Required)
          (Required, will not be published)