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

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

你可能感兴趣的:(Dataguard DBLOG FILE NAME CONVERT has been set but files are created in a different directory (文档 ID)