mysql 半同步复制
2012-12-05 19:49
162 查看
mysql 半同步复制
实验环境
rhel 5.8 + mysql-5.5.28-linux2.6-i686.tar.gz
主 172.16.111.1
从 172.16.111.123
先确保可以正常启动
默认情况下,MySQL5.5 的复制功能是异步的,这意味着当谈到数据一致性时,主服务器及其从服务器是独立的。异步复制可以提供最佳的性能,因为主服务器在将更新的数据写入它的二进制日志(Binlog)文件中后,无需等待验证更新数据是否已经复制到至少一台拓扑从服务器中,就可以自由处理其它进入的事务处理请求。虽然快,但这也同时带来了很高的风险,如果在主服务器或从服务器端发生故障,会造成主服务器/从服务器数据的不一致,甚至在恢复时造成数据丢失。
配置
将半同步复制模块载入mysql
模块位置 /usr/local/mysql/lib/plugin
semisync_master.so 主服务器安装的
semisync_slave.so 从服务安装的
主服务器设置:
mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
载入模块至主服务器mysql
mysql> SET GLOBAL rpl_semi_sync_master_enabled = 1;
启用半同步复制模块
mysql> SET GLOBAL rpl_semi_sync_master_timeout = 1000;
设置超时时间 这里为1000毫秒
从服务器设置:
mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
mysql> SET GLOBAL rpl_semi_sync_slave_enabled = 1;
指定模块并启用
show plugins; 查看模块加载状况
| PERFORMANCE_SCHEMA | ACTIVE | STORAGE ENGINE | NULL | GPL |
| partition | ACTIVE | STORAGE ENGINE | NULL | GPL |
| rpl_semi_sync_master | ACTIVE | REPLICATION | semisync_master.so | GPL |
+--------------------------+----------+--------------------+--------------------+---------+
可以看到模块在组后一行 已经载入
show status like 'rpl_%'; 查看以rpl打头的 状态变量信息
主服务上
mysql> show status like 'rpl_%';
+--------------------------------------------+-------------+
| 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 |
| Rpl_status | AUTH_MASTER |
+--------------------------------------------+-------------+
15 rows in set (0.00 sec)
从服务器上
mysql> show status like 'rpl_%';
+----------------------------+-------------+
| Variable_name | Value |
+----------------------------+-------------+
| Rpl_semi_sync_slave_status | ON |
| Rpl_status | AUTH_MASTER |
+----------------------------+-------------+
2 rows in set (0.00 sec)
都已经启动了
查看主服务器上的semi_sync是否开启,注意clients 变为1 ,证明主从半同步复制连接成功
mysql> 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 |
也可将命令写入my.cnf配置文件 使其永久有效
主服务区上
[mysqld]
rpl_semi_sync_master_enabled=1
rpl_semi_sync_master_timeout=1000
从服务器
[mysqld]
rpl_semi_sync_slave_enabled=1
read-only=1 从服务器只具有被读的权限 不可写入
可以在主配置文件中指定复制哪些数据库 或哪些表
关键字
replicate_do_db='kaka' (白名单)只复制kaka这个数据库
rpplicate_ignore_db='kaka' (黑名单)kaka这个数据库之外的都复制
replicate_do_table (白名单)指定表
replicate_ignore_table (黑名单)
本文出自 “vincekey” 博客,请务必保留此出处http://vincekey.blog.51cto.com/815438/1079692
实验环境
rhel 5.8 + mysql-5.5.28-linux2.6-i686.tar.gz
主 172.16.111.1
从 172.16.111.123
先确保可以正常启动
默认情况下,MySQL5.5 的复制功能是异步的,这意味着当谈到数据一致性时,主服务器及其从服务器是独立的。异步复制可以提供最佳的性能,因为主服务器在将更新的数据写入它的二进制日志(Binlog)文件中后,无需等待验证更新数据是否已经复制到至少一台拓扑从服务器中,就可以自由处理其它进入的事务处理请求。虽然快,但这也同时带来了很高的风险,如果在主服务器或从服务器端发生故障,会造成主服务器/从服务器数据的不一致,甚至在恢复时造成数据丢失。
配置
将半同步复制模块载入mysql
模块位置 /usr/local/mysql/lib/plugin
semisync_master.so 主服务器安装的
semisync_slave.so 从服务安装的
主服务器设置:
mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
载入模块至主服务器mysql
mysql> SET GLOBAL rpl_semi_sync_master_enabled = 1;
启用半同步复制模块
mysql> SET GLOBAL rpl_semi_sync_master_timeout = 1000;
设置超时时间 这里为1000毫秒
从服务器设置:
mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
mysql> SET GLOBAL rpl_semi_sync_slave_enabled = 1;
指定模块并启用
show plugins; 查看模块加载状况
| PERFORMANCE_SCHEMA | ACTIVE | STORAGE ENGINE | NULL | GPL |
| partition | ACTIVE | STORAGE ENGINE | NULL | GPL |
| rpl_semi_sync_master | ACTIVE | REPLICATION | semisync_master.so | GPL |
+--------------------------+----------+--------------------+--------------------+---------+
可以看到模块在组后一行 已经载入
show status like 'rpl_%'; 查看以rpl打头的 状态变量信息
主服务上
mysql> show status like 'rpl_%';
+--------------------------------------------+-------------+
| 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 |
| Rpl_status | AUTH_MASTER |
+--------------------------------------------+-------------+
15 rows in set (0.00 sec)
从服务器上
mysql> show status like 'rpl_%';
+----------------------------+-------------+
| Variable_name | Value |
+----------------------------+-------------+
| Rpl_semi_sync_slave_status | ON |
| Rpl_status | AUTH_MASTER |
+----------------------------+-------------+
2 rows in set (0.00 sec)
都已经启动了
查看主服务器上的semi_sync是否开启,注意clients 变为1 ,证明主从半同步复制连接成功
mysql> 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 |
也可将命令写入my.cnf配置文件 使其永久有效
主服务区上
[mysqld]
rpl_semi_sync_master_enabled=1
rpl_semi_sync_master_timeout=1000
从服务器
[mysqld]
rpl_semi_sync_slave_enabled=1
read-only=1 从服务器只具有被读的权限 不可写入
可以在主配置文件中指定复制哪些数据库 或哪些表
关键字
replicate_do_db='kaka' (白名单)只复制kaka这个数据库
rpplicate_ignore_db='kaka' (黑名单)kaka这个数据库之外的都复制
replicate_do_table (白名单)指定表
replicate_ignore_table (黑名单)
本文出自 “vincekey” 博客,请务必保留此出处http://vincekey.blog.51cto.com/815438/1079692
相关文章推荐
- mysql主从复制的异步复制与同步复制
- MySQL5.7 设置同步复制过滤不用重启mysql服务进程了
- mysql半同步复制实现
- MySQL主主以及主从复制、半同步复制
- MySQL的主从复制、半同步复制、主主复制详解
- 深入解析半同步与异步的MySQL主从复制配置
- mysql主从复制实现数据库同步
- 运维工程师必备之MySQL数据的主从复制、半同步复制和主主复制详解
- MySQL的主从复制与半同步复制
- mysql主从复制实现数据库同步
- MySQL5.6一主多从的半同步复制实例 推荐
- Mysql实现数据库主从复制、主主复制、半同步复制
- 初识 MySQL 5.5 半同步复制
- mysql 5.5中的半同步复制
- mysql主从复制--mysql-5.5异步、半同步配置
- mysql主从复制异步半同步实例
- mysql5.5主从复制-半同步复制
- Mysql双向同步复制
- MySQL5.6 GTID模式 同步复制跳过报错解决方法
- 搭建mysql半同步复制(Semisynchronous Replication)