自动生成导出分区表脚本

脚本如下,改自ORACLE DBA工作笔记:

parallel_no=$4 
target_schema=$3 
for ((i=1;i<$parallel_no;i++))
do
sqlplus -s $1 <<EOF
set linesize 150 
set pages 0 
set feedback off 
set trimspool  on 
spool $2_partition_parallel_$i.par_temp 
select 'tables=' from dual; 
spool off; 
spool $2_partition_parallel_$i.par_temp append 
 select table_name||':'||partition_name||',' from ( 
 select rownum,mod(rownum,${parallel_no})+1 parallel_no,table_name,partition_name,num_rows from user_tab_partitions where table_name=upper('$2') order by num_rows desc  nulls last 

where parallel_no=${i}; 
spool off; 
spool $2_partition_parallel_${i}.par_temp2 
select 'tables=' from dual; 
spool off; 
spool $2_partition_parallel_${i}.par_temp2 append 
 select 'PRDAPPO'||'.'||table_name||':'||partition_name||',' from ( 
 select rownum,mod(rownum,${parallel_no})+1 parallel_no,table_name,partition_name,num_rows from user_tab_partitions where table_name=upper('$2') order by num_rows desc  nulls last 

 where parallel_no=${i}; 
spool off;
EOF
sed -e '/^$/d' -e '$s/.$//'  $2_partition_parallel_${i}.par_temp>$2_partition_parallel_${i}.par_imp 
rm $2_partition_parallel_${i}.par_temp 
sed -e '/^$/d' -e '$s/.$//'  $2_partition_parallel_${i}.par_temp2>$2_partition_parallel_${i}.par_impdp 
rm $2_partition_parallel_${i}.par_temp2 
echo exp $1 file=par${i}_$2.dmp log=par${i}_$2_exp.log  statistics=none grants=n constraints=n indexes=n  parfile=$2_partition_parallel_${i}.par_imp buffer=9102000  "&" >>$2_partition_parallel_export.sh 
echo imp $1 file=par${i}_$2.dmp log=par${i}_$2_imp.log  statistics=none grants=n constraints=n indexes=n  parfile=$2_partition_parallel_${i}.par_imp buffer=91020000 ignore=Y commit=y "&" >>$2_partition_parallel_import.sh 
echo expdp $1 directory=memo_dir dumpfile=par${i}_$2.dmp logfile=par${i}_$2_expdp.log parfile=$2_partition_parallel_${i}.par_imp  exclude=statistics,constraint,ref_constraint,index,comment,grant  "  &" >>$2_partition_parallel_expdp.sh & 
echo "nohup " impdp $1 directory=memo_dir dumpfile=par${i}_$2.dmp parallel=2 include=table_data logfile=par${i}_$2_impdp.log parfile=$2_partition_parallel_${i}.par_impdp TABLE_EXISTS_ACTION=append REMAP_SCHEMA=prdappo:MIG_TEST DATA_OPTIONS=SKIP_CONSTRAINT_ERRORS   "  &" >>$2_partition_parallel_impdp.sh &
done


使用命令

bash ./xxx.sh user/password tablename username parallel

bash ./cut.sh test/oracle_4U pdba test 4

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值