设为首页 收藏本站
查看: 493|回复: 0

[经验分享] MySQL二进制日志

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-5-27 09:59:43 | 显示全部楼层 |阅读模式
二进制日志相关的服务器变量:
        sql_log_bin = {ON|OFF}   是否记录二进制日志。启用二进制记录日志,则这项必须是ON
                有时候,我们想执行的某些语句不要同步到slave上,可以执行set sql_log_bin=OFF;暂时关闭二进制记录功能。操作完后再启用二进制日志功能即可。
        sql_log_off={ON|OFF}    用于控制是否禁止将一般查询日志类信息记录进查询日志文件。默认为OFF,表示不禁止记录功能。用户可以在会话级别修改此变量的值,但其必须具有SUPER权限。作用范围为全局和会话级别,属动态变量。
        log_bin = mysql-bin  记录的文件位置。通常为数据所在的目录
        binlog_format = {MIXED|row|statement}  二进制日志的记录格式
        max_binlog_size = 1073741824   二进制日志文件的单文件上限 (单位:字节)
        【超出则自动滚动日志。注意: (1) 到达最大值会自动滚动  (2) 文件达到上限时的大小未必为指定的精确值】
        max_binlog_cache_size = 18446744073709547520
        max_binlog_stmt_cache_size = 18446744073709547520   # 异步写入磁盘的日志文件大小
        sync_binlog = 0|1    设定多久同步一次二进制日志至磁盘文件中,0表示不同步,任何正数值都表示对二进制每多少次写操作之后同步一次。当autocommit的值为1时,每条语句的执行都会引起二进制日志同步,否则,每个事务的提交会引起二进制日志同步。





二进制日志的查看命令:
        mysqlbinlog
                -j, --start-position=#:从指定的事件位置查看
                --stop-position=#:只显示到指定的事件位置
                --start-datetime="YYYY-MM-DD hh:mm:ss"
                --stop-datetime="YYYY-MM-DD hh:mm:ss"

                例如:
                        mysqlbinlog -uroot -h 172.16.20.71 -p passwd /data/mysql/mysql-bin.000008          [访问远程数据库]
                        mysqlbinlog --start-position=515 --stop-position=616  /data/mysql/mysql-bin.000008
                        mysqlbinlog -uroot -proot /data/nysql/mysql-bin.000060 --start-datetime="2016-04-11 00:00:01" --stop-datetime="2016-04-11 23:59:59"
                        mysqlbinlog -uroot -proot --database=Mobile /data/mysql/mysql-bin.000008  --start-datetime="xxx" --stop-datetime="xxx" # 仅列出Mobile的相关二进制日志

                        说明:如果在备份时候报错 “'Sanity check failed', Could not read entry at offset 1009: Error in log format or read error.” 这种情况是由于mysqlbinlog的版本和MySQL服务器的版本不一样导致的,一般是因为安装过多个版本的MySQL系统将mysqlbinlog识别成了老的版本,因此只要用mysqlbinlog的全局路径即可。

二进制日志事件的格式:
        # at 328
        #151105 16:31:40 server id 1  end_log_pos 431         Query        thread_id=1  exec_time=0  error_code=0
        use `mydb`/*!*/;
        SET TIMESTAMP=1446712300/*!*/;
        CREATE TABLE tb1  (id int, name char (30) )
        /*!*/;

        事件发生的日期和时间:151105 16:31:40
        事件发生的服务器标识:server id 1 【在双主模型上,可用来识别是否是自己曾发出去的日志,避免死循环】
        事件的结束位置:end_log_pos 431
        事件的类型:Query
        事件发生时所在服务器执行此事件的线程的ID:thread_id=1
        语句的时间戳与将其写入二进制文件中的时间差:exec_time=0
        错误代码:error_code=0
        事件内容:

        GTID:Global Transaction ID;  全局事务ID
                专属属性:GTID

        清理二进制日志的方法:
                > show binary logs;
                > purge binary logs to 'binlog.000030';


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-222527-1-1.html 上篇帖子: MySQL in不走索引 下篇帖子: centos6.5二进制安装mysql 二进制
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表