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物理备份增量备份的资料请关注脚本之家其它相关文章!

相关文章

  • mysql 8.0.15 压缩版安装图文教程

    mysql 8.0.15 压缩版安装图文教程

    这篇文章主要为大家详细介绍了mysql 8.0.15 压缩版安装图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • Windows10下mysql 8.0.12解压版安装配置方法图文教程

    Windows10下mysql 8.0.12解压版安装配置方法图文教程

    这篇文章主要为大家详细介绍了Windows10下mysql 8.0.12解压版安装方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • MySQL20个高性能架构设计原则(值得收藏)

    MySQL20个高性能架构设计原则(值得收藏)

    这篇文章主要介绍了MySQL20个高性能架构设计原则,帮助大家更好的理解和使用MySQL,感兴趣的朋友可以了解下
    2020-08-08
  • Linux下mysql异地自动备份的方法

    Linux下mysql异地自动备份的方法

    这篇文章主要介绍了Linux下mysql异地自动备份的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • 10个MySQL性能调优的方法

    10个MySQL性能调优的方法

    本文介绍了10个MySQL性能调优的方法,每个方法的讲解都很细致,非常实用,,需要的朋友可以参考下
    2015-07-07
  • MySQL表自增id溢出的故障原因和解决方法

    MySQL表自增id溢出的故障原因和解决方法

    MySQL 表的自增 ID 溢出问题通常发生在使用 INT 或 BIGINT 类型的自增字段时,如果数据量极大,达到自增字段的最大值时,就会导致溢出,不同的数据库类型有不同的最大值,本文给大家介绍了MySQL表自增id溢出的故障原因和解决方法,需要的朋友可以参考下
    2024-12-12
  • mysql 大表批量删除大量数据的实现方法

    mysql 大表批量删除大量数据的实现方法

    这篇文章主要介绍了mysql 大表批量删除大量数据的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Mysql配置my.ini文件的简单成功版本

    Mysql配置my.ini文件的简单成功版本

    my.ini是MySQL数据库中使用的配置文件,修改这个文件可以达到更新配置的目的,下面这篇文章主要给大家介绍了关于Mysql配置my.ini文件的简单成功版本,需要的朋友可以参考下
    2023-04-04
  • MySQL最常问的十道面试题(2023年最新详解版)

    MySQL最常问的十道面试题(2023年最新详解版)

    MySQL是一个关系型数据库管理系统,这是学习Java必学的知识点,也是面试java岗位必考的题目,所以大家要有所重视,这篇文章主要给大家介绍了关于MySQL最常问的十道面试题,是2023年最新详细整理的,需要的朋友可以参考下
    2023-10-10
  • mysql修改数据库默认路径无法启动问题的解决

    mysql修改数据库默认路径无法启动问题的解决

    这篇文章主要给大家介绍了关于mysql修改数据库默认路径无法启动问题的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11

最新评论