Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7497664
  • 博文数量: 368
  • 博客积分: 9600
  • 博客等级: 上校
  • 技术积分: 18875
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-01 00:00
文章分类

全部博文(368)

文章存档

2017年(9)

2016年(19)

2015年(3)

2014年(6)

2013年(8)

2012年(78)

2011年(66)

2010年(135)

2009年(44)

分类: LINUX

2010-04-13 14:22:57


Mysql主主复制

一、环境描述

服务器A   192.168.1.108

       服务器B   192.168.1.110

       Mysql版本:5.1.26

       System OSCentOS release 5.4

 

二、主主配置过程

       1、创建同步用户:

              服务器A

         grant replication slave,file on *.* to 'replication'@'192.168.1.110' identified by '123456';

flush privileges;

服务器B

grant replication slave,file on *.* to 'replication'@'192.168.1.108' identified by '123456';

flush privileges;

2、修改mysql配置文件

       A

log-bin=mysql-bin
server-id       = 1
binlog-do-db=test
binlog-ignore-db=mysql
replicate-do-db=test
replicate-ignore-db=mysql
log-slave-updates
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=1

       B

log-bin=mysql-bin
server-id       = 2
binlog-do-db=test
binlog-ignore-db=mysql
replicate-do-db=test
replicate-ignore-db=mysql
log-slave-updates
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=2

 


参数选项说明:
log-slave-updates    将执行的复制sql记录到二进制日志

sync_binlog  当有二进制日志写入binlog文件的时候,mysql服务器将它同步到磁盘上
auto_increment_increment,auto_increment_offset 主要用于主主复制中,用来控制AUTO_INCREMENT列的操作

      

       3、重启mysql服务后,进入mysql命令行,执行操作如下:

              A:

              mysql> flush tables with read lock;

              mysql> show master status\G

*************************** 1. row ***************************

            File: mysql-bin.000028

            Position: 866

                   Binlog_Do_DB: test

Binlog_Ignore_DB: mysql

1 row in set (0.00 sec)

         mysql> unlock tables;

              mysql> stop slave;

mysql> change master to master_host='192.168.1.110',master_user='replication',master_password='123456',master_log_file='mysql-bin.000014', master_log_pos=704;

              mysql> start slave;

             

              B

              mysql> flush tables with read lock;

              mysql> show master status\G

*************************** 1. row ***************************

            File: mysql-bin.000014

            Position: 704

                   Binlog_Do_DB: test

Binlog_Ignore_DB: mysql

1 row in set (0.00 sec)

         mysql> unlock tables;

              mysql> stop slave;

mysql> change master to master_host='192.168.1.108',master_user='replication',master_password='123456',master_log_file='mysql-bin.000028', master_log_pos=866;

              mysql> start slave;

 

       4、查看各服务器的状态:

              mysql> show slave status\G;

              出现:Slave_IO_Running: Yes

              Slave_SQL_Running: Yes

              则状态正常,直接测试数据能否同步就OK了!
阅读(13101) | 评论(2) | 转发(4) |
给主人留下些什么吧!~~

飞鸿无痕2012-10-09 15:37:33

zhangshengdong: auto_increment_increment,auto_increment_offset
这个主主结构,程序那边会出现问题,如果update同一条数据,且并发出现,数据会出现问题。.....
update同一条数据会有什么问题呢? 说说看。不过主主同步架构不建议两边都执行数据写入,一般说的主主同步架构都是单边写入的,另外一边提供高可用或者只提供给程序读。

zhangshengdong2012-10-09 15:28:56

auto_increment_increment,auto_increment_offset
这个主主结构,程序那边会出现问题,如果update同一条数据,且并发出现,数据会出现问题。