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”