我是靠谱客的博主 帅气大地,最近开发中收集的这篇文章主要介绍db_file_name_convert顺序问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

duplicate时如果远程的一个目录空间不够,可以把文件拆分到两个目录,使用db_file_name_convert即可
db_file_name_convert不是对目录名称进行转换,而是对文件名称进行转换


比如源端的文件路径都是/u01/app/oracle/oradata/prod1
文件名称都是诸如/u01/app/oracle/oradata/prod1/u*.dbf、/u01/app/oracle/oradata/prod1/sys*.dbf
发现源端/u01/app/oracle/oradata/prod1目录下的文件大于4T,但是目标端/u01/app/oracle/oradata/prod1std只有3T,怎么办?
挂载一个存储,新增一个/u02的目录,如下方式使用db_file_name_convert对文件名进行转换

db_file_name_convert=('/u01/app/oracle/oradata/prod1/u','/u02/u','/u01/app/oracle/oradata/prod1','/u01/app/oracle/oradata/prod1std') 
表示把文件名称中的/u01/app/oracle/oradata/prod1/u改为了/u02/u
剩下的文件名称中没有/u01/app/oracle/oradata/prod1/u的,就把文件名称中的/u01/app/oracle/oradata/prod1改为/u01/app/oracle/oradata/prod1std


db_file_name_convert=('/u01/app/oracle/oradata/prod1','/u01/app/oracle/oradata/prod1std','/u01/app/oracle/oradata/prod1/u',' /u02/u ') 
表示把文件名称中的/u01/app/oracle/oradata/prod1改为了/u01/app/oracle/oradata/prod1std
剩下的文件名称中没有/u01/app/oracle/oradata/prod1的,就把文件名称中的/u01/app/oracle/oradata/prod1/u改为/u02/u

--所以如上述发现目标端一个目录空间不够时,要转换部分数据文件时,必须把要转换的部分数据文件名放在前面,即如上案例必须把/u02/u放到/u01/app/oracle/oradata/prod1std前面




源端的文件名称如下
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/prod1/users01.dbf
/u01/app/oracle/oradata/prod1/undotbs01.dbf
/u01/app/oracle/oradata/prod1/sysaux01.dbf
/u01/app/oracle/oradata/prod1/system01.dbf
/u01/app/oracle/oradata/prod1/example01.dbf


run {duplicate target database to prod1std from active database 
db_file_name_convert=('/u01/app/oracle/oradata/prod1','/u01/app/oracle/oradata/prod1std','/u01/app/oracle/oradata/prod1/u','/u02/u') 
logfile '/u01/app/oracle/oradata/prod1std/redo01.log' size 100M,
'/u01/app/oracle/oradata/prod1std/redo02.log' size 100M,
'/u01/app/oracle/oradata/prod1std/redo03.log' size 100M;}
目标端
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/prod1std/system01.dbf
/u01/app/oracle/oradata/prod1std/sysaux01.dbf
/u01/app/oracle/oradata/prod1std/undotbs01.dbf
/u01/app/oracle/oradata/prod1std/users01.dbf
/u01/app/oracle/oradata/prod1std/example01.dbf


run {duplicate target database to prod1std from active database 
db_file_name_convert=('/u01/app/oracle/oradata/prod1/u','/u02/u','/u01/app/oracle/oradata/prod1','/u01/app/oracle/oradata/prod1std') 
logfile '/u01/app/oracle/oradata/prod1std/redo01.log' size 100M,
'/u01/app/oracle/oradata/prod1std/redo02.log' size 100M,
'/u01/app/oracle/oradata/prod1std/redo03.log' size 100M;}
目标端
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/prod1std/system01.dbf
/u01/app/oracle/oradata/prod1std/sysaux01.dbf
/u02/undotbs01.dbf
/u02/users01.dbf
/u01/app/oracle/oradata/prod1std/example01.dbf

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

转载于:http://blog.itpub.net/30126024/viewspace-2151081/

最后

以上就是帅气大地为你收集整理的db_file_name_convert顺序问题的全部内容,希望文章能够帮你解决db_file_name_convert顺序问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部