首页 > 系统 > WinXP > 正文

EXP自适应导出指定表脚本

2024-06-28 13:24:35
字体:
来源:转载
供稿:网友
EXP自适应导出指定表脚本

############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


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表