数据文件和日志文件的批量迁移脚本

来自乐沙弥的世界

脚本内容如下:

Prompt  
Prompt Step 1, Coping file to destination from source  
Prompt ============================================  
Prompt  
set linesize 200  
set heading off verify off feedback off termout off pagesize 999  
define src_dir='ORCL'  
define tar_dir='ORACLE'  
spool /tmp/cp_files.sql  
SELECT 'ho cp ' || name || ' ' || REPLACE (name, '&src_dir', '&tar_dir')  
  FROM v$datafile  
UNION ALL  
SELECT 'ho cp ' || name || ' ' || REPLACE (name, '&src_dir', '&tar_dir')  
  FROM v$tempfile  
UNION ALL  
SELECT 'ho cp ' || MEMBER || ' ' || REPLACE (MEMBER, '&src_dir', '&tar_dir') FROM v$logfile;  
spool off;  
  
@/tmp/cp_files.sql  
  
set termout on  
Prompt  
Prompt  Step 2, updating files to control file  
Prompt ============================================  
Prompt  
set termout off  
spool /tmp/update_cntl.sql  
SELECT    'alter database  rename file '''  
       || name  
       || '''  to '''  
       || REPLACE (name, '&src_dir', '&tar_dir')  
       || ''''  
       || ';'  
  FROM v$datafile  
UNION ALL  
SELECT    'alter database rename file '''  
       || name  
       || '''  to '''  
       || REPLACE (name, '&src_dir', '&tar_dir')  
       || ''''  
       || ';'  
  FROM v$tempfile  
UNION ALL  
SELECT    'alter database rename file '''  
       || MEMBER  
       || ''' to '''  
       || REPLACE (MEMBER, '&src_dir', '&tar_dir')  
       || ''''  
       || ';'  
  FROM v$logfile;  
spool off;  
set termout on;  
@/tmp/update_cntl.sql  
set heading on verify on feedback on termout on

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值