mysql中使用shell语句实现xtrabackup自动物理备份增量备份

 更新时间:2023年07月31日 11:42:06   作者:Rallina  
这篇文章主要为大家介绍了mysql数据库使用shell实现xtrabackup自动物理备份增量备份脚本,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

实现脚本 

[root@mysql_summary ~]# vim full_backup.sh 
#!/bin/bash
{
innobackupex --user=admin --password=123 /full_xtraback &> /dev/null
} & #全备
{ #测试在全备过程中插入数据是否有效
mysql -e "create database test211" -uroot -p123456 &> /dev/null
mysql -e "create database test212" -uroot -p123456 &> /dev/null
mysql -e "create database test213" -uroot -p123456 &> /dev/null
mysql -e "create database test214" -uroot -p123456 &> /dev/null
}
wait
export full_path=$(cd /full_xtraback && ls | grep -E "$(date +%Y-%m-%d)_.\{8\}$")
innobackupex --user=admin --password=123 --apply-log --redo-only /full_xtrabackup/${full_path} &> /dev/null #向全备
中整合日志
[root@mysql_summary ~]# vim incr_backup.sh 
#!/bin/bash
{
innobackupex --user=admin --password=123 --incremental /incre_backup --incremental-basedir=/full_xtrabackup/${full_path}&> /dev/null
}&
{
for i in {11..13}
do
        mysql -e "create database db$i" -uroot -p123456;
done
}
wait
incr_path=$( cd /incre_backup && ls | grep -e "^$(date +%Y-%m-%d)_.\{8\}$")
innobackupex --user=admin --password=123 --apply-log /full_xtrabackup/${full_path}  --incremental-dir=/incre_backup/${incr_path} &> /dev/null
crontab -e
30 1 * * 0 /root/full_backup.sh
30 1 * * 1 /root/incr_backup.sh
30 1 * * 2 /root/incr_backup.sh
30 1 * * 3 /root/full_backup.sh
30 1 * * 4 /root/incr_backup.sh
30 1 * * 5 /root/incr_backup.sh
30 1 * * 6 /root/incr_backup.sh

难点解决

难点:

  • 1.物理备份时,默认存储的路径是以时间为目录的,而且我们不能够去确定我们能够在多长时间内完成这个任务,因此我们需要使用正则表达式去精准匹配这个目录,而且增量备份的脚本中也需要这个参数。

解决:

使用正则表达式去匹配到天,将此匹配到的结果使用export作为全局变量

  • 2.我们很难去测试这个脚本是否能够在物理备份或者增量备份的时候,是否可以将我们的代码写进去,而且必须得保证实现了物理备份再去整合日志。

解决:

采用同步代码块去测试,首先进行物理备份,将其挂载到后台,我们执行创建数据库的语句,使用wait语句,当这两个代码块全部执行完毕,我们再执行整合日志的操作。如果说在模拟故障之后,我们的数据库中有这些我们插入的数据,就说明备份成功。

以上就是mysql数据库使用shell语句实现xtrabackup自动物理备份增量备份的详细内容,更多关于mysql xtrabackup物理备份增量备份的资料请关注脚本之家其它相关文章!

相关文章

  • Windows中Mysql启动失败的完美解决方案

    Windows中Mysql启动失败的完美解决方案

    这篇文章主要介绍了Windows中Mysql启动失败解决方案,mysql服务启动失败分为2种情况给大家详细介绍,针对每一种给大家详细解决,需要的朋友可以参考下
    2022-10-10
  • mySQL 延迟 查询主表

    mySQL 延迟 查询主表

    在主外键表存在关系的时候如果加上"lazy=true"的话,则表明延迟,即只查询主表中的内容,而不查询外键表中的内容。
    2009-09-09
  • MySQL如何统计一个数据库所有表的数据量

    MySQL如何统计一个数据库所有表的数据量

    最近在做统计想查找一个数据库里基本所有的表数据量,下面这篇文章主要给大家介绍了关于MySQL如何统计一个数据库所有表的数据量的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • MySQL中insert语句的使用与优化教程

    MySQL中insert语句的使用与优化教程

    这篇文章主要介绍了MySQL中insert语句的使用与优化教程,使用insert语句插入数据是MySQL入门学习中的基础知识,需要的朋友可以参考下
    2016-03-03
  • MYSQL数据库GTID实现主从复制实现(超级方便)

    MYSQL数据库GTID实现主从复制实现(超级方便)

    这篇文章主要介绍了MYSQL数据库GTID实现主从复制实现(超级方便),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Windows10下mysql 8.0.19 winx64安装教程及修改初始密码

    Windows10下mysql 8.0.19 winx64安装教程及修改初始密码

    这篇文章主要为大家详细介绍了Windows10下mysql 8.0.19 winx64安装教程及修改初始密码,文中安装步骤介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • MySQL Workbench操作图文详解(史上最细)

    MySQL Workbench操作图文详解(史上最细)

    Workbench是MySQL最近释放的可视数据库设计工具,这个工具是设计 MySQL数据库的专用工具,下面这篇文章主要给大家介绍了关于MySQL Workbench操作的相关资料,需要的朋友可以参考下
    2023-03-03
  • 详细介绍基于MySQL的搜索引擎MySQL-Fullltext

    详细介绍基于MySQL的搜索引擎MySQL-Fullltext

    这篇文章主要详细介绍基于MySQL的搜索引擎MySQL-Fullltext,需要用到C和C#以及JavaScript的知识,属于MySQL的高阶应用,需要的朋友可以参考下
    2015-04-04
  • CentOs7.x安装Mysql的详细教程

    CentOs7.x安装Mysql的详细教程

    CentOS7的yum源中默认好像是没有MySQL的。为了解决这个问题,我们要先下载mysql的repo源。下面通过本教程给大家详细介绍CentOs7.x安装Mysql的方法,一起看看吧
    2016-12-12
  • MYSQL设置触发器权限问题的解决方法

    MYSQL设置触发器权限问题的解决方法

    这篇文章主要介绍了MYSQL设置触发器权限问题的解决方法,需要的朋友可以参考下
    2014-09-09

最新评论