mysql主主复制 缺点_MySQL主主复制

主动-主动模式的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)来创建管理这种拓扑结构。

整理自网络

Svoid

2015-02-02

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值