b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

freepbx backup restore_backup and recovery_backup and replac(2)

电脑杂谈  发布时间:2017-06-07 12:00:53  来源:网络整理

我们把具体的general_log打开,然后看一下当时的操作:

4101044 Query FLUSH /!40101 LOCAL / TABLES

4101044 Query FLUSH TABLES WITH READ LOCK

(关闭所有打开的表,同时对于所有中的表都加一个读锁,直到显示地执行unlock tables,该操作常常用于数据备份的时候。)

4101044 Query SHOW MASTER STATUS

(这是因为我用了--master-data=2)

所以这个时候表就会被锁住。

如果我不加--master-data参数(mysqldump -uroot -pxx --databases db > /tmp/dbnamedate +%F.sql) mysql会显示的对每一张要备份的表执行 LOCK TABLES table_name1 READ,LOCK TABLES table_name2 READ ,并且也不会有读的阻塞。

那有没有不锁的方法,其实也是有的,就是使用--single-transaction把备份的操作放在一个事务里去进行。

带上--single-transaction参数的mysqldump备份过程:

如果是5.6版本的MySQL

在备份之间同样的先FLUSH TABLES WITH READ LOCK,然后设置事务级别SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ,然后开启一个事务START TRANSACTION进行备份,这个时候备份的过程就很意思,它先创建了一个savepoint,然后把里的表依次的进行备份,备份完成了之后又回滚到了之前的savepoint,来保证数据的一致性。

如果是5.7版本的MySQL

备份前的操作相同,只是没有了savepoint。

恢复操作:

先看一下当前的数据:

dbadmin@test 11:10:34>select * from t;

+-------+

| id |

+-------+

| 1 |

+-------+

1 row in set (0.00 sec)

备份;

mysqldump -uroot -proot@1234 --master-data=1 test >test.sql

模拟增量操作:

dbadmin@test 11:15:17>insert into t values (2);

Query OK, 1 row affected (0.00 sec)

dbadmin@test 11:15:36>select * from t; +------+ | id | +------+ | 1 | | 2 | +------+ 2 rows in set (0.00 sec)

模拟误操作:

dbadmin@test 11:15:41>truncate table t;

Query OK, 0 rows affected (0.01 sec)

dbadmin@test 11:16:14>select * from t;

Empty set (0.00 sec)

模拟恢复操作:

step 1:找到误操作的log position

dbadmin@test 11:20:57>show master logs;

dbadmin@(none) 11:21:37>show binlog events in 'mysql-bin.000004';


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shouji/article-51609-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 张航星
      张航星

      中国暂时不想把关系弄得太坏

    • 任玉莹
      任玉莹

      对于美国人对我岛礁建设提出的意见对我有利的将坚决采纳

    热点图片
    拼命载入中...