ITPub博客

ORA-19864错误

原创 Linux操作系统 作者:yangtingkun 时间:2007-11-27 00:00:00 0 删除 编辑

今天在尝试修改STANDBY数据库的DB_FILE_NAME_CONVERT参数后,数据库无法启动报错ORA-19864


完整的错误信息为:

SQL> startup pfile=?/dbs/inittestrac_standby.ora
ORA-19864: Pattern /data1/oradata/testrac/TESTRAC_STANDBY/datafile/o1_mf_suk_3kro3cbs_.dbf in initialization parameter db_file_name_convert has an Oracle Managed Files file name.

出现错误并不奇怪,奇怪的是这个错误在Oracle的错误文档中是找不到的。

而且,在metalink上面居然也没有找到任何有价值的信息。

看来只能从这个错误本身入手了。错误信息显示这个文件名是一个Oracle管理的文件名。难道DB_FILE_NAME_CONVERT中不需要指定一个Oracle管理文件的文件名吗?

还是先描述一下为什么会出现这个问题。

当前的数据库环境是ORACLE 10.2.0.3 for Solaris的物理STANDBY数据库。由于建立这个STANDBY的时候,系统空间不足,因此STANDBY的数据文件和PRIMARY数据文件的路径并不一致。在建立STANDBY的时候就选择使用DB_FILE_NAME_CONVERTLOG_FILE_NAME_CONVERT来改变数据文件的路径。

后来其他人在PRIMARY库中添加了新的表空间和数据文件。由于初始化参数STANDBY_FILE_MANAGEMENT初始化参数设置为TRUE,所以STANDBY数据库会创建对应的数据文件。但是这个新增数据文件在DB_FILE_NAME_CONVERT中找不到对应项,因此STANDBY数据库选择了采用OMF的方式建立了数据文件,也就是上面显示的那个数据文件。

现在需要重建STANDBY的控制文件,用主库生成STANDBY CONTROLFILE拷贝到STANDBY数据库,但是由于OMF方式的特殊性,这次新增文件仍然采用OMF的方式来产生本地的数据文件名称,但是这个名称和上次产生的名称并不一致。

因此,尝试修改DB_FILE_NAME_CONVERT参数,使得新增的数据文件的名称可以对应到目前已经建立好的Oracle命名的OMF数据文件上。

修改完毕后,尝试启动数据库,就出现上面的错误。

看来问题的原因就是DB_FILE_NAME_CONVERT参数不能包括一个OMF的文件名。

既然不能使用OMF命名的文件名,干脆将新增文件重新命名。

关闭数据库的情况下,修改了这个OMF文件的文件名称,根据常规方法将其修改为’/data1/oradata/testrac/suk01.dbf’,并在初始化参数中指定这个名字,再次重启数据库,问题解决。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-69518/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-29

  • 博文量
    1955
  • 访问量
    10316597