EXP自适应导出指定表脚本

系统 1939 0

############crontab设置###########

30 1 * * * /home/oracle/backup/backupsh/expfull.sh

 

 

############expfull.sh设置###########

/home/oracle/backup/backupsh/tables.sh

cat /home/oracle/backup/backupsh/exp_temp.parfile > /home/oracle/backup/backupsh/expfull.parfile

cat /home/oracle/backup/backupsh/tables.lst >> /home/oracle/backup/backupsh/expfull.parfile

/home/oracle/backup/backupsh/start_exp.sh

 

 

############start_exp.sh设置###########

source /home/oracle/.bash_profile

BACK_HOME=/home/oracle/backup

BACK_DEST=$BACK_HOME/expfull

SH_HOME=/home/oracle/backup/backupsh

export $BACK_HOME

export $BACK_DEST

export $SH_HOME

DBA="599128198@qq.com"

DATE=`date +"%m%d:%H.%M"`

IP=""

exp_log_file=$SH_HOME/expfull.log

MAIL_COMMAND=/bin/mailx

$ORACLE_HOME/bin/exp parfile=$SH_HOME/expfull.parfile;

cat $exp_log_file |$MAIL_COMMAND -s "exp backup message from $IP $DATE " $DBA

 

###########exp_temp.parfile##############

userid=xzsp/xzsp

filesize=2048M

file=(/home/oracle/backup/fulldmp1.dmp,

/home/oracle/backup/fulldmp2.dmp,

/home/oracle/backup/fulldmp3.dmp,

/home/oracle/backup/fulldmp4.dmp)

rows=y

log=/home/oracle/backup/backupsh/expfull.log

compress=n

buffer=40960000

direct=y

 

##############tables.sh###################

sqlplus -S "/ as sysdba" >/dev/null <<EOF

set echo off

set termout off

set feedback off

set heading off

set linesize 120

set pagesize 0

 

select to_char(sysdate,'''yyyy-mm-dd hh:mm:ss''') from dual;

spool /home/oracle/backup/backupsh/tables.lst

SELECT 'tables=(' || CHR(10) FROM DUAL;

SELECT owner || '.' || table_name || ',' || CHR(10)

FROM dba_tables

WHERE owner NOT IN ('SYS','SYSTEM','CTXSYS','ORDSYS','MDSYS')

    AND table_name NOT IN

     ('SMS_LOG','SMS_RESPREPT_ERROR','SMS_STATUSREPT','PUSH_USER_INFO_LOG')

ORDER BY owner;

SELECT 'SYS.DUAL' FROM DUAL;

SELECT ')' FROM DUAL;

spool off

EOF

 

说明:ORACLE10G 以后解决这个问题更方便,使用exclude include。用法如下:

EXCLUDE = object_type[:name_clause][,…]

INCLUDE = object_type[:name_clause][,…]

例如:

Expdp <other_paramters> SCHEMAS=XZSP EXCLUDE=SEQUENCE,INDEX,TABLE:”LIKE %EMP”

IMpdp <other_paramters> SCHEMAS=XZSP INCLUDE=FUNCTION,PACKAGE,PROCEDUGE ,TABLE:”IN (‘EMP’,’DEMP’)”

Linux下使用需要使用转义字符“\”,当然最好使用参数文件

############定义参数文件parfile.par ##############

Directory=expdir

Schemas=rman

Dumpfile=expdp_rman.dmp

Include=TABLE:”IN(‘DB’,’TS’)”

执行导出命令如下

Expdp \’/ as sysdba \’ parfile.par

EXP自适应导出指定表脚本


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论