linux下Oracle实现数据的自动备份

文章目录

    • 一、创建备份目录并赋予权限
    • 二、创建备份脚本
    • 三、给脚本添加X
    • 四、编辑系统定时任务
    • 五、重启crontab

由于近期工作的原因,要做一个简单的oracle数据自动备份,因为是一个单体应用,所以就利用了linux的定时任务和oracle的exp进行数据备份,如果有不足和需要改正的地方,欢迎各位高手指正,不胜感激。
下边就开始具体的操作:

一、创建备份目录并赋予权限

mkdir -p /u01/oracle_bak_data #新建数据备份目录
mkdir -p /u0a/oracle_bak_shell #新建Oracle备份脚本目录
chown -R oracle:oinstall /u01/oracle_bak_data
chown -R oracle:oinstall /u01/oracle_bak_shell

二、创建备份脚本

cd /u0a/oracle_bak_shell
vi bak_data_shell.sh
在打开的vi编辑页面中,输入i,将以下信息输入到脚本中:
oracle的信息可以在profile配置文件中查看
#!/bin/sh 
echo "*****ready for play*****"
export ORACLE_SID=TEST
export ORACLE_BASE=/u01/oracle
export ORACLE_HOME=/u01/oracle/11.0.2
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin
export LANG=en_us.UTF-8
export NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
dateTime=`date +%Y_%m_%d`
days=3
orsid='ip:端口/TEST'
oraowner=test
bakuser=test
bakpass=test
bakdir=/u01/oracle_bak_data
bakdata=$oraowner"_"$dateTime.dmp
baklog=$oraowner"_"$dateTime.log
ordatabak=$orowner"_"$dateTime.tar.gz
cd $bakdir
echo "*****starting bak*****"
exp $bakuser/$bakpass@$orsid grants=y owner=$oraowner file=$bakdir/$bakdata log=$bakdir/$baklog
echo "*****end bak*****"
echo "*****starting tar*****"
tar -zcvf $ordatabak $bakdata $baklog
echo "*****end tar*****"
echo "*****delete bak_data*****"
find $bakdir/ -type f -name "*.log" -exec rm {} \;
find $bakdir/ -type f -name "*.dmp" -exec rm {} \;
find $bakdir/ -type f -name "*.tar.gz" -mtime +$days -exec rm -rf {} \;
echo "*****end delete*****"
echo "*****end bak*****"

然后按“ESC”键,输入:wq! 然后回车

三、给脚本添加X

chmod +X bak_data_shell.sh

四、编辑系统定时任务

crontab -e
#输入一下信息
00 01 * * * /u01/oracle_bak_shell/bak_data_shell.sh #每天凌晨1点执行
:wq!

五、重启crontab

service crond restart

你可能感兴趣的:(oracle数据库)