MySQL增量备份与恢复的示例

发布时间:2021-02-20 16:07:16 作者:小新
来源:亿速云 阅读:264

小编给大家分享一下MySQL增量备份与恢复的示例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

文章目录


一、MySQL 增量备份

增量备份可以在完全备份的基础上,减少备份文件的大小,从而加快备份和恢复的速度

1.增量备份的概念

1.1 为什么使用增量备份

1.2 增量备份的特点

二进制日志对备份的意义如下:

  1. 二进制日志保存了所有更新或者可能更新数据库的操作

  2. 二进制日志在启动 MySQL 服务器后开始记录,并在文件达到 max_binlog_size 所设置的大小或者接收到 flush logs 命令后重新创建新的日志文件

  3. 只需要定时执行 flush logs 方法重新创建新的日志,生成二进制文件序列,并及时把这些日志保存到安全的地方就完成了一个时间段的增量备份

2.增量备份示例

  1. 开启二进制日志功能

vim /etc/my.cnf...[mysqld]log-bin=mysql-binbinlog_format = MIXED#指定二进制日志(binlog)的记录格式为 MIXEDsystemctl restart mysqld.service#重启服务cd /usr/local/mysql/datals -l /usr/local/mysql/data/mysql-bin.*#查看二进制文件#二进制日志(binlog)有3种不同的记录格式:STATEMENT(基于SQL语句)、ROW(基于行)、MIXED(混合模式)#默认格式是 STATEMENT

MySQL增量备份与恢复的示例
MySQL增量备份与恢复的示例

  1. 每周选择服务器负载较轻的时间段,或者用户访问较少的时间段进行备份

mysqldump -uroot -p123123 SCHOOL CLASS01 > /opt/SCHOOL_CLASS01_$(date +%F).sql#对表进行完全备份mysqldump -uroot -p123123 --all-databases SCHOOL > /opt/SCHOOL_$(date +%F).sql#对库进行完全备份crontab -e#也可以使用计划性任务来执行30 3 * * 3 mysqldump -uroot -p123123 SCHOOL CLASS01 > /opt/SCHOOL_CLASS01_$(date +%F).sql30 3 * * 3 mysqldump -uroot -p123123 --all-databases SCHOOL > /opt/SCHOOL_$(date +%F).sql每周三的凌晨 3:00 对数据库和表进行完全备份

MySQL增量备份与恢复的示例
MySQL增量备份与恢复的示例

  1. 可每天进行增量备份操作,生成新的二进制日志文件,这样在插入新的数据后,新的二进制文件对应的就是数据库的变化的内容

ls /usr/local/mysql/datamysqladmin -uroot -p123123 flush-logs

MySQL增量备份与恢复的示例

  1. 插入新的数据,以模拟数据的增加或变更

use SCHOOL;insert into CLASS01 values(3,'wangsan','woman','games');insert into CLASS01 values(4,'wangsi','man','runing');select * from CLASS01;

MySQL增量备份与恢复的示例

  1. 生成新的二进制文件并查看其内容

cd /usr/local/mysql/data/lsmysqladmin -uroot -p123123 flush-logs

MySQL增量备份与恢复的示例

cp mysql-bin.000002 /opt/#将记录变更的二进制文件02复制至/opt目录下cd /opt/lsmysqlbinlog --no-defaults --base64-output=decode-rows -v /opt/mysql-bin.000002#使用64位编码机制去解码,按行读取详细内容

MySQL增量备份与恢复的示例
MySQL增量备份与恢复的示例


二、MySQL 增量恢复

1.增量恢复的场景

2.丢失完全备份之后更改的数据的恢复步骤

mysql -uroot -p123123use SCHOOL;delete from CLASS1 where id=3;delete from CLASS1 where id=4;#删除插入的两条数据,模拟完全备份后数据丢失的故障select * from CLASS01;#检查quitmysqlbinlog --no-defaults /opt/mysql-bin.000002 | mysql -uroot -p123123#使用二进制文件进行恢复操作mysql -uroot -p123123 -e "select * from SCHOOL.CLASS01;"#检查表内容是否恢复

MySQL增量备份与恢复的示例
MySQL增量备份与恢复的示例

3.完全备份之后丢失所有数据的恢复步骤

mysql -uroot -p123123use SCHOOL;drop table CLASS01;#直接删除整个表,假设完全备份后所有数据都丢失了quitmysql -uroot -p123123 SCHOOL < /opt/SCHOOL_CLASS01_2021-02-06.sqlmysql -uroot -p123123 -e "select * from SCHOOL.CLASS01;"#进行完全备份后查看一下mysqlbinlog --no-defaults /opt/mysql-bin.000002 | mysql -uroot -p123123#增量备份mysql -uroot -p123123 -e "select * from SCHOOL.CLASS01;"

MySQL增量备份与恢复的示例
MySQL增量备份与恢复的示例

4. 基于时间点与位置的恢复

4.1 基于时间点的恢复

#恢复用户“wangsan”的数据,而不恢复“wangsi”mysql -uroot -p123123 -e "truncate table SCHOOL.CLASS01;"mysql -uroot -p123123 -e "select * from SCHOOL.CLASS01;"mysqlbinlog --no-defaults --stop-datetime='2021-02-06 15:58:39' /opt/mysql-bin.000002 |mysql -uroot -p123123mysql -uroot -p123123 -e "select * from SCHOOL.CLASS01;"

MySQL增量备份与恢复的示例

#恢复“wangsi”的数据mysqlbinlog --no-defaults --start-datetime='2021-02-06 15:58:39' /opt/mysql-bin.000002 |mysql -uroot -p

MySQL增量备份与恢复的示例

4.1 基于位置的操作

mysqlbinlog --no-defaults --stop-position='609' /opt/mysql-bin.000002 | mysql -uroot -p#使用64位编码机制去解码并按行读取二进制文件02(增量备份)的详细内容......略

MySQL增量备份与恢复的示例

#仅恢复“1810”之前的数据,即不恢复“wangsi”的数据mysql -uroot -p123123 -e "select * from SCHOOL.CLASS01;"mysql -uroot -p123123 -e "truncate table SCHOOL.CLASS01;"mysql -uroot -p123123 -e "select * from SCHOOL.CLASS01;"mysqlbinlog --no-defaults --stop-position='1810' /opt/mysql-bin.000002 | mysql -uroot -pmysql -uroot -p123123 -e "select * from SCHOOL.CLASS01;"

MySQL增量备份与恢复的示例

#仅恢复“wangsi”的数据,跳过“wangsan”的数据恢复,即仅有第四条记录mysql -uroot -p123123 -e "select * from SCHOOL.CLASS01;"mysqlbinlog --no-defaults --start-position='1810' /opt/mysql-bin.000002 | mysql -uroot -p123123mysql -uroot -p123123 -e "select * from SCHOOL.CLASS01;"

MySQL增量备份与恢复的示例

5. 指定企业备份策略的思路

以上是“MySQL增量备份与恢复的示例”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

推荐阅读:
  1. MySQL全量、增量备份与恢复
  2. MySQL增量备份与恢复

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mysql

上一篇:C#项目中List并发出现数据丢失如何解决

下一篇:如何在python中使用UIAutomator2

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》