#!/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. 《高性能SQL调优精要与案例解析》——10.4_SQL语句改写部分文档

    应各位读者要求,现将<高性能SQL调优精要与案例解析>中<10.4 SQL语句改写>部分整理成电子文档,上传至群共享文件(群号:298176197): 或者通过如下链接下载: ...

  2. 牛客网 PAT 算法历年真题 1010 : 月饼 (25)

    月饼 (25) 时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小) 题目描述 月饼是中国人在中秋佳节时吃的一种传统食品,不同地 ...

  3. Qt绘制字体并获取文本宽度

    参考资料: https://blog.csdn.net/liang19890820/article/details/51227894 QString text("abc");QPa ...

  4. windows7时间同步设置

    1. 设置同步源 服务器修改为本车的104的ip地址,例如23车,手动输入 96.3.123.104 2. 设置同步周期. 注册表法 在“运行”框输入“Regedit”进入注册表编辑器 这种方法是通过 ...

  5. api资源

    转:https://blog.csdn.net/qq_37187976/article/details/79160050

  6. 【转】Windows守护进程的一种简单实现

    一讲到守护进程,很多人都想到了Linux系统,确实在Windows上这个说的比较少.今天上午群里有个朋友问我了下Windows下守护进程的实现问题,我想了想,简单用C++写了个小例子,用来实现系统开机 ...

  7. MySql查询最近一个月,一周,一天

    最近一个月 SELECT * FROM table WHERE DATE_SUB(CURDATE(), INTERVAL 1 MONTH) <= date(time); 本月.当前月 SELEC ...

  8. 输出前n大的数(分治)

    描述:给定一个数组包含n个元素,统计前m大的数并且把这m个数从大到小输 出. 输入: 第一行包含一个整数n,表示数组的大小.n < 100000.第二行包含n个整数,表示数组的元素,整数之间以一 ...

  9. pycharm(Tip of Day)

    You can easily override the methos of the base class by press Ctrl + 0 ( code | override methods) Yo ...

  10. Python Django 之 直接执行自定义SQL语句(二)

    转载自:https://my.oschina.net/liuyuantao/blog/712189 一般来说,最好用 Django 自带的模型来实现这些操作.这里仅仅只是为了学习使用原始 SQL 而做 ...