美高梅网投网站-美高梅手机网投-美高梅官方网站
做最好的网站

您的位置:美高梅网投网址 > 数据库 > 美高梅官方网站flush logs  产生一个新的binlog日志

美高梅官方网站flush logs  产生一个新的binlog日志

发布时间:2019-11-06 22:15编辑:数据库浏览(70)

    一.概述

             由于劳动器生成的二进制日志文件以二进制格式保存,所以即便要想检查那么些文件的文本格式,就能够用到mysqlbinlog日志管理工科具。
        mysqlbinlog的语法如下:
        mysqlbinlog [options] log-files log-files2...

        个中options有不菲选取,常用如下:

    选项

    说明

    -d, --database=name

    指定数据库名称,只列出指定的数据库相关操作。

    -o, --offset=#

    忽略掉日志中的前n行命令

    -r, --result-file=name

    将输出的文本格式日志输出到指定文件

    -s,--short-form

    显示简单格式,省略掉一些信息

    --set--charset=char-name

    在输出为文本格式时,在文件第一行加上set names char-name.

    -- start-datetime=name-stop-datetime=name

    指定日期间隔内的所有日志

    --start-position=# --stop-position=#

    指定位置间隔内的所有日志

      1.1 开启binlog日志

        默许意况下是未张开binlog日志,能够透过以下二种艺术查看:

    mysql> show binary logs;
    ERROR 1381 (HY000): You are not using binary logging
    --或者这样查看
    mysql> show variables like '%log_bin%    
    

        美高梅官方网站 1

      开启binlog日志,矫正my.cnf文件重启mysql服务,如下所示:
        美高梅官方网站 2
       再次查询binlog日志状态:
        美高梅官方网站 3
        美高梅官方网站 4

    操作命令:

    二. 使用mysqlbinlog查看日志

    --先在test表中插入一条数据退出。
    mysql> insert into a values('testbinlog');
    
    -- 查看binlog位置
    [root@hsr mysql]# cd /var/lib/mysql
    [root@hsr mysql]# ls
    mysql-bin.000001  mysql-bin.index    
    

       2.1 使用mysqlbinlog查看日志 不加任何options参数

    [root@hsr ~]# cd /usr/local/mysql/bin
    [root@hsr bin]# ./mysqlbinlog /var/lib/mysql/mysql-bin.000001    
    

        美高梅官方网站 5

            下边包车型客车日记文件除了创设表和删除表的sql外,操作数据库的语句都加密了。

      2.2 使用参数"--base64-output=decode-row -v"查看具体的sql语句,如下命令

    [root@hsr bin]# ./mysqlbinlog --base64-output=decode-row -v  /var/lib/mysql/mysql-bin.000001
    

        美高梅官方网站 6
        上海体育地方中 at 291是插入语句的始发地方, at 384是插入语句的甘休地方。若是后续该表数据错过,可以凭借那三个地点进行恢复。也能够依附初阶时间和终止时间来平复,前边再讲日志时具体介绍。

      2.3  加-d选项,将只展示对test数据库的操作日志

                       [root@hsr bin]# ./mysqlbinlog   /var/lib/mysql/mysql-bin.000001 -d test

      2.4  加-o选项, 忽视掉日志中的前n个操作。演示下

    -- 插入三条数据
    INSERT INTO a VALUES('testbinlog2')
    INSERT INTO a VALUES('testbinlog3')
    INSERT INTO a VALUES('testbinlog4')
    
    [root@hsr bin]# ./mysqlbinlog --base64-output=decode-row -v  /var/lib/mysql/mysql-bin.000001 -d test  -o 14
    

        美高梅官方网站 7
        上航海用图书馆显示日志生成后,从at 898行开端显示。 17个操作表示:日志展现跳过16个at。
      2.5 加-r选项
        将出口的文本格式日志输出到内定文件,上边将文件结果输出到文件resultfile中。

    [root@hsr bin]# ./mysqlbinlog --base64-output=decode-row -v  /var/lib/mysql/mysql-bin.000001 -r resultfile
    [root@hsr bin]# more resultfile
    

        美高梅官方网站 8
    美高梅官方网站 9

      2.6 加-s 将内容开展简短展现

    [root@hsr bin]# ./mysqlbinlog --base64-output=decode-row -v  /var/lib/mysql/mysql-bin.000001 -s
    

      美高梅官方网站 10

        如上海体育场地所示,简单呈现后,未有了详尽的sql语句。
      2.7 加"--start-datetime--stop-datetime"显示9:00 ~12:00里边的日记

    [root@hsr bin]# ./mysqlbinlog --base64-output=decode-row -v  /var/lib/mysql/mysql-bin.000001  
    --start-datetime='2018/08/30 09:00:00' --stop-datetime='2018/08/30 12:00:00'
    

       美高梅官方网站 11
        如上海图书馆所示:最终突显的日子截是1535600091, 调换后是2018-08-30 11:34:51。 开首和甘休日期可以只写二个。
      2.8 加"--start-position=#和--stop-position=#" 和日期范围肖似,不过更确切

    [root@hsr bin]# ./mysqlbinlog --base64-output=decode-row -v  /var/lib/mysql/mysql-bin.000001  --start-position=944
    

        美高梅官方网站 12
      最终官方网站文书档案 mysqlbinlog   

    复制代码 代码如下:

    show binlog events in 'mysql-bin.000016' limit 10;

    reset master 删除全数的二进制日志
    flush logs  发生二个新的binlog日志文件

    show master logs; 或然 show binary logs; 查看二进制文件列表和文件大小

    复制代码 代码如下:

    ./mysqlbinlog --start-datetime="2012-05-21 15:30:00" --stop-datetime="2012-05-21 16:40:00" /binlog/mysql-bin.000005 > a.log

    1. 要想经过日记复苏数据库,在您的 my.cnf 文件里应该犹如下的定义,log-bin=mysql-bin,那几个是必得的
      binlog-do-db=db_test ,那一个是点名哪些数据库须要日志,每行二个,假使不钦赐的话暗中同意正是负有数据库.

    复制代码 代码如下:

    [mysqld]
     log-bin=mysql-bin
     binlog-do-db=db_test
     binlog-do-db=db_test2 

    3.刨除二进制日志:

    复制代码 代码如下:

    mysql> reset master  (清空全部的二进制日志文件)
    purge master logs to 'mysql-bin.000006';  (删除mysql-bin.000006从前的二进制日志文件)
    purge master logs before '二零零五-08-10 04:07:00'  (删除该日期在此以前的日志)

    在my.cnf 配置文件中[mysqld]中添加:

    复制代码 代码如下:

    expire_logs_day=3  设置日志的晚点天数,过了点名的运气,会自动删除

    4.底下正是恢复生机操作了
     特别提醒,mysql每趟运转都会重新生成贰个肖似 mysql-bin.000003 的文本,若是您的mysql每一天都要双重开动三回的话,那时你将要特别注意不要选错日志文件了。

    技巧1:
    你能够经过–one-database 参数接收性的过来单个数据库,example在上边,爽吧。
    mysqlbinlog –stop-date="2005-04-20 9:59:59" /var/log/mysql/mysql-bin.000001  | mysql -u root -pmypwd –one-database db_test

    技巧2:
    就算已经使用过
    /usr/local/mysql5/bin/mysqlbinlog –start-date="005-04-20 9:55:00" /var/data/mysql5/mysql-bin.0* > /home/db/tt.sql 相似的话语将日志导成了ASCII文本文件,那么你就能够一向在phpmyadmin里实践这些文件,因为它本人正是多少个正规的sql文件,举例想让文件之中的一点语句不试行,找到它们删除就可以,然后再放进去实行。

    技巧3:
    mysqlbinlog –stop-date="2005-04-20 9:59:59" /var/log/mysql/mysql-bin.000001  | mysql -u root -pmypwd –one-database db_test
    那是把mysql-bin.000001那么些二进制文件里的剧情转换到ASCII文件(也正是sql语句),直接通过管道操作符 | 传输给 mysql那么些程序,然后过滤掉别的数据库的讲话,只在db_test里执行。

    要想分明当前的二进制日志文件的公文名,输入上面包车型地铁MySQL语句:

    复制代码 代码如下:

    SHOW BINLOG EVENTS

    1. 钦定苏醒时间
      对于MySQL 4.1.4,能够在 mysqlbinlog 语句中经过 –start-date 和 –stop-date 选项钦点DATETIME格式的起止时间。例如表明,假如在前天早晨10:00(明天是二〇〇七年三月二十二日),施行SQL语句来删除一个大表。要想复苏表和数目,你能够还原前夜间的备份,并输入:

    复制代码 代码如下:

    mysqlbinlog –stop-date="2005-04-20 9:59:59" /var/log/mysql/mysql-bin.000001  | mysql -u root -pmypwd

    该命令将回涨结束到在 –stop-date 选项中以DATETIME格式给出的日子和岁月的兼具数据。倘让你未有检查测量试验到多少个钟头后输入的大错特错的SQL语句,只怕你想要苏醒后边发生的移动。遵照这个,你能够用起使日期和岁月重国民党的新生活运动行mysqlbinlog:

    复制代码 代码如下:

    mysqlbinlog –start-date="2005-04-20 10:01:00" /var/log/mysql/mysql-bin.000001  | mysql -u root -pmypwd

    1. 钦点恢重新苏醒设置置
      也能够接纳mysqlbinlog的选项 –start-position 和 –stop-position 来钦定日志地点。它们的效率与起止日选项相似,分化的是提交了从日记起之处号。使用日志地点是更确切的回复措施,极其是当由于破坏性SQL语句同期发出过多业务的时候。要想鲜明地方号,能够运维mysqlbinlog搜索推行了不期待的专门的学问的光阴约束,但应将结果再度指向文本文件以便举行检查。操作方法为:

    复制代码 代码如下:

    mysqlbinlog –start-date="2005-04-20" –stop-date="2005-04-20" /var/log/mysql/mysql-bin.000001 > /tmp/mysql_restore.sql

    该命令就要/tmp目录创立小的文本文件,将体现实践了不当的SQL语句时的SQL语句。你能够用文件编辑器张开该文件,寻觅你绝不想再一次的言语。假诺二进制日志中的地点号用于结束和一而再上升操作,应开展注脚。用log_pos加一个数字来标识地方。使用地点号恢复生机了原先的备份文件后,你应从命令行输入下边内容:

    复制代码 代码如下:

    mysqlbinlog –stop-position="368312" /var/log/mysql/mysql-bin.000001 | mysql -u root -pmypwd
    mysqlbinlog –start-position="368315"/var/log/mysql/mysql-bin.000001 | mysql -u root -pmypwd

    下面的第1行将还原到结束职责截止的富有事务。下生龙活虎行将上涨从给定的胚胎地点直到二进制日志停止的持有事情。因为mysqlbinlog的输出包罗种种SQL语句记录此前的SET TIMESTAMP语句,苏醒的数据和有关MySQL日志将影响专门的工作实施的原时间。

    你也许感兴趣的稿子:

    • 教你活动回复MySQL数据库的日记文件(binlog)
    • MySQL 自动清理binlog日志的诀要
    • mysql二进制日志文件苏醒数据库
    • MySQL数据库复苏(使用mysqlbinlog命令)
    • 演讲mysql之binlog日志以致采纳binlog日志复苏数据的办法

    本文由美高梅网投网址发布于数据库,转载请注明出处:美高梅官方网站flush logs  产生一个新的binlog日志

    关键词: