北京SEO

mysql数据库二进制日志回滚浅析

2019/10/10/17:35:18  阅读:1870  来源:谷歌SEO算法  标签: Dropbox

在mysql的机制里,除了采用mysqldump来对数据库进行完整备份外,还有一种方式配合起来更加的强大和灵活,就是二进制日志回滚法.

概念&功能:二进制日志是指,当你进行数据流的操作时,数据库会记录除了select以的sql操作,例如update、delete、alter……,记录的类型包含了完整的sql语句、操作时间、执行时间、错误代码等。

有了二进制日志,就可以将数据回滚到任意时刻,比如数据库崩溃的前夕,或者其他灾难的前一时刻,几乎可以做到数据0丢失,能够体验到时光倒流,如同“穿越”的感觉。

使用方法:要想使用二进制日志,首先确定你的数据库版本支持,自mysql5.1开始二进制日志就取代了原来的“更新日志”。

打开配置文件my.cnf进行选项设置,代码如下:

[mysqld] log-bin=<path> //phpfensi.com

这样当你重启mysql服务器的时候,就会创建相应的目录和文件。文件名是以数字序号为扩展名的文件,如果在配置文件中设置了分割大小值,当单个二进制文件达到这个限制时就会自动生成一个新的文件,也可以使用在工具mysqladmin中运行flush-logs命令来手动刷新,以及再次运行mysqldump进行完整备份时加参数–flush-logs或–deletel-masger-logs 来刷新或删除日志。

这些mysql日志我们可以使用mysqlbinlog二进制日志文件工具处理

服务器生成的二进制日志文件写成二进制格式。要想检查这些文本格式的文件,应使用mysqlbinlog实用工具。

应这样调用mysqlbinlog,代码如下:

shell> mysqlbinlog [options] log-files...

例如,要想显示二进制日志binlog.000003的内容,使用下面的命令,代码如下:

shell> mysqlbinlog binlog.0000003

输出包括在binlog.000003中包含的所有语句,以及其它信息例如每个语句花费的时间、客户发出的线程ID、发出线程时的时间戳等等.

查看二进制日志,代码如下:

mysqlbinlog xxx-bin.000989

配合grep筛选,代码如下:

mysqlbinlog xxxx-bin.000989 |grep uid=9527

当然也可以通过正则而模糊查看,代码如下:

mysqlbinlog xxxx-bin.[0-9]*

运行回滚操作:

如果不是进行回滚,不要执行这条 mysqlbinlog xxxx-bin.[0-9]* | mysql

注意事项:如果在my.cnf中指定了默认编码,将会导致二进制查看时报错unknown variable ‘default-character-set=utf8′,这是一个bug,个人理解是由于客户端和配置文件的这一方式二进制根据没有进行相应的更新支持,预计在以后的版本中就消除这个bug,临时的解决方法就是注释掉配置文件中这一句,不用重启mysql服务,带使用完这个工具,在将注释去掉即可.

如果使用了二进制日志,则对性能有一定影响,据官方预计在1%左右,当然,对于它所起到的强大作用而言,1%性能损耗是完全值得的.

广告内容

mysql数据库二进制日志回滚浅析 mysql数据库二进制日志回滚浅析 mysql数据库二进制日志回滚浅析

相关阅读

热门评论

爱互踩 爱互踩

爱互踩流量交换~

总篇数175

精选文章

RMAN中catalog和nocatalog区别介绍 小技巧:为Linux下的文件分配多个权限 zimbra8.5.1安装第三方签名ssl证书的步骤 解决mysql不能远程连接数据库方法 windows服务器mysql增量备份批处理数据库 mysql中slow query log慢日志查询分析 JavaScript跨域问题总结 Linux下负载均衡软件LVS配置(VS/DR)教程 mysql中权限参数说明 MYSQL(错误1053)无法正常启动

SEO最新算法