>

主干认知

- 编辑:金沙国际平台登录 -

主干认知

前言

  在今天的做事中,由于本身粗(zuo卡塔尔国心(si卡塔尔误update操作招致几百行的数额现身谬误,在等比不上的还要(那个时候作者以致不了驱除了备份之后还应该有binlog日志复苏卡塔尔立马查资料学习binlog的出山小草,随后马上张开了恢复生机。即使能够假装自个儿没出错(emmmmm......最后还是得断定的!卡塔 尔(英语:State of Qatar),但下班现在心境不能够长久平复,立马展开Computer进行二遍履行记录技能对得起和谐犯的谬误。

  注:本次尝试是在Wnidows下进行的(网络Linux挺多,可是Windows的什么少,加上自己小编的Computer也是Win7就大概做一遍尝试吧!

 


 

binlog 基本认知

1、初识binlog

(1卡塔尔MySQL的binlog正是大家平日所说的Binary Log,即bin-log,是MySQL存款和储蓄对数据库改造的二进制文件,约等于记录了具备DDL与DML(select除此之外卡塔尔国语句,利用它主要能够做两件事:

  • 数据复苏:通过mysqlbinog工具举办苏醒;
  • 多少复制:MySQL Replication在Master端开启binlog,Mster把它的二进制日志传递给slaves来到达master-slave数据大器晚成致的指标。

(2)怎么查看MySQL的日志意况(是或不是展开等卡塔尔,当MySQL还未张开时候,通过命令:show variables like ‘log_bin%'查看

mysql> show variables like 'log_bin%';
+---------------------------------+-------+
| Variable_name                   | Value |
+---------------------------------+-------+
| log_bin                         | OFF   |
| log_bin_basename                |       |
| log_bin_index                   |       |
| log_bin_trust_function_creators | OFF   |
| log_bin_use_v1_row_events       | OFF   |
+---------------------------------+-------+
5 rows in set

(3)如何在Wnidows在修改log_bin状态为ON开启呢?

  • 找到C:ProgramDataMySQLMySQL Server 5.7my.ini文件(注意:是C盘下隐瞒文件夹ProgramData,并不是Program Files下)  

  图片 1

  • 日增/矫正常用的配置属性

  图片 2

(4卡塔尔常用轻巧属性表达:除了以上log_bin、binlog_format多少个轻便的配置外,还足以有别的的性质配置

  • log-bin = /xxx/xxx/mysql_bin #binlog日志文件,以mysql_bin开头,六个数字结尾的文件:mysql_bin.000001,并且会将文件存储在相应的xxx/xxx路径下,如果只配置mysql_bin的话默认在C:ProgramDataMySQLMySQL Server 5.7Data下;``
  • binlog_format = ROW #binlog日志格式,默认为STATEMENT:每一条SQL语句都会被记录;ROW:仅记录哪条数据被修改并且修改成什么样子,是binlog开启并且能恢复数据的关键;
  • expire_logs_days= 7 #binlog过期清理时间;
  • ``max_binlog_size = 100m #binlog每个日志文件大小;
  • binlog_cache_size = 4m #binlog缓存大小;
  • max_binlog_cache_size = 512m #最大binlog缓存大小。

    MySQL的二进制日志能够说是MySQL最注重的日记了,它记录了装有的DDL和DML(除了数量查询语句)语句,以事件格局记录,还含有语句所施行的开支的年月,MySQL的二进制日志是业务安全型的。

2、恢复生机数据测量试验

(1)准备表user

mysql> select * from user;
+----+----------+----------------------------------+
| id | name     | password                         |
+----+----------+----------------------------------+
|  1 | Zhangsan | 2d7284808e5111e8af74201a060059ce |
|  2 | Lisi     | 2d73641c8e5111e8af74201a060059ce |
|  3 | Wangwu   | 2d73670c8e5111e8af74201a060059ce |
+----+----------+----------------------------------+
3 rows in set

 (2卡塔 尔(英语:State of Qatar)误update恢复生机,比方笔者在update user set name = 'Lijian' where id = 1;的时候忘写where id = 1首要原则,结果形成整个数额被更新

mysql> update user set name ='Lijian';
Query OK, 3 rows affected
Rows matched: 3  Changed: 3  Warnings: 0
mysql> select*from user;
+----+--------+----------------------------------+
| id | name   | password                         |
+----+--------+----------------------------------+
|  1 | Lijian | 2d7284808e5111e8af74201a060059ce |
|  2 | Lijian | 2d73641c8e5111e8af74201a060059ce |
|  3 | Lijian | 2d73670c8e5111e8af74201a060059ce |
+----+--------+----------------------------------+
3 rows in set

  那个时候你早晚很慌,但是先不要慌(实际上慌也没用卡塔尔,先看未有备份,若无再看是还是不是开启binlog(show variables like ‘log_bin%'卡塔尔,尽管两个都还未(我深信大家都会依期备份+binlog卡塔 尔(阿拉伯语:قطر‎从数据库那几个范围是不能恢复的了,借使binlog开启的话,一切都好说。就从头实行下边几步恢复生机吧!

  率先步:找到当前mysql记录的binlog文件,试行show master status;

  第二步:查看binlog,定位误操作的pos也许时间段。推行show binlog events in 'mysql_bin.000001';

mysql> show binlog events in 'mysql_bin.000001';
+------------------+-----+----------------+-----------+-------------+---------------------------------------+
| Log_name         | Pos | Event_type     | Server_id | End_log_pos | Info                                  |
+------------------+-----+----------------+-----------+-------------+---------------------------------------+
| mysql_bin.000001 |   4 | Format_desc    |         1 |         123 | Server ver: 5.7.12-log, Binlog ver: 4 |
| mysql_bin.000001 | 123 | Previous_gtids |         1 |         154 |                                       |
| mysql_bin.000001 | 154 | Anonymous_Gtid |         1 |         219 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS'  |
| mysql_bin.000001 | 219 | Query          |         1 |         291 | BEGIN                                 |
| mysql_bin.000001 | 291 | Table_map      |         1 |         344 | table_id: 108 (test.user)             |
| mysql_bin.000001 | 344 | Update_rows    |         1 |         650 | table_id: 108 flags: STMT_END_F       |
| mysql_bin.000001 | 650 | Xid            |         1 |         681 | COMMIT /* xid=22 */                   |
+------------------+-----+----------------+-----------+-------------+---------------------------------------+
7 rows in set

  第三步:进入C:ProgramDataMySQLMySQL Server 5.7Data执行mysqlbinlog --start-position=219 --stop-position=681 mysql-bin.000001 > e:\update.sql将update部分单独备份出来到E盘下为update.sql  

 图片 3 

  第四步:登录mysql(mysql -uroot -p123)

  第五步:实践source e:update.sql苏醒数据,部分截图如下:

  图片 4

  **第六步:查看结果**

mysql> select * from user;
+----+----------+----------------------------------+
| id | name     | password                         |
+----+----------+----------------------------------+
|  1 | Zhangsan | 2d7284808e5111e8af74201a060059ce |
|  2 | Lisi     | 2d73641c8e5111e8af74201a060059ce |
|  3 | Wangwu   | 2d73670c8e5111e8af74201a060059ce |
+----+----------+----------------------------------+
3 rows in set

    平时的话开启二进制日志大概会有1%的性质损耗(参见MySQL官方汉语手册 5.1.24版)。二进制有五个最关键的行使情况:

3、总结

  (1)利用binlog只可以针对针对数据量不是好些个的情事,真正的生产条件各个多少个G的日志文件,不唯有是光靠binlog复苏的,还或许有越来越多的措施,在那只是做三个简易的就学记录!

  (2卡塔尔国推断时间binlog日志的时刻阶段与pos地点超级重大,不过必要掌握关于binlog的过多参数!

  (3卡塔尔早先些天真的认为开荒职员就无需太了然数据库相关的运行,可是今天阅世过才晓得数据库的有关文化也是开垦人士必需驾驭的!

 

    其大器晚成:MySQLReplication在Master端开启binlog,Mster把它的二进制日志传递给slaves来到达master-slave数据生机勃勃致的目标。

    其二:自然便是数据恢复生机了,通过使用mysqlbinlog工具来使苏醒数据。

    二进制日志满含两类公事:二进制日志索引文件(文件名后缀为.index卡塔尔用于记录全部的二进制文件,二进制日志文件(文件名后缀为.00000*卡塔 尔(英语:State of Qatar)记录数据库全体的DDL和DML(除了数量查询语句)语句事件。

一、开启binlog日志:

    vi编辑展开mysql配置文件

    # vi /usr/local/mysql/etc/my.cnf    在[mysqld] 区块

    设置/增加log-bin=mysql-bin  确认是开发状态(值mysql-bin 是日记的基本名或前缀名);

    重启mysqld服务使配置生效

    # pkill mysqld# /usr/local/mysql/bin/mysqld_safe --user=mysql &二、也可登入mysql服务器,通过mysql的变量配置表,查看二进制日志是还是不是已展开单词:variable[ˈvɛriəbəl] 变量

    登陆服务器

    # /usr/local/mysql/bin/mysql -uroot -p123456mysql> show variables like 'log_%';

    +----------------------------------------+---------------------------------------+    | Variable_name                          | Value                                |    +----------------------------------------+---------------------------------------+    | log_bin                                | ON                                    | ------> ON表示早就开启binlog日志

    | log_bin_basename                      | /usr/local/mysql/data/mysql-bin      |    | log_bin_index                          | /usr/local/mysql/data/mysql-bin.index |    | log_bin_trust_function_creators        | OFF                                  |    | log_bin_use_v1_row_events              | OFF                                  |    | log_error                              | /usr/local/mysql/data/martin.err      |    | log_output                            |FILE|    | log_queries_not_using_indexes          | OFF                                  |    | log_slave_updates                      | OFF                                  |    | log_slow_admin_statements              | OFF                                  |    | log_slow_slave_statements              | OFF                                  |    | log_throttle_queries_not_using_indexes | 0                                    |    | log_warnings                          | 1                                    |    +----------------------------------------+---------------------------------------+三、常用binlog日志操作命令

    1.查看全体binlog日志列表

      mysql> show master logs;

    2.翻看master状态,即最终(最新)二个binlog日志的号码名称,及其最终三个操作事件pos甘休点(Position)值

      mysql> show master status;

    3.刷新log日志,今后刻始于产生二个新编号的binlog日志文件

      mysql>flush logs;

      注:每当mysqld服务重启时,会自动施行此命令,刷新binlog日志;在mysqldump备份数据时加 -F 选项也会刷新binlog日志;

    4.重置(清空)所有binlog日志

      mysql>reset master;

四、查看有些binlog日志内容,常用有二种形式:

    1.运用mysqlbinlog自带查看命令法:

      注: binlog是二进制文件,普通文书查看器cat more vi等都爱莫能助开垦,必得选用自带的 mysqlbinlog 命令查看

          binlog日志与数据库文件在同目录中(作者的条件布置安装是筛选在/usr/local/mysql/data中)

      在MySQL5.5之下版本选择mysqlbinlog命令时假设报错,就增加“--no-defaults”选项

      # /usr/local/mysql/bin/mysqlbinlog /usr/local/mysql/data/mysql-bin.000013        上面截取一个有个别深入分析:

        ...............................................................................# at 552#131128 17:50:46 server id 1  end_log_pos 665  Query  thread_id=11    exec_time=0    error_code=0 ---->推行时间:17:50:46;pos点:665SET TIMESTAMP=1385632246/*!*/;

        update zyyshop.stu set name='李四' where id=4              ---->执行的SQL

        /*!*/;

        # at 665#131128 17:50:46 server id 1  end_log_pos 692  Xid = 1454 ---->实行时间:17:50:46;pos点:692 ...............................................................................        注: server id 1    数据库主机的服务号;

            end_log_pos 665 pos点

            thread_id=11    线程号

    2.方面这种模式读抽出binlog日志的全文内容很多,不轻便辨别查看pos点音信,这里介绍后生可畏种特别有支持的查询命令:

      mysql> show binlog events [IN 'log_name'] [FROMpos] [LIMIT [offset,] row_count];

            选项解析:

              IN 'log_name'  钦定要查询的binlog文件名(不点名便是率先个binlog文件)

              FROM pos        钦定从哪些pos初始点最早查起(不钦点正是从整个文件第七个pos点初始算)

              LIMIT [offset,] 偏移量(不钦命正是0)

              row_count      查询总条数(不点名就是全数行)

            截取部分查询结果:

            *************************** 20. row ***************************                Log_name:mysql-bin.000021  ----------------------------------------------> 查询的binlog日志文件名

                    Pos: 11197 ----------------------------------------------------------> pos起始点:              Event_type: Query ----------------------------------------------------------> 事件类型:Query

              Server_id: 1 --------------------------------------------------------------> 标记是由哪台服务器试行的

            End_log_pos: 11308 ----------------------------------------------------------> pos结束点:11308(即:下行的pos起始点)

                    Info:use`zyyshop`; INSERT INTO `team2` VALUES (0,345,'asdf8er5') ---> 执行的sql语句

            *************************** 21. row ***************************                Log_name:mysql-bin.000021Pos: 11308 ----------------------------------------------------------> pos起始点:11308(即:上行的pos结束点)

              Event_type: Query

              Server_id: 1            End_log_pos: 11417                    Info:use`zyyshop`;/*!40000 ALTER TABLE `team2` ENABLE KEYS */*************************** 22. row ***************************                Log_name:mysql-bin.000021Pos: 11417              Event_type: Query

              Server_id: 1            End_log_pos: 11510                    Info:use`zyyshop`; DROP TABLEIF EXISTS `type`

      那条语句能够将钦命的binlog日志文件,分成有效事件行的措施赶回,并可利用limit内定pos点的最先偏移,查询条数;

      A.查询第四个(最初)的binlog日志:

        mysql> show binlog eventsG;

      B.内定询问mysql-bin.000021 那些文件:

        mysql> show binlog events in 'mysql-bin.000021'G;

      C.钦命查询mysql-bin.000021 那个文件,从pos点:8224方始查起:

        mysql> show binlog events in 'mysql-bin.000021' from 8224G;

      D.钦赐询问mysql-bin.000021 这些文件,从pos点:8224开始查起,查询10条

        mysql> show binlog events in 'mysql-bin.000021' from 8224 limit 10G;

      E.钦定询问mysql-bin.000021 这几个文件,从pos点:8224开首查起,偏移2行,查询10条

        mysql> show binlog events in 'mysql-bin.000021' from 8224 limit 2,10G;

五、苏醒binlog日志实验(zyyshop是数据库)

    1.假使现行反革命是晚上4:00,小编的安顿职务从前施行二次完整的数据库备份:

      将zyyshop数据库备份到 /root/BAK.zyyshop.sql 文件中:

      # /usr/local/mysql/bin/mysqldump -uroot -p123456 -lF --log-error=/root/myDump.err -B zyyshop > /root/BAK.zyyshop.sql......        差不离过了多少分钟,备份达成了,作者毫无忧虑数据遗失了,因为自个儿有备份了,嘎嘎~~~      由于自家动用了-F选项,当备份专门的学业刚初始时系统会刷新log日志,发生新的binlog日志来记录备份之后的数据库“增加和删除改”操作,查看一下:

      mysql> show master status;

      +------------------+----------+--------------+------------------+      |File| Position | Binlog_Do_DB | Binlog_Ignore_DB |      +------------------+----------+--------------+------------------+      |mysql-bin.000023 |      120 |              |                  |      +------------------+----------+--------------+------------------+      约等于说, mysql-bin.000023 是用来记录4:00以后对数据库的享有“增加和删除改”操作。

    2.早9:00上班了,业务的供给会对数据库进行各个“增加和删除改”操作~~~      @ 比方:创立八个学员表并插入、修正了数量等等:

        CREATE TABLE IF NOT EXISTS `tt` (

          `id` int(10) unsigned NOTNULLAUTO_INCREMENT,          `name` varchar(16) NOTNULL,          `sex` enum('m','w') NOTNULLDEFAULT'm',          `age` tinyint(3) unsigned NOTNULL,          `classid` char(6)DEFAULTNULL,          PRIMARY KEY (`id`)

        ) ENGINE=InnoDBDEFAULTCHARSET=utf8;

      导入实验数据

      mysql> insert into zyyshop.tt(`name`,`sex`,`age`,`classid`) values('yiyi','w',20,'cls1'),('xiaoer','m',22,'cls3'),('zhangsan','w',21,'cls5'),('lisi','m',20,'cls4'),('wangwu','w',26,'cls6');

      查看数据

      mysql> select * from zyyshop.tt;

      +----+----------+-----+-----+---------+      | id | name    | sex | age | classid |      +----+----------+-----+-----+---------+      |  1 | yiyi    | w  |  20 | cls1    |      |  2 | xiaoer  | m  |  22 | cls3    |      |  3 | zhangsan | w  |  21 | cls5    |      |  4 | lisi    | m  |  20 | cls4    |      |  5 | wangwu  | w  |  26 | cls6    |      +----+----------+-----+-----+---------+      深夜时分又举办了修正数据操作

      mysql> update zyyshop.tt set name='李四' where id=4;

      mysql> update zyyshop.tt set name='小二' where id=2;

      改过后的结果:

      mysql> select * from zyyshop.tt;

      +----+----------+-----+-----+---------+      | id | name    | sex | age | classid |      +----+----------+-----+-----+---------+      |  1 | yiyi    | w  |  20 | cls1    |      |  2 | 小二    | m  |  22 | cls3    |      |  3 | zhangsan | w  |  21 | cls5    |      |  4 | 李四    | m  |  20 | cls4    |      |  5 | wangwu  | w  |  26 | cls6    |      +----+----------+-----+-----+---------+      假使当时是上午18:00,莫名地试行了一条悲催的SQL语句,整个数据库都没了:

      mysql> drop database zyyshop;

    3.此刻杯具了,别慌!先留心查看最终四个binlog日志,并记下下第风姿罗曼蒂克的pos点,到底是哪些pos点的操作引致了数据库的毁损(常常在最终几步);

      备份一下结尾一个binlog日志文件:

      # ll /usr/local/mysql/data | grep mysql-bin# cp -v /usr/local/mysql/data/mysql-bin.000023 /root/      那个时候实践一回刷新日志索引操作,重新起始新的binlog日志记录文件,理论说 mysql-bin.000023 那么些文件不会再有继续写入了(便于大家分析原因及寻找pos点),今后全体数据库操作都会写入到下叁个日记文件;

      mysql>flush logs;

      mysql> show master status;

    4.读取binlog日志,剖析难点

      方式一:使用mysqlbinlog读取binlog日志:

        # /usr/local/mysql/bin/mysqlbinlog  /usr/local/mysql/data/mysql-bin.000023      方式二:登陆服务器,并查看(推荐):

        mysql> show binlog events in 'mysql-bin.000023';

        以下为终极片段:

        +------------------+------+------------+-----------+-------------+------------------------------------------------------------+        | Log_name        |Pos| Event_type | Server_id | End_log_pos | Info                                                      |        +------------------+------+------------+-----------+-------------+------------------------------------------------------------+        |mysql-bin.000023 |  922 | Xid        |        1 |        953 | COMMIT/* xid=3820 */|        |mysql-bin.000023 |  953 | Query      |        1 |        1038 | BEGIN                                                      |        |mysql-bin.000023 | 1038 | Query      |        1 |        1164 |use`zyyshop`; update zyyshop.tt set name='李四' where id=4|        |mysql-bin.000023 | 1164 | Xid        |        1 |        1195 | COMMIT/* xid=3822 */|        |mysql-bin.000023 | 1195 | Query      |        1 |        1280 | BEGIN                                                      |        |mysql-bin.000023 | 1280 | Query      |        1 |        1406 |use`zyyshop`; update zyyshop.tt set name='小二' where id=2|        |mysql-bin.000023 | 1406 | Xid        |        1 |        1437 | COMMIT/* xid=3823 */|        |mysql-bin.000023 | 1437 | Query      |        1 |        1538 | drop database zyyshop                                      |        +------------------+------+------------+-----------+-------------+------------------------------------------------------------+        通过深入分析,变成数据库破坏的pos点区间是在于 1437--1538 之间,只要恢复生机到1437前就可。

    5.现行反革命把上午备份的数据复苏:

      # /usr/local/mysql/bin/mysql -uroot -p123456 -v < /root/BAK.zyyshop.sql;      注: 至此结束当日清晨(4:00)前的备份数据都恢复生机了。

          但后天一全日(4:00--18:00)的数码咋办吧?就得从前文提到的mysql-bin.000023 新日志做小说了......    6.从binlog日志恢复生机数据

      恢复生机语法格式:

      # mysqlbinlog mysql-bin.0000xx | mysql -u客户名 -p密码 数据库名        常用选项:

          --start-position=953                  起始pos点

          --stop-position=1437                  结束pos点

          --start-datetime="二〇一一-11-29 13:18:54" 最初时间点

          --stop-datetime="二〇一三-11-29 13:21:53"  甘休时间点

          --database=zyyshop                    钦命只回复zyyshop数据库(风度翩翩台主机上数次有四个数据库,只限本地log日志)

        不时用选项:   

          -u --user=name              Connect to the remote serverasusername.连接到远程主机的客户名

          -p --password[=name]        Password to connect to remote server.连接到远程主机的密码

          -h --host=name              Get the binlog from server.从远程主机上获得binlog日志

          --read-from-remote-server  Read binary logs from aMySQLserver.从有个别MySQL服务器上读取binlog日志

      小结:实际是将读出的binlog日志内容,通过管道符传递给mysql命令。那个命令、文件尽量写成相对路线;

      A.完全恢复生机(本例不可靠,因为最终那条 drop database zyyshop 也在日记里,必得想方法把那条破坏语句消除掉,做一些苏醒)

        # /usr/local/mysql/bin/mysqlbinlog  /usr/local/mysql/data/mysql-bin.000021 | /usr/local/mysql/bin/mysql -uroot -p123456 -v zyyshop      B.钦点pos截止点复苏(部分恢复生机):

        @ --stop-position=953 pos结束点

        注:此pos停止点介于“导入实验数据”与改过“name='李四'”之间,这样可以苏醒到校正“name='李四'”以前的“导入测验数据”

        # /usr/local/mysql/bin/mysqlbinlog --stop-position=953 --database=zyyshop /usr/local/mysql/data/mysql-bin.000023 | /usr/local/mysql/bin/mysql -uroot -p123456 -v zyyshop     

        在另风姿洒脱极限登入查看结果(成功恢复生机了):

        mysql> select * from zyyshop.tt;

        +----+----------+-----+-----+---------+        | id | name    | sex | age | classid |        +----+----------+-----+-----+---------+        |  1 | yiyi    | w  |  20 | cls1    |        |  2 | xiaoer  | m  |  22 | cls3    |        |  3 | zhangsan | w  |  21 | cls5    |        |  4 | lisi    | m  |  20 | cls4    |        |  5 | wangwu  | w  |  26 | cls6    |        +----+----------+-----+-----+---------+      C.钦命pso点区间回复(部分复苏):

        更新 name='李四' 那条数据,日志区间是Pos[1038] --> End_log_pos[1164],按职业区间是:Pos[953] --> End_log_pos[1195];

        更新 name='小二' 这条数据,日志区间是Pos[1280] --> End_log_pos[1406],按专门的学业区间是:Pos[1195] --> End_log_pos[1437];

        c1.单身苏醒 name='李四' 那步操作,可那样:

          # /usr/local/mysql/bin/mysqlbinlog --start-position=1038 --stop-position=1164 --database=zyyshop  /usr/local/mysql/data/mysql-bin.000023 | /usr/local/mysql/bin/mysql -uroot -p123456 -v zyyshop          也足以按职业区间单独复苏,如下:

          # /usr/local/mysql/bin/mysqlbinlog --start-position=953 --stop-position=1195 --database=zyyshop  /usr/local/mysql/data/mysql-bin.000023 | /usr/local/mysql/bin/mysql -uroot -p123456 -v zyyshop        c2.独门苏醒 name='小二' 那步操作,可这般:

          # /usr/local/mysql/bin/mysqlbinlog --start-position=1280 --stop-position=1406 --database=zyyshop  /usr/local/mysql/data/mysql-bin.000023 | /usr/local/mysql/bin/mysql -uroot -p123456 -v zyyshop   

          也能够按专业区间单独苏醒,如下:

          # /usr/local/mysql/bin/mysqlbinlog --start-position=1195 --stop-position=1437 --database=zyyshop  /usr/local/mysql/data/mysql-bin.000023 | /usr/local/mysql/bin/mysql -uroot -p123456 -v zyyshop        c3.将 name='李四'、name='小二' 多步操作一齐过来,需求按事务区间,可这么:

          # /usr/local/mysql/bin/mysqlbinlog --start-position=953 --stop-position=1437 --database=zyyshop  /usr/local/mysql/data/mysql-bin.000023 | /usr/local/mysql/bin/mysql -uroot -p123456 -v zyyshop      D.在另风华正茂极端登陆查看前段时间结果(两名称也回涨了):

        mysql> select * from zyyshop.tt;

        +----+----------+-----+-----+---------+        | id | name    | sex | age | classid |        +----+----------+-----+-----+---------+        |  1 | yiyi    | w  |  20 | cls1    |        |  2 | 小二    | m  |  22 | cls3    |        |  3 | zhangsan | w  |  21 | cls5    |        |  4 | 李四    | m  |  20 | cls4    |        |  5 | wangwu  | w  |  26 | cls6    |        +----+----------+-----+-----+---------+      E.也可内定时期间距苏醒(部分恢复生机):除了用pos点的点子开展回复,也得以通过点名时间隔绝进行还原,定期间回复需求用mysqlbinlog命令读取binlog日志内容,找时间节点。

        例如,小编把刚复苏的tt表删除掉,再用时间隔离点过来

        mysql> drop table tt;

        @ --start-datetime="2012-11-29 13:18:54"  起先时间点

        @ --stop-datetime="二零一二-11-29 13:21:53"  停止时间点

        # /usr/local/mysql/bin/mysqlbinlog --start-datetime="2012-11-29 13:18:54" --stop-datetime="二〇一二-11-29 13:21:53" --database=zyyshop /usr/local/mysql/data/mysql-bin.000021 | /usr/local/mysql/bin/mysql -uroot -p123456 -v zyyshop      计算:所谓复苏,正是让mysql将保存在binlog日志中钦命段落区间的sql语句每一个重新推行三次而已。

本文由 数据库发布,转载请注明来源:主干认知