数据库资料集Linux运维

linux下oralce自动备份、压缩、删除历史备份

2016-11-30  本文已影响136人  张文健

在linux操作系统环境下,通过脚本全量备份oracle数据库。
脚本名称:oraclebackup.sh
脚本内容:
#!/bin/bash
export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=ORCL
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
#设置备份时间,用来生成备份文件名
export BAKUPTIME=date +%Y%m%d%H%M%S
#设置七天前的日期,用来定位要删除的备份文件
export DELETEDATE=date -d "-7 days" +%Y%m%d
#设置备份目录,用来存储备份文件
export BACKUP_DIR=/home/oracle/backup
mkdir -p $BACKUP_DIR
cd $BACKUP_DIR
#执行oracle导出命令
exp username/password@192.168.1.9:1521/orcl owner=username direct=y recordlength=65535 statistics=none file=$BACKUP_DIR/dbname_$BAKUPTIME.dmp log=$BACKUP_DIR/dbname_$BAKUPTIME.log
echo "Starting tar..."
echo "Tar file path $BACKUP_DIR/tar$BAKUPTIME.tar.gz"
#压缩oracle备份文件和日志,压缩完成后删除备份文件和日志,只保留压缩包
tar -zcvf $BACKUP_DIR/tar$BAKUPTIME.tar.gz dbname_* --remove-files
echo "Delete the file bakup before 7 days..."
#删除距离当前日期七天前的oracle备份文件
rm -rf $BACKUP_DIR/tar$DELETEDATE*.tar.gz
echo "Bakup completed."
如果需要定时自动执行此脚本,可以设置linux的crontab任务来配置。如:设置此备份在每天23:00自动执行:
crontab -e
0 23 * * * /home/oracle/oraclebackup.sh

上一篇下一篇

猜你喜欢

热点阅读