温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

db_file_name_convert顺序问题

发布时间:2020-08-14 11:36:38 来源:ITPUB博客 阅读:192 作者:lusklusklusk 栏目:关系型数据库
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
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI