mysql备份工具--mysqldump备份以及恢复

时间:2022-05-21 10:15:00

mysql备份工具--mysqldump备份以及恢复

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"。