#!/bin/bash
#这个脚本用来备份SQL文件;

sql_home="/home/mysql"
sql_bak_log="$sql_home/xtrabackup.log"
server_conf="/usr/local/sunlight/conf/server.conf"
sql_backup_date=$(date "+%Y%m%d")

if [ -f $server_conf ];then
while read line
do
  eval "$line"
done < $server_conf
else
  dbuser="root"
  sql_passwd=""
  dbhost="127.0.0.1"
  sql_port="3306"
fi

sql_user="$dbuser"
sql_passwd="$dbpass"
sql_host="$dbhost"
sql_port="$dbport"

if [ -z "$sql_user" ];then
  echo "Error! sql user is empty!"
  echo "Error! sql user is empty!" >> $sql_bak_log
  exit 1
fi

if [ -z "$sql_passwd" ];then
  echo "Error! sql password is empty!"
  echo "Error! sql password is empty!" >> $sql_bak_log
  # exit 1
fi

if [ ! -d $sql_home ];then
  mkdir -p $sql_home
  chown mysql:mysql $sql_home
  chmod 700 $sql_home
fi

#check mysql daemon
check_sql_daemon=$(mysql -h"$sql_host" -u"$sql_user"  --password="$sql_passwd" -e "select version();")
if [ $? -ne 0 ];then
  echo "[ Error ] `date "+%Y/%m/%d %H:%M:%S"` [ msg ] We didn't find mysql daemon!"
  echo "[ Error ] `date "+%Y/%m/%d %H:%M:%S"` [ msg ] We didn't find mysql daemon!" >> $sql_bak_log
  exit 1
fi

#check xtrabackup package
check_xtrabackup_rpm=$(rpm -qa|grep xtrabackup | wc -l)
if [ $check_xtrabackup_rpm -ne 1 ];then
  echo "[ Error ] `date "+%Y/%m/%d %H:%M:%S"` [ msg ] xtrabackup does not be installed!"
  echo "[ Error ] `date "+%Y/%m/%d %H:%M:%S"` [ msg ] xtrabackup does not be installed!" >> $sql_bak_log
  exit 1
fi

if [ -e "$sql_home/${sql_backup_date}.tar.gz" ];then
  rm -f "$sql_home/${sql_backup_date}.tar.gz"
fi

sudo -u mysql innobackupex --user=$sql_user --password="$sql_passwd" --socket=/var/lib/mysql/mysql.sock --no-timestamp --stream=tar "$sql_home/" | gzip > "$sql_home/${sql_backup_date}.tar.gz"

if [ $? -eq 0 ];then
  echo "[ Success ] `date "+%Y/%m/%d %H:%M:%S"` [ msg ] The tar.gz package has been finished !" >> $sql_bak_log
else
  echo "[ Error ] `date "+%Y/%m/%d %H:%M:%S"` [ msg ] The first backup step has been failed !" >> $sql_bak_log
  echo "-------------------------------------------------------------------------------------------------" >> $sql_bak_log
  exit 1
fi

chown mysql:mysql  -R /home/mysql

chmod 755 -R /home/mysql

echo "[ Success ] `date "+%Y/%m/%d %H:%M:%S"` Mysql Files Backup Success! " >> $sql_bak_log
echo "-------------------------------------------------------------------------------------------------" >> $sql_bak_log
exit 0

Mariadb使用xtrabackup工具备份数据脚本的更多相关文章

  1. Mysql定时备份数据脚本

    项目集群搭建完成,数据库虽有做主从同步,但考虑到数据安全性,为了满足这个需求那么要每天对数据备份处理, 但每天手动进行备份处理太过于被动,而且白天用户访问,会有数据变化以及在备份时会影响服务器正常运行 ...

  2. mysql xtrabackup工具备份

    一.注意事项 建议用xtrabackup备份时采用全备或增量备份的方式,楼主也尝试过单库备份,但是都以备份后恢复到已经存在数据库的mysqldata目录下后部分库会出幺蛾子而告终,建议使用mysqld ...

  3. SQL Server 自动备份数据脚本

    脚本: use master; go ---声明变量 declare @dbName nvarchar(max)='MG_DATA'; ),) +'_'+ DateName(hour,GetDate( ...

  4. Centos7 增量备份数据脚本

    #!bin/bash#Automatic Backup Linux System Files#By Author www.jfedu.net#Define VariablesSOURCE_DIR=( ...

  5. xtrabackup数据库备份工具

    下来我来介绍一下更强大的备份工具:xtrabackup xtrabackup是Percona公司CTO Vadim参与开发的一款基于InnoDB的在线热备工具,具有开源,免费,支持在线热备,备份恢复速 ...

  6. xtrabackup备份和恢复数据脚本

    该脚本用于备份和恢复MySQL数据库. 总结xtrabackup备份的两个坑: 1.在恢复数据的过程中,如果中途出错,则数据将会被破坏,后续很难再恢复. 2.在恢复过程中,如果版本过低,在准备全量数据 ...

  7. MariaDB xtrabackup物理备份与还原

    xtrabackup物理备份 1.1 安装xtraback 安装依赖: [root@localhost ~]# yum install -y perl-DBD-MySQL perl-DBI perl- ...

  8. MySQL/MariaDB数据库的mysqldump工具备份还原实战

    MySQL/MariaDB数据库的mysqldump工具备份还原实战 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.mysqldump概述 1>.逻辑备份工具 mysq ...

  9. MySQL数据备份与恢复(二) -- xtrabackup工具

    上一篇介绍了逻辑备份工具mysqldump,本文将通过应用更为普遍的物理备份工具xtrabackup来演示数据备份及恢复的第二篇内容. 1.  xtrabackup 工具的安装 1.1  安装依赖包 ...

随机推荐

  1. Struts 2 初步入门(三)

    接Struts 2初步入门(二) 若想用多个通配符设定访问: <struts> <package name="default" namespace="/ ...

  2. MakeFile中export的使用

    在shell中,可以使用export修改当前进程的环境变量. 例如:export PATH=.:$PATH 将当前路径加入可执行文件查找路径(PATH)中,这样你就不要敲“./excutable” 来 ...

  3. 20 KMP匹配的Next值和Nextval值

     i       0    1    2    3    4    5    6    7    8 s     a    b    a    b    a    a    b    a    b n ...

  4. Module loader:模块加载器

    <p data-height="265" data-theme-id="0" data-slug-hash="XpqRmq" data ...

  5. iconfont.cn批量加入

    iconfont.cn还没有一个批量加入的功能 以下是最新的图标批量加入购物车功能代码. var icons = document.querySelectorAll('.icon-gouwuche1' ...

  6. C++基础知识:类的静态成员

    1.普通成员变量通过对象名能够访问public成员变量每个对象都可以有只属于自己的成员变量成员变量不能在对象之间共享 2.从命名空间的角度:类的静态成员只是类这个命名空间中的全局变量和全局函数不同之处 ...

  7. 4.1 C++多态的概念及前提条件

    参考:http://www.weixueyuan.net/view/6370.html 总结: 而多态的功能则是将函数名动态绑定到函数入口地址,这样的动态绑定过程称为运行期绑定. 而在运行期绑定的函数 ...

  8. Spring MVC中注解: @ModelAttribute 与@RequestParam区别

    相关链接 : https://blog.csdn.net/huang343/article/details/77491096

  9. 数位DP详解

    算法使用范围 在一个区间里面求有多少个满足题目所给的约束条件的数,约束条件必须与数自身的属性有关 下面用kuangbin数位dp的题来介绍 例题  不要62 题意:在一个区间里面求出有多少个不含4和6 ...

  10. countdownlatch 和 CyclicBarrier 和 Semaphore

    cdl用的是aqs,共享的是aqs那个volatile的state,阻塞线程列表用的也是aqs的 cb用的是reentrantlock+condition,当然rel用的也是aqs不过不同的是用的是互 ...