您的位置:首页 > Web前端

Dataguard DBLOG FILE NAME CONVERT has been set but files are created in a different directory (文档 ID

2016-04-06 11:49 429 查看
Dataguard DB/LOG FILE NAME CONVERT 已设置,但文件被创建在不同的目录中(文档 ID 1348512.1)

适用于:

Oracle数据库 - 企业版 - 版本11.2.0.2和更高版本,本文档中的信息适用于任何平台。

症状

在备库环境上数据文件被创建在了错误的地方,尽管在备库上DB_FILE_NAME_CONVERT and LOG_FILE_NAME_CONVERT都正确设置。

举个例子在主库上我们在ASM DG DATA_USERS上创建一个表空间:

CREATE TABLESPACE TESTME DATAFILE

'+DATA_USERS' SIZE 10M AUTOEXTEND ON NEXT 4096M MAXSIZE UNLIMITED

LOGGING ONLINE PERMANENT

EXTENT MANAGEMENT LOCAL AUTOALLOCATE

BLOCKSIZE 8K FLASHBACK ON;

创建数据文件:

+DATA_USERS/orcl/datafile/testme.282.754566507

像预期的那样。

但是在备库上db file name convert的位置:

SQL> select name,value from v$parameter where upper(name) like '%CONVER%';

NAME

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

VALUE

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

db_file_name_convert

+DATA_USERS/orcl, +DATA_USERS/stby

log_file_name_convert

+DATA_USERS/orcl, +DATA_USERS/stby

Oracle创建数据文件在其他目录:

+DATA_USERS/orcl_stby/datafile/testme.386.754566507

所有其它的数据文件在备库上的正确目录:

+DATA_USERS/stby

你希望要创建的数据库文件在正确的目录基于db_file_name_convert设置:

+DATA_USERS/stby 而不是 +DATA_USERS/orcl_stby

变化

当前备库设置:

standby_file_management AUTO

db_file_name_convert +DATA_USERS/orcl, +DATA_USERS/stby

log_file_name_convert +DATA_USERS/orcl, +DATA_USERS/stby

compatible 11.2.0.2.0

db_create_file_dest +DATA_USERS

db_name orcl

db_unique_name orcl_stby

dg_broker_start TRUE

主库和备库使用Oracle管理文件(OMF)和Oracle自动存储管理(Oracle ASM)。

standby_file_management设置为AUTO,db_create_file_dest设置为+DATA_USERS.

原因

在这种情况下使用OMF,因此无论DB_FILE_NAME_CONVERT的值是什么,新创建的数据文件的名称将依据DB_CREATE_FILE_DEST参数和OMF文件名转换。

ASM OMF文件名是唯一的,不能由用户或指定使用DB_FILE_NAME_CONVERT,即,由ASM代码本身产生的名字来指定。因此,文件名称将不同于db_file_name_convert参数,只有DB_CREATE_FILE_DEST在文件名转换兑现。

请记住,ASM OMF格式为<+ASM-DG>/<db_unique_name>/datafile/xxxx.xx.xxx 这是用于新创建数据文件的格式。

下面是DG参考手册上说的:

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

Oracle? Data Guard

Concepts and Administration

11g Release 2 (11.2)

13.5创建备用数据库使用OMF或Oracle ASM

注释:如果在备机设置OMF参数,然后新文件总是以OMF在备机上创建,不论他们是如何在主库上创建。因此,如果DB_FILE_NAME_CONVERT和DB_CREATE_FILE_DEST两个参数都在备库上设置,则DB_CREATE_FILE_DEST参数优先。

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

新创建的数据文件的位置和名称预计基于上面的设置。

当数据文件被创建在"+DATA_USERS/orcl_stby/datafile"目录下是正确的依据DB_CREATE_FILE_DEST,DB_UNIQUE_NAME和standby_file_management参数值。

现在,为什么其余的数据文件是正确的"+DATA_USERS/stby/datafile" ?

这可能是因为当RMAN恢复执行该DB_UNIQUE_NAME比现在有所不同

或者

standby_file_management未设置为AUTO,在这种情况下,*_convert参数为准。

解决方法

你需要做的,以什么确保像您期望的*LOG_FILE_NAME_CONVERT参数的作用是禁用OMF,通过重新设置standby_file_management为手动。

以上是可以做到备用数据库重新创建备用控制文件后首次启动,否则DB_FILE_NAME_CONVERT和LOG_FILE_NAME_CONVERT参数将被忽略。

同时请注意DB_FILE_NAME_CONVERT和DB_CREATE_FILE_DEST参数将只是基于这些模式自动重命名数据库文件,但是如果数据库文件已经创建一个不同的名称RMAN恢复后你仍然需要手动重命名数据库文件。

如果你需要重命名任何数据库文件一旦创建您可以按照详细的步骤:文档ID 564993.1 :在相同的ASM磁盘组如何重命名/移动数据文件

参考文献:

NOTE:564993.1 - How to rename/move a datafile in the same ASM diskgroup
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: