MySQL中怎么使用更新日志文件

55次阅读
没有评论

共计 1117 个字符,预计需要花费 3 分钟才能阅读完成。

这篇文章将为大家详细讲解有关 MySQL 中怎么使用更新日志文件,文章内容质量较高,因此丸趣 TV 小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

启用日志

当以 –log-update=file_name 选项启动时,d 将所有更新数据的 SQL 命令写入记录文件中。文件被写入数据目录并且有一个名字 file_name.#,这里 #是一个数字,它在每次执行 mysqladmin refresh 或 mysqladmin flush-logs、FLUSH LOGS 语句、或重启服务器时加 1。

如果你不指定 file_name,缺省使用服务器的主机名。

如果你在文件命中指定扩展名,那么更新日志不再使用顺序文件,使用指定的文件。但是当你它在每次执行 mysqladmin refresh 或 mysqladmin flush-logs、FLUSH LOGS 语句、或重启服务器时日志文件被清空。

更新记录很聪明,因为它仅仅记载真正更新数据的语句。因此一个用 WHERE 的 UPDATE 或 DELETE 找不到行,它就不被写入记录文件。它甚至跳过将设置一个列为它已经有的值的 UPDATE 语句。

重写日志

必须着重指出的是,在下列情况之一,将使用新的日志文件——日志文件的顺序自动增加(未指定 file_name 或者指定的 file_name 不包括扩展名)或者清空文件(指定的 file_name 包括扩展名):

命令 mysqladmin refresh
命令 mysqladmin flush-logs
SQL 语句 FLUSH LOGS
服务器重新启动

恢复日志内容

对于所有的更新日志文件,你都可以把它指定为 mysql 客户机的输入,来执行其中的 SQL 语句,恢复数据。例如:
shell mysql

但是,你可能因为执行 DROP DATABASE 误删除了,希望只恢复该数据库的内容,为了这个目的,你可以使用 –one-database 选项:

shell mysql –one-database db_name hostname.nnn

如果你要批量恢复更新日志的数据,在 Unix 中可以这样:

$ ls –t –r –l hostname.[0-9]* | xargs cat | mysql –one-database db_name

注意由于文件是按时间时间排序的,如果你修改的其中的任何文件,都会因为顺序的错误导致可能导入错误的数据。

如果按文件顺序恢复数据,就去掉 - t 和 - r 选项:

$ ls -l hostname.[0-9]* | xargs cat | mysql –one-database db_name

关于 MySQL 中怎么使用更新日志文件就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-03发表,共计1117字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)