文章目录
前言
一、如何实现MySQL增量备份?
- MySQL没有提供直接的增量备份方法
- 可以通过 MySQL提供的二进制日志( binary logs)间接实现增量备份
MySQL的配置文件的[mysqld]项中加入log-bin=filepath项(filepath是二进制文件的路径),如log-bin=mysql-bin,然后重启mysqld服务。
二进制日志文件的默认路径为/usr/local/mysql/data
[root@localhost ~]# vim /etc/my.cnf
'//在[mysqld]项中加入配置 log-bin=mysql-bin'
...省略内容
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1
log-bin=mysql-bin '//添加此句'
...省略内容
[root@localhost ~]# systemctl restart mysqld '//重启服务'
[root@localhost ~]# ls /usr/local/mysql/data/
...省略内容
mysql-bin.000001 '//发现已经生成了二进制文件,设置成功'
...省略内容
- MySQL二进制日志对备份的意义
- 二进制日志保存了所有更新或者可能更新数据库的操作
- 二进制日志在启动 MySQL服务器后开始记录,并在文件达到max_binlog_size所设置的大小或者接收到 flush-logs命令后重新创建新的日志文件
语法
mysqladmin -u 用户名 -p [密码] flush-logs
- 只需定时执行 flush-logs方法重新创建新的日志,生成二进制文件序列,并及时把这些旧的日志保存到安全的地方就完成了一个时间段的增量备份
二、如何增量恢复MySQL数据库
2.1:增量恢复的步骤是什么?
- 添加数据–进行完全备份–录入新的数据–进行增量备份–模拟故障–恢复操作
2.2:有什么方式进行增量恢复?
如何能查看到日志文件中的操作语句?
mysqlbinlog --no-defaults --base64-output=decode-rows -v 日志文件名称 /opt/aaa.txt '//使用64位解码器按行输出日志文件放到/opt/aaa.txt中'
cat /opt/aaa.txt '//查看日志文件的详细信息'
一般恢复
语法
mysqlbinlog [--no-defaults] 增量备份文件 | mysql -u 用户名 -p
断点恢复
- 基于位置恢复
- 就是将某个起始时间的二进制日志导入数据库中,从而跳过某个发生错误的时间点实现数据的恢复
恢复数据到指定位置
mysqlbinlog --stop-position='操作id' 二进制日志 |mysql -u 用户名 -p 密码
从指定的位置开始恢复数据
mysqlbinlog --start-position='操作id' 二进制日志 |mysql -u 用户名 -p 密码
- 基于时间点恢复
- 使用基于时间点的恢复,可