linux数据库定时备份

-------------------------------------------前期工作-----------------------------------------------

#创建备份数据库脚本文件存放目录

mkdir -p /backup/oracleshell

#新建Oracle数据库数据及日志等备份目录

mkdir -p /backup/oracledata

#设置目录权限为oinstall用户组的oracle用户

chown -R oracle:oinstall /backup/oracleshell

chown -R oracle:oinstall /backup/oracledata

--------------------------------------备份脚本文件内容-----------------------------------------------

#新建备份脚本文件

vi /backup/oracleshell/oracleshell.sh

#!/bin/bash 需要写在文件内容中表示需要声明

---------------------------------------------------备份文件内容------------------------------------------

#!/bin/bash

echo "备份脚本开始启动..."

export ORACLE_SID=orcl

export ORACLE_BASE=/root/data/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/user/lib

export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH

export LANG=C

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

#以上变量内容可通过 su oracle,然后cat ~/.bash_profile查看该内容

#日期变量参数,注意这里不是引号,是波浪符号下边那个

exportdate=`date +%Y_%m_%d`

#保留三天

days=3

#数据库连接信息

orsid='ip:端口号/orcl'

orowner=账号

bakuser=账号

bakpass=密码

#备份数据、日志文件,及压缩文件存放变量

bakdir=/home/oracle/backup/oracledata

bakdata=$orowner"_"$exportdate.dmp

baklog=$orowner"_"$exportdate.log

ordatabak=$orowner"_"$exportdate.tar.gz

cd $bakdir

#数据泵导出命令

# directory 数据库配置的虚拟路径

expdp $bakuser/$bakpass@$orsid full=y directory=DBDATAS dumpfile=$bakdat logfile=$bakdir/$baklog$bakdir

echo "数据备份结束..."

echo "现在开始进行压缩备份数据..."

echo "压缩备份数据结束..."

echo "删除备份数据开始..."

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 "删除备份数据结束..."

echo "备份执行完毕..."

---------------------------------------------------备份文件内容------------------------------------------

:wq! 保存 退出

#将备份文件上传到远程服务器 如果不输人密码上传请参考

  http://www.linuxidc.com/Linux/2017-11/148506.htm

添加脚本执行权限

chmod +x /backup/oracleshell/orashell.sh #添加脚本执行权限

4.编辑系统任务执行计划

crontab -e

输入一下信息:

#每天凌晨3点,以oracle用户执行P_DB_BAK.sh备份文件

00 03 * * * /backup/oracleshell/orashell.sh

:wq! #保存退出

5.重启crontab

service crond restart

从此每天的凌晨3点 系统会自动完成数据库的备份,压缩,并上传到远程服务器的指定路径下!

crontab -l //列出某个用户cron服务的详细内容

-----------注意点---------

创作不易,大家帮忙关注一下公众号,感谢。

猜你喜欢

转载自blog.csdn.net/qq_41060647/article/details/123581153