zoukankan      html  css  js  c++  java
  • [原创]CentOS下Mysql的日志回滚

    一、    环境:

    a)        Centos-6.5-x64位操作系统。

    b)        安装mysql。命令:yum install mysql*

    二、    配置

    a)        配置/etc/my.cnf文件

    [mysqld]

           Log-bin=bin-log   //配置开启日志功能

    三、    实现

    1. 查看/var/lib目录下没有类似bin-log.000001的日志文件。
    2. 登录mysql执行:flush logs;//刷新日志,再查看则有日志文件了,此时若没有再执行flush logs和重启mysql,那么一切对mysql的操作都将记录在刷新后出现的日志文件中。命令:mysqlbinlog –no-defaults bin-log.000001 | more
    3. 登录mysql,创建表和插入一系列测试数据作为要恢复的对象。再执行一次flush logs,生成bin-log.000002日志文件。然后将数据和表删除。
    4. 现在将数据恢复。开启另一个终端,执行命令:

        Mysqlbinlog –no-defaults bin-log.000001 | mysql –u root –p

      回车输入root密码。返回查看,表和数据均已恢复。

    四、    mysqlbinlog语法:基于时间(date)和位置(position)的恢复

      1.定位: --start-position 开始点

        --stop-position 结束点

        --start-date 开始时间

        --stop-date  结束时间

      2.例:

        Mysqlbinlog –no-defaults –start-position pos值 –stop-position pos值 bin-log.000001 | mysql –u root –p

      注:定位关键字可以配对使用也可单独使用,实现现象略。

    附加一个数据库TPS,QPS实时监控的脚本。

    #cat mysql_nmon.sh

    #!/bin/sh

    mysqladmin -uroot -p'password' -hhost_ip -P3306 extended-status -i1|awk 'BEGIN{local_switch=0;print "QPS   Commit Rollback   TPS    Threads_con Threads_run -------------------------------------------------------- "}
         $2 ~ /Queries$/            {q=$4-lq;lq=$4;}
         $2 ~ /Com_commit$/         {c=$4-lc;lc=$4;}
         $2 ~ /Com_rollback$/       {r=$4-lr;lr=$4;}
         $2 ~ /Threads_connected$/  {tc=$4;}
         $2 ~ /Threads_running$/    {tr=$4;
            if(local_switch==0)
                    {local_switch=1; count=0}
            else {
                    if(count>10)
                            {count=0;print "-------------------------------------------------------- QPS   Commit Rollback   TPS    Threads_con Threads_run -------------------------------------------------------- ";}
                    else{
                            count+=1;
                            printf "%-6d %-8d %-7d %-8d %-10d %d ", q,c,r,c+r,tc,tr;
                    }
            }
    }'

  • 相关阅读:
    嵌入式Linux驱动学习之路(十九)触摸屏驱动、tslib测试
    GNU make使用变量⑤变量的引用、定义等
    Java并发——核心理论
    Java并发——volatile的原理
    Java线程与Linux内核线程的映射关系
    Reactor模式详解
    Java实现二分查找算法
    Dubbo协议与连接控制
    linux 域名
    package报错
  • 原文地址:https://www.cnblogs.com/wsjhk/p/4589424.html
Copyright © 2011-2022 走看看