关于Mysql5.6半同步主从复制的开启方法

  • 时间:
  • 浏览:0
  • 来源:万人牛牛APP下载_万人牛牛官方

第三部,事务在主库处置完毕,存在待完成具体情况,等待最终完成,

19

    有之前 在某个位面的时间上,都有 人提出同步qq克隆好友 的概念,意思本来说,假使 从库没写入,主库就不返回完成,你你你這個完后 即使主库挂了,这也本来一一4个未完成的事务,从库本来会记录,能保证数据一致性.

6

15

让我们让我们 留意顶端的数字,

2

总用量 25328

1

mysql> show variables like 'plugin_dir';

5

| plugin_dir    | /usr/local/mysql/lib/mysql/plugin/ |

| Rpl_semi_sync_master_no_tx                 | 0       |

8

3

10

17

rpl_semi_sync_master_wait_point = AFTER_SYNC

4

| Variable_name | Value                              |

3

安装完了,就现在现在之前 刚开始准备启动了,

同样你可不还里能写到配置文件,但是不想 说了,反正这就启动完毕了.

-rwxr-xr-x 1 root root    39169 3月   4 01:18 libdaemon_example.so

20

400

-rwxr-xr-x 1 root root    134007 3月   4 01:18 auth_socket.so

1

11

4

+------------------------------------+----------+

7 rows in set (0.00 sec)

| Rpl_semi_sync_master_timefunc_failures     | 0     |

13

-rwxr-xr-x 1 root root    13877 3月   4 01:18 qa_auth_server.so

mysql> show plugins;

5

12

看后顶端的解析,最少你也知道我你你你這個具体情况是正常的了.其他延时类别的,让我们让我们 得看实际具体情况.

10

| Rpl_semi_sync_master_wait_pos_backtraverse | 0       |

+--------------------------------------------+---------+

-rwxr-xr-x 1 root root    27048 3月   4 01:18 libfnv1a_udf.so

mysql> set global rpl_semi_sync_slave_enabled = on;

1

8

2

4

        .

1

    细心的人就会发现,你你你這個具体情况下,假使 主库临时挂了,binlog还没传输完毕,即使是集群本来能保证说这挂了完后 的数据一致性,有之前 你可不还里能排除别人在主库是正常提交的,而从库这麼数据的具体情况.

mysql> show variables like '%Rpl%';

7

不过我还是得负责任的讲句,在极端的具体情况下,还是有之前 会丢其他数据的,好多好多 定期做主从数据校验还是有必要的,类式使用PT工具哪几种的,至于为哪几种,你你你這個不仿但是们 思考一下,而对于大事务来说,半同步也是比较无力的具体情况,性能损耗较大.

13

drwxr-xr-x 2 root root     4096 3月   4 01:23 debug

17

9

当然,你可不还里里能写到配置文件,不过写到配置文件要重启才生效,有之前 还要重新加载组件,好多好多 这就没意思了.

2

        .

| rpl_semi_sync_master_trace_level   | 32       |

1

有之前 到从库,slave要重启动IO多多线程 来生效,有之前 还是异步的依据qq克隆好友 数据

1

-rwxr-xr-x 1 root root    45929 3月   4 01:18 auth_pam.so

| Rpl_semi_sync_master_tx_wait_time          | 2797020 |

4

3

2

+--------------------------------------------+---------+

-rw-r--r-- 1 root root      227 3月   3 21:27 daemon_example.ini

17

mysql> install plugin rpl_semi_sync_master soname 'semisync_master.so';

rpl_semi_sync_master_wait_no_slave = 1

6

从库当然也要做

1

    主库实际上暂且关心从库有无把数据拉完这麼,本来关心从库有这麼把数据写进硬盘入库,反正数据丢过去,让从库其他人慢慢跑,而实际上这也暂且影响主库任何使用的具体情况.

rpl_semi_sync_master_wait_no_slave:    有无允许master 每个事物提交后都有 等待slave的receipt信号。默认为on ,每一一4个事务都有等待,有之前 slave当掉后,当slave追赶上master的日志时,可不还里能自动的切换为半同步依据,有之前 为off,则slave追赶上后,本来会采用半同步的依据qq克隆好友 了,还要手工配置。

-rwxr-xr-x 1 root root    27406 3月   4 01:18 auth.so

15

介绍

rpl_semi_sync_master_timeout:    Master等待slave响应的时间,单位是毫秒,默认值是10秒,超过你你你這個时间,slave无响应,将自动转换为异步qq克隆好友 ,有之前 探测到从库恢复后,又从新进入半同步具体情况

16

20

13

| Rpl_semi_sync_master_tx_avg_wait_time      | 0     |

| Rpl_semi_sync_master_net_avg_wait_time     | 0     |

| Rpl_semi_sync_master_yes_tx                | 0     |

18

3

6

| rpl_semi_sync_slave_enabled        | OFF      |

8

11

第四部,一同提交给各从库,等待完成,

rpl_semi_sync_master_trace_level:    监控等级,一共一一4个等级(1,16,32,64)。

主库很简单,假使 设置一下半同步启动就可不还里能了.

                * 16:detail 等级,记录更加删剪的信息 

                * 32:net wait等级,记录含有有关网络等待的更多信息                 * 64:function等级,记录含有有关function进入和退出的更多信息

| Rpl_semi_sync_master_clients               | 0     |

6

+---------------+------------------------------------+

9

12

-rwxr-xr-x 1 root root   289069 3月   4 01:18 semisync_slave.so

-rwxr-xr-x 1 root root   5374009 3月   4 01:18 semisync_master.so

semisync_slave.so

第一部,客户端提交sql说说,

+--------------------------------------------+-------+

| rpl_semi_sync_master_wait_no_slave | ON       |

    最后,在mysql5.5完后 ,半同步就提出来了,意思本来说,每个事务的qq克隆好友 ,最少保证一一4个从库有之前 收到了binlog,主库才返回事务完成,但不还要理会从库有无写入硬盘.

3

3

26

安装使用

-rwxr-xr-x 1 root root    26229 3月   4 01:18 auth_test_plugin.so

13

| Variable_name                              | Value |

-rwxr-xr-x 1 root root    44095 3月   4 01:18 auth_pam_compat.so

1 row in set (0.00 sec)

2

[root@pingtest1 ~]

第六部,返回客户端,整个事务已完成.

| rpl_semi_sync_master_enabled       | ON       |

主要就最后两行:

4

rpl_semi_sync_master_wait_for_slave_count = 2

毫无大问题,哪几种参数都能通过配置文件或直接set来更改,假使 你之好多好多 你你你這個适合你的需求,类式一般让我们让我们 会把响应时间设成1秒.

10

| rpl_semi_sync_slave_trace_level    | 32       |

7

-rwxr-xr-x 1 root root  22124005 3月   4 01:18 handlersocket.so

+------------------------------------+----------+

21

5

Rpl_semi_sync_master_no_tx:    往slave发送失败的事务数量(最好暂且有)。

-rwxr-xr-x 1 root root   779519 3月   4 01:18 libmemcached.so

mysql> start slave IO_THREAD;

4

7

    先了解一下mysql的主从qq克隆好友 是哪几种回事,让我们让我们 都知道,mysql主从qq克隆好友 是基于binlog的qq克隆好友 依据,而mysql默认的主从qq克隆好友 依据,之好多好多 是异步qq克隆好友 .

7

也来看看解析:

| rpl_semi_sync_master_trace_level   | 32       |

-rwxr-xr-x 1 root root    27059 3月   4 01:18 qa_auth_interface.so

10

| Rpl_semi_sync_master_wait_sessions         | 0     |

-rwxr-xr-x 1 root root   184009 3月   4 01:18 audit_log.so

Rpl_semi_sync_master_yes_tx:    往slave发送成功的事务数量。

    光看文字难免其他虚,可不还里能看看下面的图片来大致了解一下,

8

11

1

    那我做之好多好多 延时还是有,有之前 比起删剪的同步依据还是好不想 ,对于数据一致性要求高的具体情况,牺牲性能来换取一定的价值,是在所难免的.

2

+--------------------------------------------+-------+

5.7.3新加了一一4个半同步参数,最少有N个slave接收到日志,有之前 返回ack,你你你這個半同步事务可不还里能提交,默认是1。当你你你這個值设置到和从库数量相等说说,则效果会等同于全同步qq克隆好友 。

第五部,从库返回具体情况给主库,标记已完成,半同步只还要一一4个从库返回就可不还里能,其他会转成异步

-rwxr-xr-x 1 root root   188402 3月   4 01:18 validate_password.so

4

-rwxr-xr-x 1 root root 149400125 3月   4 01:22 ha_tokudb.so

而当半同步qq克隆好友 设置N个slave应答,有之前 当前Slave小于N,取决于rpl_semi_sync_master_wait_no_slave的设置。

rpl_semi_sync_slave  | ACTIVE | REPLICATION | semisync_slave.so  | GPL

3

mysql> show plugins;

23

大问题汇总

1

| Rpl_semi_sync_master_yes_tx                | 40077    |

也正如我刚才说的,好多好多 信息基本上这麼,可不还里能最后一行是不一样的,也本来证明从库半同步正常连接中.

24

-rwxr-xr-x 1 root root    28683 3月   4 01:18 libmurmur_udf.so

| Variable_name                      | Value    |

先检查下有这麼装

1

| Rpl_semi_sync_master_wait_pos_backtraverse | 0     |

-rwxr-xr-x 1 root root   3959400 3月   4 01:18 query_response_time.so

5

9

| rpl_semi_sync_master_timeout       | 40000    |

mysql> show plugins;

6

有之前 让我们让我们 现在现在之前 刚开始准备安装的事情:

| Rpl_semi_sync_slave_status                 | OFF     |

31

2

5.7新功能,在控制半同步模式下 主库在返回给会话事务成功完后 提交事务的依据。旧模式是AFTER_COMMIT,新模式是AFTER_SYNC,默认值:AFTER_SYNC 。master 将每个事务写入binlog ,传递到slave,有之前 刷新到磁盘。master等待slave 反馈接收到事务并刷新到磁盘。一旦接到slave反馈,master在主库提交事务有之前 返回结果给会话。 在AFTER_SYNC模式下,所有的客户端在同一时刻查看有之前 提交的数据。假使 存在主库crash,所有在主库上有之前 提交的事务有之前 同步到slave并记录到relay log。此时切换到从库,可不还里能保障最小的数据损失。

3

| Variable_name                      | Value    |

2

| rpl_semi_sync_master_timeout       | 40000    |

11

+------------------------------------+----------+

29

9

22

Rpl_semi_sync_master_status:    有无启用了半同步(有完后 有之前 网络超时意味着切换成异步)。

rpl_semi_sync_master_enabled:    显示有无已开启半同步机制

     本文转自arthur376 51CTO博客,原文链接:http://blog.51cto.com/arthur376/18274008,如需转载请自行联系原作者

set global rpl_semi_sync_master_timeout = 400000

| Rpl_semi_sync_master_tx_avg_wait_time      | 614     |

+------------------------------------+----------+

5

2

-rwxr-xr-x 1 root root   357058 3月   4 01:18 tokudb_backup.so

-rwxr-xr-x 1 root root    16916 3月   4 01:18 adt_null.so

| Rpl_semi_sync_master_net_wait_time         | 3788497 |

| rpl_semi_sync_slave_enabled        | ON       |

| Rpl_semi_sync_master_status                | ON      |

2

-rwxr-xr-x 1 root root    17898 3月   4 01:18 mypluglib.so

| Rpl_semi_sync_master_no_times              | 0     |

21

来看看让我们让我们 能设置些哪几种关于半同步的参数

| Rpl_semi_sync_master_status                | OFF   |

+--------------------------------------------+-------+

14

+------------------------------------+----------+

mysql> show variables like '%Rpl%';

1

| Rpl_semi_sync_master_no_tx                 | 0     |

rpl_semi_sync_master | ACTIVE | REPLICATION | semisync_master.so | GPL

+--------------------------------------------+---------+

5

1

下面来验证一下有无成功,以下是主库的信息,有之前 从库好多好多 信息是这麼的.

27

rpl_semi_sync_slave_enabled:    有无开启了从库半同步

rpl_semi_sync_slave_trace_level:    监控等级,默认也是32

第二部,提交给存储引擎解析并处置数据修改,

mysql> show status like '%Rpl_semi_sync%';

19

28

rpl_semi_sync_master_wait_no_slave = 0

| Rpl_semi_sync_master_wait_sessions         | 0       |

| Rpl_semi_sync_master_clients               | 1       |

12

4

| rpl_semi_sync_slave_trace_level    | 32       |

下面现在现在之前 刚开始正式安装:

2

7

mysql> set global rpl_semi_sync_master_enabled = on;

mysql> stop slave IO_THREAD;

| Rpl_semi_sync_master_tx_wait_time          | 0     |

+---------------+------------------------------------+

| rpl_semi_sync_master_wait_no_slave | ON       |

2

12

超时时间rpl_semi_sync_master_timeout的值,不应该短过应用(类式JDBC)连接池或多多线程 池的超时时间,那我应用有之前 时不时冒出时不时等待有之前 是抛出异常的大问题。

-rwxr-xr-x 1 root root    12224 3月   4 01:18 mysql_no_login.so

19

| rpl_semi_sync_master_enabled       | OFF      |

1

3

semisync_master.so

-rwxr-xr-x 1 root root  4702357 3月   4 01:20 dialog.so

| Rpl_semi_sync_master_net_wait_time         | 0     |

7

-rwxr-xr-x 1 root root   834597 3月   4 01:18 innodb_engine.so

解释有几个重要的值。

mysql> show status like '%Rpl_semi_sync%';

13

9

4

18

| Rpl_semi_sync_master_tx_waits              | 0     |

5

8

rpl_stop_slave_timeout:    控制stop slave 的执行时间,在重放一一4个大的事务的完后 ,时不时执行stop slave ,命令 stop slave会执行但是,你你你這個完后 有之前 产生死锁或阻塞,严重影响性能,可不还里能通过你你你這個参数控制stop slave 的执行时间,一般不还要修改.

20

-rwxr-xr-x 1 root root    18574 3月   4 01:18 qa_auth_client.so

看上去还是比较不错,主从的数据一致性得到很大的提高,有之前 延时本来含糊,本来牺牲性能来提高一致性的大问题了.

5

mysql> install plugin rpl_semi_sync_slave soname 'semisync_slave.so';

Rpl_semi_sync_master_clients:    半同步模式下Slave一共有有几个个。

2

18

去看一下相关文件夹:

7 rows in set (0.00 sec)

2

32

下面来看看怎样才能安装使用半同步,大偏离 mysql并都有并这麼预装半同步的组件,还要另外安装,有之前 一般mysql的包顶端会自带so文件,好多好多 假使 手动加载一下就可不还里能用了.

3

+------------------------------------+----------+

| Variable_name                              | Value   |

14

12

21

| Rpl_semi_sync_master_tx_waits              | 4552    |

1

+---------------+------------------------------------+

                * 1:general 等级,如:记录时间函数失效 

6

| Rpl_semi_sync_master_net_avg_wait_time     | 746     |

        .

3

| Rpl_semi_sync_master_net_waits             | 40077    |

5

14

-rwxr-xr-x 1 root root    56417 3月   4 01:18 scalability_metrics.so

15

15 rows in set (0.00 sec)

看后下面一一4个,本来半同步的组件了,一一4个是主库组件,一一4个是从库组件,但是一一4个都装上有之前 只装一一4个.

| Rpl_semi_sync_master_net_waits             | 0     |

| Rpl_semi_sync_slave_status                 | ON    |

16

2

| rpl_stop_slave_timeout             | 315340000 |

1

-rwxr-xr-x 1 root root    27089 3月   4 01:18 libfnv_udf.so

8

11

1

15 rows in set (0.00 sec)

16

最后,让我们让我们 来看看同样的命令在从库会其他哪几种信息

25

| Rpl_semi_sync_master_timefunc_failures     | 0       |

4

再看看你你你這個

10

| Rpl_semi_sync_master_no_times              | 0       |

| rpl_stop_slave_timeout             | 315340000 |

    看上去,数据一致性是处置了,有之前 呢,每个事务的延时就增大了,有之前 是大事务说说,就更惨,这得看网络强度可不还里能顶得住,不然延时更低,性能更差.