|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
据我的观察,现在有一个趋势,那些经过正式培训的数据库管理员DBA更倾向于选择一个专有关系数据库,例如Oracle。对于一些具有专门数据库管理员的比较大的环境来说,MySQL很难得到宠爱,这时候,关于MySQL是否真的具有良好的可扩展性的争论已经没有意义。你不成能随时备份数据,但你的数据丧失时,大概数据库目次中的文件破坏时,你只能恢复已备份的文件,而在这以后的拔出或更新的数据,就力所不及了。办理这个成绩,就必需利用更新日记。更新日记能够及时纪录更新、拔出和删除纪录的SQL语句。
启用日记
当以--log-update=file_name选项启动时,MySQLd将一切更新数据的SQL命令写进纪录文件中。文件被写进数据目次而且有一个名字file_name.#,这里#是一个数字,它在每次实行mysqladminrefresh或mysqladminflush-logs、FLUSHLOGS语句、或重启服务器时加1。
假如你不指定file_name,缺省利用服务器的主机名。
假如你在文件射中指定扩大名,那末更新日记不再利用按次文件,利用指定的文件。可是当你它在每次实行mysqladminrefresh或mysqladminflush-logs、FLUSHLOGS语句、或重启服务器光阴志文件被清空。
更新纪录很伶俐,由于它仅仅纪录真正更新数据的语句。因而一个用WHERE的UPDATE或DELETE找不到行,它就不被写进纪录文件。它乃至跳过将设置一个列为它已有的值的UPDATE语句。
重写日记
必需侧重指出的是,鄙人列情形之一,将利用新的日记文件――日记文件的按次主动增添(未指定file_name大概指定的file_name不包含扩大名)大概清空文件(指定的file_name包含扩大名):
命令mysqladminrefresh
命令mysqladminflush-logs
SQL语句FLUSHLOGS
服务重视新启动
恢复日记内容
关于一切的更新日记文件,你都能够把它指定为mysql客户机的输出,来实行个中的SQL语句,恢单数据。比方:
shell>mysql
可是,你大概由于实行DROPDATABASE误删除,但愿只恢复该数据库的内容,为了这个目标,你可使用--one-database选项:
shell>mysql--one-databasedb_name<hostname.nnn
假如你要批量恢复更新日记的数据,在Unix中能够如许:
$lsCtCrClhostname.[0-9]*|xargscat|mysql--one-databasedb_name
注重因为文件是定时间工夫排序的,假如你修正的个中的任何文件,城市由于按次的毛病招致大概导进毛病的数据。
假如按文件按次恢单数据,就往失落-t和-r选项:
$ls-lhostname.[0-9]*|xargscat|mysql--one-databasedb_name
总结
本节先容了有关日记文件特别是更新日记的操纵。必要注重的是怎样启用更新日记、服务重视写日记的机会、和怎样恢复更新日记的内容。特别是个中的各类技能,比方怎样依照日记文件天生的工夫按次恢复日记,怎样只恢复指定命据库的内容。
MySQLAB公司的一个高级开发者者表示,“这个特点使得MySQL可以根据你当前的系统的需要来进行调整。” |
|