SGTMS

做事情
我们是认真的
您的位置:SGTMS>Linux>Linux数据库备份脚本

Linux数据库备份脚本

正文

数据安全尤为重要,下面记录一下基本的数据库备份脚本,可根据需求二次修改。

Oracle备份脚本:

#!/bin/sh

export ORACLE_BASE=/data/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

export ORACLE_SID=sgtms

export ORACLE_TERM=xterm

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

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

export LANG=C

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

#以上代码为Oracle数据库运行账号oracle的系统环境变量设置,必须添加,否则crontab任务计划不能执行。

# oracle用户的系统环境变量路径:/home/oracle/.bash_profile

date=`date +%Y_%m_%d`   #获取系统当前日期时间

days=7  #设置删除7天之前的备份文件

orsid=`192.168.0.198:1521/sgtms`  #Oracle数据库服务器IP、端口、SID

orowner=jbuser  #备份此用户下面的数据

bakuser=jbuser  #用此用户来执行备份,必须要有备份操作的权限

bakpass=jbuser12  #执行备注的用户密码

bakdir=/backup/oracledata  #备份文件路径,需要提前创建好

bakdata=$orowner"_"$date.dmp #备份数据库名称

baklog=$orowner"_"$date.log #备份执行时候生成的日志文件名称

ordatabak=$orowner"_"$date.tar.gz #最后保存的Oracle数据库备份文件

cd $bakdir #进入备份目录

mkdir -p $orowner #按需要备份的Oracle用户创建目录

cd $orowner #进入目录

exp $bakuser/$bakpass@$orsid grants=y owner=$orowner file=$bakdir/$orowner/$bakdata log=$bakdir/$orowner/$baklog #执行备份

tar -zcvf $ordatabak $bakdata  $baklog  #压缩备份文件和日志文件

find $bakdir/$orowner  -type f -name "*.log" -exec rm {} \; #删除备份文件

find $bakdir/$orowner  -type f -name "*.dmp" -exec rm {} \; #删除日志文件

find $bakdir/$orowner  -type f -name "*.tar.gz" -mtime +$days -exec rm -rf {} \;  #删除7天前的备份(注意:{} \中间有空格)

MySql备份脚本:

#!/bin/sh

DUMP=/usr/bin/mysqldump    #mysqldump备份程序执行路径

OUT_DIR=/home/mysql_data   #备份文件存放路径

LINUX_USER=root            #系统用户名

DB_NAME=sgtms              #要备份的数据库名字

DB_USER=root              #数据库用户名

DB_PASS=123456             #数据库密码

DAYS=7                     #DAYS=7代表删除7天前的备份,即只保留最近7天的备份

cd $OUT_DIR                #进入备份存放目录

DATE=`date +%Y_%m_%d`      #获取当前系统时间

OUT_SQL="$DATE.sql"        #备份数据库的文件名

TAR_SQL="sgtmsdata_bak_$DATE.tar.gz" #最终保存的数据库备份文件名

$DUMP -u$DB_USER -p$DB_PASS $DB_NAME --default-character-set=utf8 --opt -Q -R --skip-lock-tables> $OUT_SQL #备份

tar -zcvf $TAR_SQL  $OUT_SQL  #压缩为.tar.gz格式

rm $OUT_SQL   #删除.sql格式的备份文件

chown  $LINUX_USER:$LINUX_USER $OUT_DIR/$TAR_SQL  #更改备份数据库文件的所有者

find $OUT_DIR -name "sgtmsata_bak*" -type f -mtime +$DAYS -exec rm {} \;  #删除7天前的备份文件(注意:{} \;中间有空格)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《Linux数据库备份脚本》
文章链接: https://www.sgtms.com/linux/45.html
本站资源仅供个人学习交流,转载或者引用本文内容请注明来源及作者,不允许用于商业用途。
分享到:

相关推荐

网友评论抢沙发

路人甲 表情
Ctrl+Enter快速提交