iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >xtrabackup自动全备份脚本
  • 900
分享到

xtrabackup自动全备份脚本

2024-04-02 19:04:59 900人浏览 泡泡鱼
摘要

xtrabackup自动全备份脚本,具有发送邮件和主从判断功能. ##set environment## . ~/.bash_profile BASEDIR="/data_bak"  SPACE_

xtrabackup自动全备份脚本,具有发送邮件和主从判断功能.
##set environment##
. ~/.bash_profile
BASEDIR="/data_bak" 
SPACE_RATE=95        #space rate 95
SPACE_ROOM=10485760  #10GB
WORKPATH=/data_bak/Mysqlbackup/percona
DATETIME=`date '+%Y%m%d%H%M'`
INNOBACKUPEX="/usr/bin/innobackupex-1.5.1"
mysql="/home/mysqlapp/product/bin/mysql"
BACKUP_USER="root"
BACKUP_PASSWD="******"
BACKUP_HOST="localhost"
BACKUP_PORT="3306"
DEFAULTS_FILE="/home/mysqlapp/config/my.cnf"
Socket="/home/mysqlapp/dbdata/mysqld.sock"
DATE_VAR=`date +%F_%H-%M-%S`


MaiL_LIST="xianyezhao@richinfo.cn"
MAIL_BIN="/home/crond/bsmtp"
MAIL_IP="*****"


#sent mail:0 error backup; 1 success backup
my_sentmail()
{
if [ $1 == 1 ]; then
   echo " " | ${MAIL_BIN} -f `hostname`@139.com -h smtp.api.localdomain -s "${MAIL_IP}:Succes Innobackupex backup"  ${MAIL_LIST}  < ${WORKPATH}/maillog/mail_dba_${WORKDATE}.log
else
   echo " " | ${MAIL_BIN} -f `hostname`@139.com -h smtp.api.localdomain -s "${MAIL_IP}:Error Innobackupex backup"  ${MAIL_LIST}  < ${WORKPATH}/maillog/mail_dba_${WORKDATE}.log
fi
}


# Step 1: if slave status is ok,then backup the databases,else send error infORMation and exit
$MYSQL -u$BACKUP_USER -h$BACKUP_HOST  -p$BACKUP_PASSWD -Bse"show slave status \G">${WORKPATH}/slave_status.txt
SLAVE_IO_RUNNING_STATUS=`cat ${WORKPATH}/slave_status.txt|grep Slave_IO_Running|cut -d: -f2|sed s/[[:space:]]//g`
SLAVE_SQL_RUNNING_STATUS=`cat ${WORKPATH}/slave_status.txt|grep Slave_SQL_Running|cut -d: -f2|sed s/[[:space:]]//g`


if [ ${SLAVE_IO_RUNNING_STATUS} != Yes ]; then 
echo "SLAVE_IO_RUNNING_STATUS is not Yes">${WORKPATH}/maillog/mail_dba_${WORKDATE}.log
my_sentmail 0
exit 0
fi


if [ ${SLAVE_SQL_RUNNING_STATUS} != Yes ]; then 
echo "SLAVE_SQL_RUNNING_STATUS is not Yes">${WORKPATH}/maillog/mail_dba_${WORKDATE}.log
my_sentmail 0
exit 0
fi


# Step 2: To check the backup work directory room
# if nfs then $1 and $4
SPACE_ROOM_CK=`df -k | grep "$BASEDIR" | awk '{print $2}'`
SPACE_USED_RATE=`df -k | grep "$BASEDIR" | awk '{print $5}' |awk -F% '{print $1}'`


if [ ${SPACE_USED_RATE} -lt ${SPACE_RATE} ] && [ ${SPACE_ROOM_CK} -gt ${SPACE_ROOM} ]
then
    echo "There have enough room for backup,let Goto backup our database now" >> ${WORKPATH}/log/${BACKUP_FILE_NAME}_$WORKDATE.log
else
    echo "There have not enough room for our backup work,sadly to heard that" >> ${WORKPATH}/log/${BACKUP_FILE_NAME}_$WORKDATE.log
    echo -e "The backup task fail cause for there have not enough space room for backup on directory \nDatabase's IP is ${BACKUP_HOST}" > ${WORKPATH}/maillog/mail_dba_${WORKDATE}.log
    my_sentmail 0
    exit 0
fi




##Step 3:rm dmp file before 2 copys
cd $WORKPATH/$1
keepday=`ls -l|grep MYSQLBACKUP|wc -l`
if [ $keepday -gt 1 ]
then
 rm -fr `ls -lt|grep MYSQLBACKUP|tail -n 1|awk '{print $9}'`
fi


##Step 4:make  dir
cd $WORKPATH/$1
TMPDIR="MYSQLBACKUP"`date '+%Y%m%d'`
if [ ! -f  ${TMPDIR} ]
then
mkdir ${TMPDIR}
fi


#Step 5:to backup
cd $TMPDIR
${INNOBACKUPEX} --user=${BACKUP_USER} --passWord=${BACKUP_PASSWD} --defaults-file=${DEFAULTS_FILE} --socket=${SOCKET} $WORKPATH/$1/${TMPDIR}/ 2>$WORKPATH/log/$1_${DATE_VAR}.log




# echo The success info to the send mail information file
echo `date '+%Y%m%d%H%M'` > ${WORKPATH}/maillog/mail_dba_${WORKDATE}.log
echo "Today backup success. " >> ${WORKPATH}/maillog/mail_dba_${WORKDATE}.log
echo `hostname`" for databases:"${ALL_DATABASES}>> ${WORKPATH}/maillog/mail_dba_${WORKDATE}.log
echo "Database's IP is ${BACKUP_HOST}">> ${WORKPATH}/maillog/mail_dba_${WORKDATE}.log


echo `date '+%Y%m%d%H%M'` >> ${WORKPATH}/log/${BACKUP_FILE_NAME}_$WORKDATE.log
echo "Today backup success! " >> ${WORKPATH}/log/${BACKUP_FILE_NAME}_$WORKDATE.log
echo `hostname`" for databases:"${ALL_DATABASES} >> ${WORKPATH}/log/${BACKUP_FILE_NAME}_$WORKDATE.log
echo "Database's IP is ${BACKUP_HOST}">> ${WORKPATH}/log/${BACKUP_FILE_NAME}_$WORKDATE.log
my_sentmail 1
exit 0

您可能感兴趣的文档:

--结束END--

本文标题: xtrabackup自动全备份脚本

本文链接: https://www.lsjlt.com/news/46662.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • xtrabackup自动全备份脚本
    xtrabackup自动全备份脚本,具有发送邮件和主从判断功能. ##set environment## . ~/.bash_profile BASEDIR="/data_bak"  SPACE_...
    99+
    2022-10-18
  • xtrabackup 远程流备份脚本
    1、xbstream 流,本地文件夹可以自己创建,异地文件夹必须存在 innobackupex --host=127.0.0.1  --post=3306 --stream=xbstream  --comp...
    99+
    2022-10-18
  • 【MySQL】Xtrabackup备份及恢复脚本
    简介: 此备份脚本的策略是每周日和周三进去全备 其余每天增量备份。 # 备份脚本XtraBackup.sh: #!/bin/bash # filename : XtraBackup.sh # ...
    99+
    2022-10-18
  • MySQL自动化(全量+增量)备份脚本
    一、MySQL的日常备份方案:全备+增量备份:1、周日凌晨三点进行全备;2、周一到周日增量备份。不是往常的周日全备份,周一到周六增量备份,这样如果周日数据库在完全备份前出问题,恢复完成后,会少周日一天的数据...
    99+
    2022-10-18
  • Oracle 自动化备份脚本
    Oracle 日常RMAN备份脚本,很基础。但是对于多个需要备份的Oracle数据库,可以很简单实施,并利于后期批量状态的查询。 备份脚本,基于linux,windows环境需要适当修改。主脚本,会调用...
    99+
    2022-10-18
  • Linux下Oracle自动备份脚本
    #!/bin/bash export ORACLE_HOME=/usr/local/instantclient_11_2export PATH=$ORACLE_HOME:$PATHexport TNS_AD...
    99+
    2022-10-18
  • Windows环境MySQL自动备份脚本
    Windows环境MySQL自动备份脚本 备份需求 每个库单独一个文件压缩备份文件晚上23点定时备份 解决方案 创建一个MySQL备份脚本mysql_backup.bat,并在Windows任务计划程序中设置自动执行。 创建一个新的文本文件...
    99+
    2023-09-15
    mysql 数据库 java
  • 自动备份mysql数据库脚本
    自动备份mysql数据库脚本#!/bin/sh# NCONF database backup# Script by Chen# add (and adapt) the following line to t...
    99+
    2022-10-18
  • 基于XtraBackup的备份有效性检查脚本
        生产环境的MySQL是通过crontab的方式,定时调度热备脚本备份数据。目前是通过XtraBackup软件实现热备。关于热备脚本方面,请查看我原先的博客《使...
    99+
    2022-10-18
  • mysql全库备份/增量备份脚本
    http://hongge.blog.51cto.com/ 生产环境中Mysql数据库的备份是周期性重复的操作,所以通常是要编写脚本实现,通过crond计划任务周期性执行备份脚本 mysqldump备份...
    99+
    2022-10-18
  • Linux如何定期自动备份脚本
    Linux如何定期自动备份脚本,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。我们在网维工作中,常常要备份一些资料,虽然事情不复杂,但是很费时间的,我在这里分享一...
    99+
    2023-06-16
  • windows和linux环境自动备份脚本
    @echo off    echo ================================================    echo  Wi...
    99+
    2022-10-18
  • 自动备份MYSQL的linux脚本分享
    本篇内容主要讲解“自动备份MYSQL的linux脚本分享”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“自动备份MYSQL的linux脚本分享”吧! 这是我写的...
    99+
    2022-10-18
  • Linux下自动删除过期备份和自动异地备份的脚本
    目录每天自动删除过期备份每天定时异地备份每天自动删除过期备份 首先编写一个简单的Shell脚本DeleteExpireBackup.sh: #!/bin/bash # 修改需要删除的路径 location="/data...
    99+
    2022-09-12
  • ORACLE RMAN自动备份还原脚本设计
    很多时候,我们DBA需要定时对生产环境进行整体备份,并恢复到测试环境,供开发人员调试或测试,如果数据量比较大的情况下,RMAN方式比较高效省时,下面策略是在生产环境部署备份任务,并在测试模拟环境进行定时还原的脚本。 生产库源端每周日全...
    99+
    2017-05-10
    ORACLE RMAN自动备份还原脚本设计
  • 如何用脚本实现mysql自动备份?
    首先执行vi dbbackup.sh命令,在打开的编辑器输入:#!/bin/bash /usr/local/mysql/bin/mysqldump -uuser -ppasswd databasename ...
    99+
    2022-10-18
  • linux下mysql如何自动备份shell脚本
    Linux 服务器上的程序每天都在更新 MySQL 数据库,于是就想起写一个 shell 脚本,结合 crontab,定时备份数据库。其实非常简单,主要就是使用 MySQL 自带的 mysqldump 命令...
    99+
    2022-06-04
    脚本 自动备份 linux
  • linux下实现ftp自动备份shell脚本
    利用here文档 #!/bin/sh ftp -ivn 210.29.28.124 <<EOF user yun yun2011 lcd /home/veyun cd /home/veyun/...
    99+
    2022-06-04
    脚本 自动备份 linux
  • 一个冷备份的自动执行脚本
    花了一天多时间,捣鼓出一个SQL 脚本,用于执行ORACLE自动冷备份。记录如下:set echo off      &nbs...
    99+
    2022-10-18
  • mysql数据库自动备份脚本分享
    前几篇博客已经相继公开了去转盘网的所有技术细节,如下:百度网盘爬虫中文分词算法邀请好友注册js分页部分代码这篇博客我将继续公开数据库自动备份的代码。可以这么说,没有数据库,一切就是个蛋,没有数据库备份,一切...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作