MySQL主主复制
2015-03-15 20:47
459 查看
主动-主动模式的Master-Master(Master-Master in Active-Active Mode)
Master-Master复制也叫双主服务器复制或双向复制,包含两台服务器,既是master,又是另一台服务器的slave。这样,任何一方所做的变更,都会通过复制应用到另外一方的数据库中。修改配置文件 db1 =========================================================== server_id = 31 log-bin = mysql-info auto_increment_increment=2 auto_increment_offset=1 log_slave_updates = 1 =========================================================== db2 =========================================================== server_id = 32 log-bin = mysql-info auto_increment_increment=2 auto_increment_offset=2 log_slave_updates = 1 =========================================================== 创建复制用户,两台均执行 mysql> grant replication slave on *.* to 'repluser'@'192.168.90.%' identified by 'mypass'; 查看指定同步位置,两台均执行 mysql> show master status ; mysql> change master to master_host=host,master_user='repluser',master_password='mypass', -> master_log_file='master_log_file',master_log_pos=master_log_file_pos; 启动查看复制正常运行 mysql> start slave; mysql> show slave status \G ... Slave_IO_Running: Yes Slave_SQL_Running: Yes ... 验证主主复制 [db1] mysql> create table mm(id int(11) primary key auto_increment,name varchar(10)); mysql> insert into mm value(null,'db1'),(null,'db1'),(null,'db1'); Query OK, 3 rows affected (0.01 sec) Records: 3 Duplicates: 0 Warnings: 0 [db2] mysql> insert into mm value(null,'db2'),(null,'db2'),(null,'db2'); Query OK, 3 rows affected (0.01 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql> select * from mm; +----+------+ | id | name | +----+------+ | 1 | db1 | | 3 | db1 | | 5 | db1 | | 6 | db2 | | 8 | db2 | | 10 | db2 | +----+------+ 6 rows in set (0.00 sec) [db1] mysql> insert into mm value(null,'db1'); Query OK, 1 row affected (0.01 sec) [db2] mysql> insert into mm value(null,'db1'); Query OK, 1 row affected (0.01 sec) mysql> select * from mm; +----+------+ | id | name | +----+------+ | 1 | db1 | | 3 | db1 | | 5 | db1 | | 6 | db2 | | 8 | db2 | | 10 | db2 | | 11 | db1 | | 12 | db2 | +----+------+ 8 rows in set (0.00 sec)
主动的Master-Master复制缺点:
主动的Master-Master复制最大的问题就是更新冲突
假设一个表只有一行(一列)的数据,其值为1,如果两个服务器分别同时执行如下语句:
在第一个服务器上执行:
mysqlUPDATE tbl SET col=col + 1;
在第二个服务器上执行:
mysqlUPDATE tbl SET col=col * 2;
那么结果是多少呢?一台服务器是4,另一个服务器是3,但是,这并不会产生错误。
如果某一方写入频繁,某一方写入很少,会造成大量的键空间浪费。
主动-被动模式的Master-Master(Master-Master in Active-Passive Mode)
这是master-master结构变化而来的,它避免了M-M的缺点,实际上,这是一种具有容错和高可用性的系统。它的不同点在于其中一个服务只能进行只读操作。这种配置可以轻易的来回交换主动服务器与被动服务器的角色,这是故障转移恢复就容易了,他可以在不关闭MySQL服务器的情况执行维护、升级表、升级操作系统及其他任务。可以使用MySQL主主复制管理工具(MySQL Master-Master Replication Manager)来创建管理这种拓扑结构。整理自网络
Svoid2015-02-02
相关文章推荐
- MySQL主主复制
- MySQL主主以及主从复制、半同步复制
- MySQL主从复制、半同步和主主复制的实现
- MySQL主主(master-master)复制
- mysql5.6下主主复制的配置实现
- mysql主主、主从复制详解 推荐
- MySQL数据的主从复制、半同步复制和主主复制详解
- MySQL5.5主主复制配置方法及测试结果
- 带从服务器的MySql主主复制之二
- Mysql 生产库主主复制配置步骤
- 带从服务器的MySql主主复制之一
- 构建heartbeat+mysql+master+ldirectord构建高可用的MYSQL主主复制
- Mysql主主复制
- mysql主主、主从复制详解
- MySQL主主复制配置
- MySQL主主复制
- 构建Mysql主主复制架构
- MySQL的复制(主主及主从架构的实现)
- MySQL5.5主主复制配置方法及测试
- MySql主主复制