今天配置windows-> linux的11.2.0.4的DataGuard duplicate,这中间配置了db_file_name_convert和log_file_name_convert,但是总是不生效,每次从windows下同步过来的datafile都被强行塞在了linux的$ORACLE_HOME/dbs/下。
原因就是windows和linux的对待字符的区分大小写的态度:windows不区分大小写,linux区分大小写。
原来的错误的配置参数是:
db_file_name_convert='D:appAdministratororadataHBDATAFILE','+DATA/HB/datafile/','E:data01','+DATA/HB/datafile/'
log_file_name_convert='D:appAdministratororadataHBONLINELOG','+DATA/HB/ONLINELOG/','D:APPADMINISTRATORFAST_RECOVERY_AREAHBONLINELOG','+FRA/HB/ONLINELOG/'
但是ORACLE在RMAN duplicate时,传输的windows下的字符都是大写,但是在linux下,字符捕捉是区分大小写的。所以字符捕捉不上。
正确的是windows下的路径都改为大写,如下:
db_file_name_convert='D:APPADMINISTRATORORADATAHBDATAFILE','+DATA/HB/datafile/','E:DATA01','+DATA/HB/datafile/'
log_file_name_convert='D:APPADMINISTRATORORADATAHBONLINELOG','+DATA/HB/ONLINELOG/','D:APPADMINISTRATORFAST_RECOVERY_AREAHBONLINELOG','+FRA/HB/ONLINELOG/'
还需要注意单引号内是否有空格等影响字符替换的低级错误!!!
最后
以上就是无辜绿茶最近收集整理的关于windows到linux的duplicate的DataGuard的db_file_name_convert参数不生效案例的全部内容,更多相关windows到linux内容请搜索靠谱客的其他文章。
发表评论 取消回复