https://help.aliyun.com/knowledge_detail/41738.html
mysql全备:记录pos位置
mysqldump -h10.10.10.1 -uadmin -p --master-data=2 --single-transaction -R --events -q --all-databases > 2.sql
cat 2.sql |head -22
在导出的备份中的22行会看到pos位置点和具体的binlog文件名称
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000955', MASTER_LOG_POS=65546478
然后通过以下命令1进行恢复
或者我们可以找到该pos点处具体的时间信息,然后进行恢复,命令如下2
将二进制日志恢复成可读状态:
mysqlbinlog --no-defaults -v --base64-output=decode-rows mysql-bin.000955 > binlog111.sql
将binlog恢复到数据库
命令1
mysqlbinlog mysql-bin.000688 mysql-bin.000689 --start-position=531167 --stop-datetime="16-05-16 18:05:03" | mysql -uroot -p -P3306 -h *.*.*.*
命令2
mysqlbinlog mysql-bin.000688 mysql-bin.000689 --start-datetime="17-06-06 10:05:03" --stop-datetime="17-06-06 18:05:03" | mysql -uroot -p -P3306 -h *.*.*.*
# mysqlbinlog 其他可以使用的参数
# --database db_name 指定仅增量恢复指定数据库 db_name 的数据
# --start-position 指定开始恢复的 binlog 位点,该位点应存在于指定的第一个 binlog 文件。
# --stop-position 指定恢复到的 binlog 位点,该位点应存在于指定的最后一个 binlog 文件。
# --start-datetime 指定开始恢复的时间点(从第一个等于或大于该时间点的 binlog 事件开始)。
# 以本地时间时区为准,格式为 MySQL 可以接受的时间格式,比如"2016-05-16 08:01:05" 或 "16-05-16 08:01:05"。
# --stop-datetime 指定停止恢复的时间点(在第一个等于或大于该时间点的 binlog 事件停止)。
# 以本地时间时区为准,格式为 MySQL 可以接受的时间格式,比如"2016-05-16 08:01:05" 或 "16-05-16 08:01:05"。