Oracle expdp全备份脚本

本文介绍了在Linux环境下使用expdp工具备份Oracle数据库的详细步骤,包括创建目录、设置环境变量、编写脚本、权限分配、以及设置cron定时任务。还提到如何处理版本兼容问题和优化导出速度。

Linux下expdp备份oracle全库脚本,expdb_backup.sh

1、首先创建dumpfile文件存放路径:

mkdir /app/scripts/ && chown -R oracle:oinstall /app/scripts   #存档expdb_backup.sh脚本位置

mkdir /backup && chown -R oracle:oinstall /backup  #存放oracle dmp文件目录

2、sqlplus登录数据库,设置expdp备份路径:

sqlplus "/as sysdba"
创建备份目录:
SQL> create directory backup as '/backup';
授予备份用户权限,这里设置的是system这个用户:
SQL> grant read,write on directory backup to system;

 3、脚本解读

#!/bin/bash
/usr/bin/find /backup -mtime +7 -exec rm -rf {} ; #删除/backup目录中7天以前的文件,可自行修改
export ORACLE_SID=orcl
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$PATH:$ORACLE_HOME/bin
export name=date -d now +%F
$ORACLE_HOME/bin/expdp system/sys directory=backup dumpfile=$ORACLE_SID_$name.expdp full=Y logfile=$ORACLE_SID_$name.expdp.log EXCLUDE=STATISTICS

上面使用了EXCLUDE=STATISTICS参数,优化导出速度,导入后要收集下统计信息

exec dbms_stats.gather_schema_stats(ownname => 'USER',options => 'GATHER AUTO');

如果是11g导出然后导入到10g,在源库导出时需要加上version参数,不然导入会报错ORA-39142

4、给脚本执行权限:

oracle$ chmod +x /app/scripts/expdb_backup.sh

5、添加cron自动执行任务,cron任务参数可以自行百度下。

oracle$ crontab -e

0 1 * * * /app/scripts/expdb_backup.sh >> /app/logs/expdb_backup_logs.log 2>&1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值