Answers:
您是否知道需要从哪些Binlog文件还原以及有多少Binlog文件?
使用mysqlbinlog
实用程序,我们可以查看binlog文件的内容。
如果是单个文件,则可以使用以下方法恢复:
mysqlbinlog /var/lib/mysql-bin.000016 | mysql –uroot –pReset123
如果是多个文件,则只需将所有内容提取到一个.sql文件中,然后直接将其还原:
mysqlbinlog /var/lib/mysql-bin.000016 > /logs/allbinlog.sql
要将第二个binlog内容附加到allbinlof.sql文件,请使用以下命令:
mysqlbinlog /var/lib/mysql-bin.000016 >> /logs/allbinlog.sql
您也可以使用mysqlbinlog选项排除某些语句。请在下面尝试以下选项:
mysqlbinlog --help
使用以下步骤从二进制日志还原数据,或使用此链接了解还原过程:MySQL二进制日志还原
首先,从最新备份还原数据库
mysql -u username -ppassword database_name < dump.sql
然后执行以下任一操作:
从二进制日志还原其余数据。
如果要在MySQL服务器上执行多个二进制日志,那么安全的方法是使用与服务器的单个连接来处理它们。
mysqlbinlog mysql_bin.000001 | mysql -u root -ppassword database_name
mysqlbinlog mysql_bin.000002 | mysql -u root -ppassword database_name
要么:
mysqlbinlog mysql_bin.000001 mysql_bin.000002 | mysql -u root -ppassword database_name
根据时间恢复数据
mysqlbinlog --start-datetime="2005-04-20 10:01:00" \
--stop-datetime="2005-04-20 9:59:59" mysql_bin.000001 \
| mysql -u root -ppassword database_name
根据位置还原数据
mysqlbinlog --start-position=368315 \
--stop-position=368312 mysql_bin.000001 \
| mysql -u root -ppassword database_name
您可以使用-v选项将.sql文件制成READABLE格式。
例如
mysqlbinlog -v /var/lib/mysql-bin.000016 > /logs/allbinlog.sql
mysqlbinlog -v /var/lib/mysql-bin.000016 >> /logs/allbinlog.sql