使用EXPDP方式备份整个实例
本教程可使用system账户将整个实例备份(包含空表),并自动删除超过6天的历史数据。
1、root用户登录服务器
mkdir -p /backup/oracledata               #新建Oracle数据库备份目录
chown -R oracle:oinstall /backup/oracledata -R #设置目录权限为oinstall用户组的oracle用户(用户oracle与用户组oinstall是在安装Oracle数据库时设置的)
2、创建目录对象
因为使用expdp命令需要使用到目录对象(directory),所以首先需要创建目录对象,并赋予某个用户对目录对象的操作权限。
操作步骤如下
su – oracle    #切换到oracle用户
sqlplus / as sysdba  #切换到SQLPLUS环境
执行以下命令
linux安装数据库oraclecreate directory expdp_bak_dir as '/backup/oracledata';    #指定EXPDP输出目录
grant create any directory to system;                    #授予system权限
3、编辑自动备份脚本
vi /backup/oracledata/ordatabak.sh        #新建文件,输入以下代码
#/bin/sh
export ORACLE_SID=shuwei
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
export NLS_LANG=american_america.zhs16gbk
export DATA_DIR=/backup/oracledata
now=` date +%Y%m%d%H%M%S `
dmpfile=db$now.dmp
echo start exp $dmpfile ...
/u01/app/oracle/product/11.2.0/dbhome_1/bin/expdp system/123456@shuwei DUMPFILE=$dmpfile DIRECTORY=expdp_bak_dir full=y
echo "Delete the file bakup before "
find /backup/oracledata/ -mtime +6 -name "*.dmp" -exec rm -rf '{}' \;
echo "Delete the file bakup successfully. "
echo "Bakup completed."
chmod +x /backup/oracledata/ordatabak.sh  #添加脚本执行权限
4、设置系统自动定时执行备份脚本
vi /etc/crontab                        #编辑系统任务计划
将下面的代码写入最后一行:
30 2 * * * oracle  /backup/oracledata/ordatabak.sh 
#每天凌晨2点30分,以oracle用户执行ordatabak.sh备份文件
:wq                                  #保存退出
service crond restart                    #重启系统计划服务
即每天凌晨2点30分进行备份,如需每天备份多次,可设置不同时间段备份:
例如:* 3,13,18 * * * oracle /backup/oracledata/ordatabak.sh
即每天3点、13点、18点进行备份。
说明:文件备份目录,用户oracle必须有更改权限,否则无法备份。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。