Home > Database > Mysql Tutorial > body text

mysql5.5主从同步配置(semi_sync)

WBOY
Release: 2016-06-07 16:41:32
Original
1154 people have browsed it

好久不折腾mysql主从了,发现5.5交之前的版本,配置上有些变化,趁着夜深人静,重温一下,顺便简单记录一下配置过程。 主从同步 master端配置 修改 my.cnf 文件 12345678910 vim /etc/my.cnf[mysqld]server-id = 1log-bin = mysql-binbinlog_format = mixede

好久不折腾mysql主从了,发现5.5交之前的版本,配置上有些变化,趁着夜深人静,重温一下,顺便简单记录一下配置过程。

主从同步

master端配置

  1. 修改my.cnf文件
1
2
3
4
5
6
7
8
9
10
Copy after login
Copy after login
Copy after login
vim /etc/my.cnf
[mysqld]
server-id = 1
log-bin = mysql-bin
binlog_format = mixed
expire-logs-days = 7
binlog-do-db = luxtarget
binlog-ignore-db = mysql
replicate-do-db = luxtarget
replicate-ignore-db = mysql
Copy after login
Copy after login
  1. 新建授权复制用户

    1
    2
    
    Copy after login
    grant replication slave on *.* to 'slave'@'xxx.xxx.xxx.xxx' identified by 'slave';
    flush privileges;
    
    Copy after login
  2. 重启mysql

    1
    
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    service mysqld restart
    
    Copy after login
    Copy after login
    Copy after login
    Copy after login
  3. 锁定数据库,将数据打包并拷贝至slave

    1
    
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    flush tables with read lock;
    
    Copy after login
  4. 查看master上二进制日志情况,记录FilePosition

    1
    
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    show master status;
    
    Copy after login
  5. 当数据打包拷贝完毕,解除锁定;

    1
    
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    ublock tables;
    
    Copy after login

    当数据较大时,将数据打包备份比使用mysqldump导入时效率更高

slave端配置

  1. 修改my.cnf文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    Copy after login
    Copy after login
    Copy after login
    vim /etc/my.cnf
    [mysqld]
    server-id = 2
    log-bin = mysql-bin
    binlog_format = mixed
    expire-logs-days = 7
    binlog-do-db = luxtarget
    binlog-ignore-db = mysql
    replicate-do-db = luxtarget
    replicate-ignore-db = mysql
    
    Copy after login
  2. 重启mysql

    1
    
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    service mysqld restart
    
    Copy after login
    Copy after login
    Copy after login
    Copy after login
  3. 将从master拷贝来的数据导入slave

  4. 连接master开始同步

    1
    2
    3
    4
    5
    
    Copy after login
    change master to master_host='xxx.xxx.xxx.xxx',master_user='slave',master_password='slave',master_log_file='master-bin.xxxxxx,master_log_pos=xxx;
    start slave;
    show slave status\G;
    
    Copy after login

    当Slave_IO_Running与Slave_SQL_Running的状态都为Running时即可。

半同步配置

master端配置

  1. 安装mysql半同步插件

    1
    2
    3
    
    Copy after login
    INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
    SET GLOBAL rpl_semi_sync_master_enabled = 1;
    SET GLOBAL rpl_semi_sync_master_timeout = 1000;
    
    Copy after login
  2. 修改my.cnf文件

    1
    2
    3
    4
    
    Copy after login
    Copy after login
    vim /etc/my.cnf
    [mysqld]
    rpl_semi_sync_master_enabled=1 #启用半同步
    rpl_semi_sync_master_timeout=1000 #超时时间为1s
    
    Copy after login
  3. 重启mysql

    1
    
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    service mysqld restart
    
    Copy after login
    Copy after login
    Copy after login
    Copy after login

slave端配置

  1. 安装mysql半同步插件

    1
    2
    3
    4
    
    Copy after login
    Copy after login
    INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
    SET GLOBAL rpl_semi_sync_slave_enabled = 1;
    STOP SLAVE IO_THREAD;
    START SLAVE IO_THREAD;
    
    Copy after login
  2. 修改my.cnf文件

    1
    
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    rpl_semi_sync_slave_enabled=1  #启用半同步复制
    
    Copy after login
  3. 重启mysql

    1
    
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    Copy after login
    service mysqld restart
    
    Copy after login
    Copy after login
    Copy after login
    Copy after login

检查配置

  1. master

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    Copy after login
    SHOW GLOBAL STATUS LIKE 'rpl_semi%';
    +--------------------------------------------+-------+
    | Variable_name                              | Value |
    +--------------------------------------------+-------+
    | Rpl_semi_sync_master_clients               | 1     |
    | Rpl_semi_sync_master_net_avg_wait_time     | 0     |
    | Rpl_semi_sync_master_net_wait_time         | 0     |
    | Rpl_semi_sync_master_net_waits             | 0     |
    | Rpl_semi_sync_master_no_times              | 0     |
    | Rpl_semi_sync_master_no_tx                 | 0     |
    | Rpl_semi_sync_master_status                | ON    |
    | Rpl_semi_sync_master_timefunc_failures     | 0     |
    | Rpl_semi_sync_master_tx_avg_wait_time      | 0     |
    | Rpl_semi_sync_master_tx_wait_time          | 0     |
    | Rpl_semi_sync_master_tx_waits              | 0     |
    | Rpl_semi_sync_master_wait_pos_backtraverse | 0     |
    | Rpl_semi_sync_master_wait_sessions         | 0     |
    | Rpl_semi_sync_master_yes_tx                | 0     |
    +--------------------------------------------+-------+
    14 rows in set (0.00 sec)
    
    Copy after login
  2. slave

    1
    2
    3
    4
    5
    6
    7
    
    Copy after login
    mysql> SHOW GLOBAL STATUS LIKE 'rpl_semi%';
    +----------------------------+-------+
    | Variable_name              | Value |
    +----------------------------+-------+
    | Rpl_semi_sync_slave_status | ON    |
    +----------------------------+-------+
    1 row in set (0.01 sec)
    
    Copy after login

好久不折腾mysql主从了,发现5.5交之前的版本,配置上有些变化,趁着夜深人静,重温一下,顺便简单记录一下配置过程。

主从同步

master端配置

  1. 修改my.cnf文件
1
2
3
4
5
6
7
8
9
10
Copy after login
Copy after login
Copy after login
vim /etc/my.cnf
[mysqld]
server-id = 1
log-bin = mysql-bin
binlog_format = mixed
expire-logs-days = 7
binlog-do-db = luxtarget
binlog-ignore-db = mysql
replicate-do-db = luxtarget
replicate-ignore-db = mysql
Copy after login
Copy after login
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template