欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux下MySQL主从复制(二)

程序员文章站 2024-03-20 21:17:58
...

MySQL的一主多从模式

原理结构图

Linux下MySQL主从复制(二)

配置步骤

1.主服务器:

 1. 改变server id
 2. 启用二进制日志文件
 3. 创建具有复制的用户

具体操作请看:http://www.crazyrui.pw:8088/index.php/2017/07/23/linux_mysql_savle_1/

2.第一个从服务器配置


 1. 改变server id
 2. 启用relay_log
 3. 连接主服务器
     mysql>change master to MASTER_HOST="IP",MASTER_USER="USER",MASTER_PASSWORD="PASSWORD",MASTER_LOG_BIN="",MASTER_LOG_PAS="";
 4. 开始同步
     mysql>start slave;

怎么才能知道MASTER_LOG_BIN和MASTER_LOG_PASd的值?
主服务器中使用show slave status\G;
Linux下MySQL主从复制(二)

3.替他服务器的配置

其他服务器的配置和第一个服务器的配置是一样的

MySQL的半同步复制方式

1.原理

    客户端提交数据与主服务器,主服务器将数据同步道从服务器中,只要从服务器中其中一个同步完成,向主服务器回复一个消息,主服务器再向客户端回复一个消息。
    即就是,客户端给主服务器提交数据,主服务器将数据同步与多个从服务器,多个从服务器中的某一个执行完成后,给主服务器返回一个消息,主服务器在向客户端返回一个消息。

2.前提条件

要想使用半同步复制,必须满足以下几个条件:
 1. MySQL 5.5及以上版本
 2. 变量have_dynamic_loading为YES
 3. 异步复制已经存在

3.主服务器配置


 1. 改变server id
 2. 启用二进制日志文件
 3. 创建具有复制的用户
 4. 安装插件
    mysql> install plugin rpl_semi_sync_master soname 'semisync_master.so'
 5. 开启半同步复制:
    mysql> SET GLOBAL rpl_semi_sync_master_enabled = 1;

Linux下MySQL主从复制(二)

4.从服务器配置

 1. 改变server id
 2. 启用relay_log
 3. 安装插件
    mysql>  install plugin rpl_semi_sync_slave soname 'semisync_slave.so';
 4. 连接主服务器
     mysql>change master to MASTER_HOST="IP",MASTER_USER="USER",MASTER_PASSWORD="PASSWORD",MASTER_LOG_BIN="",MASTER_LOG_PAS="";

 5. 开启半同步模式:
    mysql> SET GLOBAL rpl_semi_sync_slave_enabled = 1
 6. 开始同步
     mysql>start slave;

Linux下MySQL主从复制(二)

Linux下MySQL主从复制(二)

复制过滤器

怎么才能使用主从复制只备份数据库中的个别表呢?

第一种方法:
    在主服务器进行过滤
    原理:在主服务器上过滤记入二进制日志文件中的信息,实现数据库的过滤
    在配置文件中,加入以下几行
    binlog_do_db=数据库             //进行白名单
    binlog_ignore_db=           //进行黑名单
第二种方法:
    在从服务器上进行过滤
    原理:利用sql thread线程进行过滤,表示只采用那个库的日志。
    在配置文件中,加入以下几行

    replicate_do_db=       //进行数据库过滤白名单
    replicate_ignore_db=    //进行数据库过滤黑名单

    replicate_do_table=db.tbname     //进行数据库中的表过滤
    replicate_ignore_table=db.tbname

    通配符过滤
    replicate_wild_do_table=
    replicate_wild_ignore_table=