专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »数据库 » 查看mysql日志:在MySQL中使用更新日志文件 »正文

查看mysql日志:在MySQL中使用更新日志文件

来源: 发布时间:星期二, 2009年1月6日 浏览:240次 评论:0
="t18">你不可能随时备份数据但你数据丢失时或者数据库目录中文件损坏时 你只能恢复已经备份文件而在这的后插入或更新数据就无能为力了解决这个问题就必须使用更新日志更新日志可以实时记录更新、插入和删除记录SQL语句

启用日志

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

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

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

更新记录很聪明它仅仅记载真正更新数据语句因此个用WHEREUPDATE或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

整理总结

本节介绍了有关日志文件尤其是更新日志操作需要注意是如何启用更新日志、服务器重写日志时机、以及如何恢复更新日志内容尤其是其中各种窍门技巧例如如何按照日志文件生成时间顺序恢复日志如何只恢复指定数据库内容

0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: