mysql 半同步 主主_mysql主从和mysql主主和半同步复制

一、准备(主从都需要配置):

yum -y install mysql mysql-server#安装mysql

yum -y install ntpdate#安装时间同步

echo ‘*/1 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null‘ >>/var/spool/cron/root#配置网络时间同步

service mysqld start#启动服务

chkconfig --add mysqld#添加为系统服务

chkconfig  mysqld on#开启默认运行级别

二、主服务器配置:主配置文件默认为:/etc/my.cnf

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

symbolic-links=0

log-bin=master-bin#开启二进制日志文件

server-id=1#设置服务器id,保证全局唯一

sync-binlog=1            #全局唯一的server-id

innodb-flush-logs-at-trx-commit=1

innodb-support-xa=1

service mysqld restart#重启动服务

mysql> show global variables like ‘%server%‘;      #数据库id

mysql> show master logs;      #查看数据库二进制日志

mysql> show master status;    #查看主服务器状态,记住二进制日志名,配置从服务器会用

mysql> grant replication slave,replication client on *.* to  ‘copy‘@‘192.168.0.50‘ identified by ‘123.com‘;

#授权192.168.0.50主机上的copy用户对所有库有复制权限

mysql> select Host,User,Password from mysql.user;#查看用户

三、从服务器配置:

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

symbolic-links=0

relay-log=slave-log#启用中继日志

server-id=10#服务器id,全局唯一

read-only=1#将服务器设置为只读模式(对拥有root权限的用户无效)

service mysqld restart#重启动服务

mysql> change master to master_host=‘192.168.0.10‘,master_user=‘copy‘,

master_password=‘123.com‘,master_log_file=‘master-bin.000001‘,master_log_pos=590;

master_host                #主服务器地址

master_user                #拥有复制权限的用户

master_password            #密码

master_log_file            #从哪个二进制日志开始复制

master_log_pos             #从二进制日志的什么位置开始复制

mysql> start slave;#开启从服务器

mysql> show slave status\G;#查看从服务器状态

四、验证主从:

主服务器:

mysql> create database db_test;#创建数据库

从服务器:

mysql> show databases;    #查看服务器是否同步

五、主主复制

服务器A:

[mysqld]#添加内容

log-bin=master-bin#启用二进制日志

relay-log=slave-log#启用中继日志

server-id=1#服务器id,全局唯一

auto-increment-offset=1#自增列起始

auto-increment-increment=2#自增列一次步进(例:1,3,5,7,9...)

mysql> grant replication slave,replication client on *.* to  ‘copy‘@‘192.168.0.50‘ identified by ‘123.com‘;

mysql> change master to master_host=‘192.168.0.50‘,master_user=‘copy‘,

master_password=‘123.com‘,master_log_file=‘master-bin.000001‘,master_log_pos=106;

mysql> start slave;

mysql> show slave status\G;

服务器B:

[mysqld]#添加内容

log-bin=master-bin

relay-log=slave-log

server-id=10

auto-increment-offset=2#自增列起始

auto-increment-increment=2#自增列一次步进(例:2,4,6,8,10...)

mysql> grant replication slave,replication client on *.* to  ‘copy‘@‘192.168.0.10‘ identified by ‘123.com‘;

mysql> change master to master_host=‘192.168.0.10‘,master_user=‘copy‘,

master_password=‘123.com‘,master_log_file=‘master-bin.000003‘,master_log_pos=106;

mysql> start slave;

mysql> show slave status\G;

六、半同步复制

要想使用半同步复制,必须满足以下几个条件:

1. MySQL 5.5及以上版本

2. 变量have_dynamic_loading为YES

3. 异步复制已经存在

主:

mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME ‘semisync_master.so‘;#安装插件

mysql> show plugins;#查看插件是否安装成功

mysql> SET GLOBAL rpl_semi_sync_master_enabled = 1;#启用半同步

mysql> show status like ‘Rpl_semi_sync_master_status‘;#查看是否在运行

从:

mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME ‘semisync_slave.so‘;#安装插件

mysql> show plugins;

mysql> SET GLOBAL rpl_semi_sync_slave_enabled = 1;#启用半同步

mysql> STOP SLAVE#关闭复制线程

mysql> START SLAVE #开启复制线程

mysql> show status like ‘Rpl_semi_sync_slave_status‘;#查看是否在运行

mysql> show variables like ‘%Rpl%‘;#查看和半同步相关的服务器变量

rpl_semi_sync_master_enabled#是否启用半同步

rpl_semi_sync_master_timeout#等待超时时间

rpl_semi_sync_master_wait_for_slave_count

#需要等待多少个slave应答,才能返回给客户端

mysql> show status like ‘%Rpl_semi%‘;#半同步状态

Rpl_semi_sync_master_clients#当前半同步复制从的个数

七、和复制相关的文件

从节点:

master.info:用于保存slave连接至master时的相关信息(账号,密码,服务器地址,复制的二进制文件等)

relay-log.info:保存当前slave节点上已经复制到的二进制文件位置,和relay-log的位置

原文:http://hongchen99.blog.51cto.com/12534281/1936473

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值