首页 > 代码库 > Linux下MySQL主从复制(二)
Linux下MySQL主从复制(二)
MySQL的一主多从模式
原理结构图
配置步骤
1.主服务器:
1. 改变server id 2. 启用二进制日志文件 3. 创建具有复制的用户123123
具体操作请看: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;
3.替他服务器的配置
其他服务器的配置和第一个服务器的配置是一样的11
MySQL的半同步复制方式
1.原理
客户端提交数据与主服务器,主服务器将数据同步道从服务器中,只要从服务器中其中一个同步完成,向主服务器回复一个消息,主服务器再向客户端回复一个消息。 即就是,客户端给主服务器提交数据,主服务器将数据同步与多个从服务器,多个从服务器中的某一个执行完成后,给主服务器返回一个消息,主服务器在向客户端返回一个消息。
2.前提条件
要想使用半同步复制,必须满足以下几个条件: 1. MySQL 5.5及以上版本 2. 变量have_dynamic_loading为YES 3. 异步复制已经存在12341234
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;123456789123456789
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;
复制过滤器
怎么才能使用主从复制只备份数据库中的个别表呢?
第一种方法: 在主服务器进行过滤 原理:在主服务器上过滤记入二进制日志文件中的信息,实现数据库的过滤 在配置文件中,加入以下几行 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=
顶
0
踩
Linux下MySQL主从复制(二)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。