使用EXPDP方式备份整个实例
本教程可使用system账户将整个实例备份(包含空表),并自动删除超过6天的历史数据。
1、r oot用户登录服务器
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环境
执行以下命令:
create 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 6 days..."
find /backup/oracledata/ -mtime +6 -name "*.dmp" -exec rm -rf '{}' \;
echo "Delete the file bakup successfully. "