oracle-数据库备份
oracle 数据库备份
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@orcl directory=dumpdir schemas=ts dumpfile=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@orcl directory=dumpdir schemas=ts dumpfile=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+x oracle.sh
返回root用户界面下配置定时脚本
crontab -e
添加以下配置(每天凌晨定时备份一次)
0 0 * * * su - oracle -c “/home/oracle/backup/oracle.sh”