设为首页 加入收藏

TOP

MySQL/MariaDB数据库主从复制(二)
2015-11-10 12:17:31 来源: 作者: 【 】 浏览:7
Tags:MySQL/MariaDB 数据库 主从 复制
rt slave IO_THREAD


MariaDB [(none)]> start slave SQL_THREAD


从服务器上查看运行状况:


MySQL/MariaDB数据库主从复制MySQL/MariaDB数据库主从复制


相关线程已经启动,其中Seconds_Behind_Master显示了从服务器落后主服务器的时间,这个变量是通过当前服务器时间戳和二进制日志中事件的时间戳对比得到的(null为从库没有处于运行状态,0也有可能是复制中断了,这个参数经供参考)


在主服务器上可同过show slave hosts查看与自己同步的从服务器:


MySQL/MariaDB数据库主从复制


实现半同步复制


半同步就是主服务器上数据发生了更改,需要等待至少一个从节点把数据完整地复制过去,才能继续后续的操作。半同步功能是以插件的方式提供能,要启用此功能需要先安装插件。该插件位于mariadb安装目录下的lib/plugin目录中,登入数据库后直接安装即可。


主节点上安装插件


MariaDB [(none)]> install plugin rpl_semi_sync_master soname 'semisync_master.so';


在配置文件中添加如下几项:


rpl_semi_sync_master_enabled = 1


rpl_semi_sync_master_timeout = 1000



重启服务后查看相关变量:


MariaDB [(none)]> show global variables like '%semi%';


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


| Variable_name? ? ? ? ? ? ? ? ? ? ? | Value |


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


| rpl_semi_sync_master_enabled? ? ? | ON? ? |


| rpl_semi_sync_master_timeout? ? ? | 1000? |


| rpl_semi_sync_master_trace_level? | 32? ? |


| rpl_semi_sync_master_wait_no_slave | ON? ? |


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


从节点上安装插件


MariaDB [(none)]> install plugin rpl_semi_sync_slave soname 'semisync_slave.so';



在配置文件中添加:


rpl_semi_sync_slave_enabled = 1



重启服务后查看相关变量:


MariaDB [(none)]> show global variables like '%semi%';


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


| Variable_name? ? ? ? ? ? ? ? ? | Value |


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


| rpl_semi_sync_slave_enabled? ? | ON? ? |


| rpl_semi_sync_slave_trace_level | 32? ? |


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


该功能已启用.................^_^


双主复制架构


实验环境:node1(192.168.1.106),node2(192.168.1.126)


配置双主模型是需要注意几点:



? ? (1) 双方节点都得创建具有复制权限用户;



? ? (2) 双节点都得启用中继日志和二进制日志;


? ? (3) 为保证具有自动增长功能的字段能正确生成ID,需要配置两个节点分别使用偶数或奇数ID号;


? ? (4) 都要把对方配置为自己的主节点;


node1上配置文件:


[root@node1 ~]# vim /etc/mysql/my.cnf


log-bin = /data/binlog/master-bin


binlog_format = row


datadir = /data/mydata


sync_binlog = 1


autocommit = off


relay-log = /data/relaylog/relay-log? ? #中继日志存放位置


innodb_support_xa = 1


sync_master_info = 1


sync_relay_log = 1


sync_relay_log_info = 1


auto-increment-increment = 2? ? ? ? ? ? #自增长的间隔


auto-increment-offset = 1? ? ? ? ? ? ? #自增长起始值


slave_parallel_threads = 3


log_slave_updates = 1? ? ? ? ? ? ? ? ? #开启从库更新操作写入二进制日志功能


server-id? ? ? = 1



node2上配置文件(除了下面3项其余的与node1上的配置一致):


[root@node1 ~]# vim /etc/mysql/my.cnf


.......


.......


auto-increment-increment = 2


auto-increment-offset = 2


server-id? ? ? = 2


在node1和node2上都创建具有复制权限的用户:


MariaDB [(none)]> grant replication slave,replication client on *.* to repuser@'192.168.1.%' identified by 'repuser';


Query OK, 0 rows affected (0.00 sec)


MariaDB [(none)]> flush privileges;


查看node1和node2上当前数据库二进制日志文件所处的位置:


MariaDB [(none)]> show master status;


在node1上主服务器指向node2:


MariaDB [(none)]> change master to master_host='192.168.1.126',master_user='repuser',master_password='repuser',master_log_file='master-bin.000004',master_log_pos=657;


在node2上主服务器指向node1:


MariaDB [(none)]> change master to master_host='192.168.1.106',master_user='repuser',master_password='repuser',master_log_file='master-bin.000004',master_log_pos=657;


最后启动I/O线程和SQL线程:


MariaDB [(none)]> start slave;


node1(192.168.1.106)上查看从节点状态:


MySQL/MariaDB数据库主从复制


node2(192.168.1.126)上查看从节点状态:


MySQL/MariaDB数据库主从复制


在双主模型中应用半同步功能,需要在两个节点上都安装插件,并配置主从相关的参数。


配置完成.................^_^


--------------------------------------分割线 --------------------------------------


--------------------------------------分割线 ----------------

首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇服务器意外断电后MySQL无法启动 下一篇Oracle GoldenGate 学习教程二、..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: