如何从二进制文件恢复我的文件和照片?
发布于 2012-11-28 09:31:48
您是否知道需要从哪个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发布于 2012-11-28 09:29:09
使用以下步骤从二进制日志恢复数据,或使用此链接了解恢复过程:MySQL二进制日志恢复
首先,从最新的备份还原数据库。
mysql -u username -ppassword database_name < dump.sql然后做以下任何一项:
发布于 2020-11-02 13:15:38
首先,应该注意的是,binlog文件包含一个时间间隔的数据库更改,但它们不包含所有数据,只还原binlog文件是没有意义的。通常,要还原数据库,您需要完全备份,以及在完全备份之后创建的所有binlog文件。若要从binlog文件还原数据,需要正确执行完整备份。
mysqldump -u root -ppassword --flush-logs --delete-master-logs --all-databases > full-backup.sql命令中有两个重要参数:
--flush-logs -这个参数开始写入一个新的binlog文件。
--delete-master-logs -删除旧的binlog文件
因此,在具有二进制日志的文件夹中,只有在完全备份后创建的binlog文件。
要恢复数据,首先必须恢复完全备份。
mysql -u root -ppassword < full-backup.sql然后通过mysqlbinlog实用程序恢复所有binlog文件,指定指向binlog文件的路径(顺序很重要)。
mysqlbinlog mysql_bin.000023 mysql_bin.000024 mysql_bin.000025 | mysql -u root -ppassword--
注意,如果您使用主\从复制,那么在主服务器上执行完全备份时不应该使用--delete-master-logs,因为这可以中断复制
但是在这种情况下,您必须记住创建了哪个特定的binlog文件-- --flush-log参数,对于恢复过程,要使用它和后来创建的所有binlog文件。
有关如何备份和还原增量备份的详细信息,请参阅这篇文章。
https://dba.stackexchange.com/questions/29414
复制相似问题