#!/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. oracle having字句

    现在要求查询出职位的平均每个职位的名称,工资,但是要求显示的职位的平均工资高于2000.        即:按照职位先进行分组,同时统计出每个职位的平均工资        随后要求直显示哪些平均工资高 ...

  2. 自签名证书说明——自签名证书的Issuer和Subject是一样的。不安全的原因是:没有得到专业SSL证书颁发的机构的技术支持?比如使用不安全的1024位非对称密钥对,有效期设置很长等

    一般的数字证书产品的主题通常含有如下字段:公用名称 (Common Name) 简称:CN 字段,对于 SSL 证书,一般为网站域名:而对于代码签名证书则为申请单位名称:而对于客户端证书则为证书申请者 ...

  3. kiss word memory post poly peri out ~p 4

    1● post p əust 在后面,邮件     2● peri 多   3● poly 周围,靠近  

  4. C++解析二

    C++ 类访问修饰符 数据封装是面向对象编程的一个重要特点,它防止函数直接访问类类型的内部成员.类成员的访问限制是通过在类主体内部对各个区域标记 public.private.protected 来指 ...

  5. highcharts,highStock 中文图表配置

    感谢开源的支持! https://github.com/hcharts/highcharts-zh_CN

  6. php随手记

    引用(&)是变量的别名,而不是指针,可用unset(变量名)把此变量的别名注销掉,等于没有声明此变量. @为错误抑制符,可以用在任何表达式前面. ``为命令操作符,可以执行系统命令. inst ...

  7. jdk8-stream的api

    1.stream流的概念 1.流的创建 //1. 创建 Stream @Test public void test1(){ //1. Collection 提供了两个方法 stream() 与 par ...

  8. CentOS7安装Nginx及配置

    Nginx是一款轻量级的网页服务器.反向代理服务器.相较于Apache.lighttpd具有占有内存少,稳定性高等优势.**它最常的用途是提供反向代理服务.** 安装   在Centos下,yum源不 ...

  9. CSS颜色

    CSS 颜色 可以用以下方法来规定 CSS 中的颜色: ·        十六进制色 十六进制值使用三个双位数来编写,并以 # 符号开头. ·        RGB 颜色 o   所有浏览器都支持 R ...

  10. ResNet 简介

    resnet 又叫深度残差网络 图像识别准确率很高,主要作者是国人哦 深度网络的退化问题 深度网络难以训练,梯度消失,梯度爆炸,老生常谈,不多说 resnet 解决了这个问题,并且将网络深度扩展到了最 ...