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/

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值