1.创建对应的directory目录
切换oracle
su – oracle
在/home/oracle/下创建目录
mkdir -p /home/oracle/backup
2.以sysdba的身份登录上数据库
sqlplus / as sysdba
3.创建directory目录并对数据库用户ts赋权
SQL>create or replace directory dumpdir as ‘/home/oracle/backup’;
SQL>grant read,write on directory dumpdir to ts;
dumpdir:自定义名称
4.测试导出用户ts的数据
退出数据库到linux命令行,oracle用户下
expdp ts/password@orcldirectory=dumpdir schemas=tsdumpfile=ts.dmp logfile=ts.log
5.配置脚本导出,简单脚本:
创建脚本文件 创建在/home/oracle/backup下
cd/fhome/oracle/backup
touch oracle.sh
编辑脚本
vi oracle.sh
#!/bin/bash
# Author: lyz
dat=`date +%Y-%m-%d_%H_%M`
expdp ts/password@orcldirectory=dumpdir schemas=tsdumpfile=ts_${dat}.dmp logfile=ts_${dat}.log
cd /home/oracle/backup
tar zcvf ts_${dat}.tar.gz *.dmp *.log
rm -rf *.dmp
rm -rf *.log
find /home/oracle/backup -maxdepth 1 -ctime +30 -type f -name ‘ts*.tar.gz’ | xargs rm -rf
保存退出,给用户赋予执行权限:
chmod u+xoracle.sh
返回root用户界面下配置定时脚本
crontab -e
添加以下配置(每天凌晨定时备份一次)
0 0 ** * su – oracle -c “/home/oracle/backup/oracle.sh”