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

  • 时间:
  • 浏览:2
  • 来源:5分排列3_5分排列3官网

semisync_master.so

| Rpl_semi_sync_master_tx_wait_time          | 2797020 |

最后,你们歌词 来看看同样的命令在从库会而且 哪几种信息

15 rows in set (0.00 sec)

2

12

13

2

5

[root@pingtest1 ~]

看上去还是比较不错,主从的数据一致性得到很大的提高,而且 延时统统 含糊,统统 牺牲性能来提高一致性的问題报告 了.

        .

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

Rpl_semi_sync_master_status:    是与否启用了半同步(有完后 可能性网络超时因为切去掉 异步)。

3

13

| Rpl_semi_sync_master_net_wait_time         | 3788497 |

也正如我刚才说的,统统信息基本上这么,不到最后一行是不一样的,也统统 证明从库半同步正常连接中.

| Rpl_semi_sync_master_no_times              | 0       |

mysql> show plugins;

| rpl_semi_sync_slave_trace_level    | 32       |

mysql> start slave IO_THREAD;

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

| Rpl_semi_sync_master_status                | OFF   |

10

mysql> show plugins;

介绍

而且 到从库,slave要重启动IO多系统进程 来生效,而且 还是异步的最好的措施群克隆数据

5.7.3新加了2个半同步参数,大约有N个slave接收到日志,而且 返回ack,类事 半同步事务都还可以 提交,默认是1。当类事 值设置到和从库数量相等搞笑的话,则效果会等同于全同步群克隆。

    光看文字难免而且 虚,还可以 看看下面的图片来大致了解一下,

1

13

| rpl_semi_sync_master_enabled       | ON       |

去看一下相关文件夹:

20

4

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

| rpl_semi_sync_slave_enabled        | ON       |

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

不过我还是得负责任的讲句,在极端的状态下,还是可能性会丢而且 数据的,统统定期做主从数据校验还是有必要的,类事使用PT工具哪几种的,至于为哪几种,类事 不仿而且 你们歌词 思考一下,而对于大事务来说,半同步也是比较无力的状态,性能损耗较大.

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

| Variable_name                      | Value    |

23

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

3

2

20

而且 你们歌词 现在现在开始 准备安装的事情:

你们歌词 留意里面的数字,

3

5

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

3

21

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

mysql> show plugins;

8

也来看看解析:

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

mysql> show status like '%Rpl_semi_sync%';

8

| Rpl_semi_sync_master_wait_sessions         | 0       |

2

1

| Rpl_semi_sync_master_net_wait_time         | 0     |

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

解释2个重要的值。

19

| rpl_stop_slave_timeout             | 315330000 |

总用量 25328

6

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

| Rpl_semi_sync_master_yes_tx                | 0     |

| Rpl_semi_sync_master_tx_waits              | 0     |

| Rpl_semi_sync_master_wait_pos_backtraverse | 0     |

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

1

| rpl_semi_sync_master_timeout       | 300000    |

10

| Rpl_semi_sync_master_tx_avg_wait_time      | 0     |

17

| Variable_name                      | Value    |

15

mysql> stop slave IO_THREAD;

1

| Rpl_semi_sync_master_net_waits             | 300077    |

3

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

3

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

        .

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

rpl_semi_sync_master_enabled:    显示是与否已开启半同步机制

7

| Rpl_semi_sync_master_yes_tx                | 300077    |

2

29

8

12

先检查下有这么装

rpl_semi_sync_master_wait_no_slave = 0

rpl_semi_sync_slave_enabled:    是与否开启了从库半同步

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

18

mysql> show variables like '%Rpl%';

| Rpl_semi_sync_master_status                | ON      |

| Rpl_semi_sync_master_clients               | 0     |

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

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

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

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

16

下面来看看怎么还可以安装使用半同步,大累积mysql有一种并这么预装半同步的组件,时需另外安装,而且 一般mysql的包里面会自带so文件,统统假如手动加载一下就还可以 用了.

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

13

2

rpl_semi_sync_master | ACTIVE | REPLICATION | semisync_master.so | GPL

8

mysql> set global rpl_semi_sync_master_enabled = on;

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

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

1

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

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

主库很简单,假如设置一下半同步启动就还可以 了.

2

12

17

21

7 rows in set (0.00 sec)

10

300

4

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

3

1 row in set (0.00 sec)

15

3

| rpl_semi_sync_master_timeout       | 300000    |

下面现在现在开始 正式安装:

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

| Rpl_semi_sync_master_net_avg_wait_time     | 0     |

第四部,一并提交给各从库,等待的图片 完成,

| rpl_stop_slave_timeout             | 315330000 |

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

32

| Rpl_semi_sync_slave_status                 | ON    |

| Variable_name                              | Value   |

| Variable_name                              | Value |

4

rpl_semi_sync_master_wait_no_slave:    是与否允许master 每个事物提交后有的是等待的图片 slave的receipt信号。默认为on ,每2个事务后该等待的图片 ,可能性slave当掉后,当slave追赶上master的日志时,还可以 自动的切换为半同步最好的措施,可能性为off,则slave追赶上后,统统 会采用半同步的最好的措施群克隆了,时需手工配置。

2

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

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

15 rows in set (0.00 sec)

2

11

mysql> show variables like '%Rpl%';

9

11

        .

7

19

7 rows in set (0.00 sec)

| Rpl_semi_sync_master_no_tx                 | 0       |

| rpl_semi_sync_master_wait_no_slave | ON       |

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

20

mysql> show variables like 'plugin_dir';

4

1

2

1

9

而当半同步群克隆设置N个slave应答,可能性当前Slave小于N,取决于rpl_semi_sync_master_wait_no_slave的设置。

3

7

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

16

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

| Rpl_semi_sync_master_no_tx                 | 0     |

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

15

    主库实际上不用关心从库是与否把数据拉完这么,统统 关心从库有这么把数据写进硬盘入库,反正数据丢过去,让从库当时人慢慢跑,而实际上这统统必影响主库任何使用的状态.

1

| Rpl_semi_sync_master_timefunc_failures     | 0     |

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

24

1

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

1

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

rpl_semi_sync_master_timeout:    Master等待的图片 slave响应的时间,单位是毫秒,默认值是10秒,超过类事 时间,slave无响应,将自动转换为异步群克隆,可能性探测到从库恢复后,又从新进入半同步状态

| rpl_semi_sync_master_enabled       | OFF      |

| Rpl_semi_sync_master_tx_waits              | 4552    |

| Rpl_semi_sync_master_tx_wait_time          | 0     |

1

| rpl_semi_sync_master_trace_level   | 32       |

11

再看看类事

| Rpl_semi_sync_master_no_times              | 0     |

毫无问題报告 ,哪几种参数都能通过配置文件或直接set来更改,假如你着实类事 适合你的需求,类事一般你们歌词 会把响应时间设成1秒.

    细心的人就会发现,类事 状态下,假如主库临时挂了,binlog还没传输完毕,即使是集群统统 能保证说这挂了完后 的数据一致性,可能性你不到排除别人在主库是正常提交的,而从库这么数据的状态.

rpl_semi_sync_master_wait_for_slave_count = 2

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

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

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

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

| Rpl_semi_sync_master_net_avg_wait_time     | 746     |

14

| Variable_name | Value                              |

7

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

3

mysql> show status like '%Rpl_semi_sync%';

2

超时时间rpl_semi_sync_master_timeout的值,不应该短过应用(类事JDBC)连接池或多系统进程 池的超时时间,原本应用可能性出显老会 等待的图片 可能性是抛出异常的问題报告 。

6

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

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

安装使用

14

下面来验证一下是与否成功,以下是主库的信息,可能性从库统统信息是这么的.

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

| Rpl_semi_sync_master_tx_avg_wait_time      | 614     |

10

6

rpl_stop_slave_timeout:    控制stop slave 的执行时间,在重放2个大的事务的完后 ,老会 执行stop slave ,命令 stop slave会执行但是,类事 完后 可能性产生死锁或阻塞,严重影响性能,还可以 通过类事 参数控制stop slave 的执行时间,一般不时需修改.

18

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

7

2

5

3

第五部,从库返回状态给主库,标记已完成,半同步只时需2个从库返回就还可以 ,而且 会转成异步

第三部,事务在主库外理完毕,发生待完成状态,等待的图片 最终完成,

4

5

21

4

从库当然也要做

4

                * 16:detail 等级,记录更加全版的信息 

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

12

就看里面的解析,大约你也知道我类事 状态是正常的了.而且 延时类别的,你们歌词 得看实际状态.

1

1

18

6

| Rpl_semi_sync_master_clients               | 1       |

1

8

27

25

6

31

12

| rpl_semi_sync_slave_enabled        | OFF      |

| rpl_semi_sync_master_wait_no_slave | ON       |

16

| rpl_semi_sync_master_trace_level   | 32       |

14

来看看你们歌词 能设置些哪几种关于半同步的参数

9

9

5

10

mysql> set global rpl_semi_sync_slave_enabled = on;

2

6

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

| Rpl_semi_sync_master_timefunc_failures     | 0       |

5

2

4

5

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

5

4

主要就最后两行:

2

26

rpl_semi_sync_slave  | ACTIVE | REPLICATION | semisync_slave.so  | GPL

4

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

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

1

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

    看上去,数据一致性是外理了,而且 呢,每个事务的延时就增大了,可能性是大事务搞笑的话,就更惨,这得看网络带宽单位还可以 顶得住,不然延时更低,性能更差.

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

13

22

11

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

11

| rpl_semi_sync_slave_trace_level    | 32       |

问題报告 汇总

rpl_semi_sync_master_wait_no_slave = 1

就看下面2个,统统 半同步的组件了,2个是主库组件,2个是从库组件,而且 你2个都装上可能性只装2个.

当然,你也还可以 写到配置文件,不过写到配置文件要重启才生效,而且 时需重新加载组件,统统这就没意思了.

    而且 在某个位面的时间上,有的是人提出同步群克隆的概念,意思统统 说,假如从库没写入,主库就不返回完成,类事 完后 即使主库挂了,这也统统 2个未完成的事务,从库统统 会记录,能保证数据一致性.

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

8

| Rpl_semi_sync_master_wait_pos_backtraverse | 0       |

semisync_slave.so

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

    先了解一下mysql的主从群克隆是哪几种回事,你们歌词 都知道,mysql主从群克隆是基于binlog的群克隆最好的措施,而mysql默认的主从群克隆最好的措施,着实是异步群克隆.

同样你都还可以 写到配置文件,而且 你过多说了,反正这就启动完毕了.

第一部,客户端提交sql搞笑的话,

| Rpl_semi_sync_master_wait_sessions         | 0     |

17

5

| Rpl_semi_sync_slave_status                 | OFF     |

7

    原本做着实延时还是有,而且 比起全版的同步最好的措施还是好过多,对于数据一致性要求高的状态,牺牲性能来换取一定的价值,是在所难免的.

rpl_semi_sync_master_wait_point = AFTER_SYNC

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

28

1

19

set global rpl_semi_sync_master_timeout = 3000000

9

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

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

    最后,在mysql5.5完后 ,半同步就提出来了,意思统统 说,每个事务的群克隆,大约保证2个从库可能性收到了binlog,主库才返回事务完成,但不时需理会从库是与否写入硬盘.

| Rpl_semi_sync_master_net_waits             | 0     |