越简单越好!

Freebsd8.2下Mysql互备配置

发表于 2011-11-14 11:06 | 1529次阅读 0次点赞   Freebsd

一、两台服务器都作相应配置:

#mkdir -p /data/db/mysql

#cp /usr/local/share/mysql/my-small.cnf /etc/my.cnf

#chown -R mysql:mysql /data/db/mysql/

#vi /usr/local/etc/rc.d/mysql-server

修改mysql_dbdir="/data/db/mysql"

#vi /etc/rc.conf

加入mysql_enable="YES"

 

二、互备配置:

dbA:

#/usr/local/bin/mysql -uroot -p

GRANT REPLICATION SLAVE ON *.* TO 'backup'@'%' IDENTIFIED BY 'backup';

CREATE DATABASE `sync_db`;

#vi /etc/my.cnf

加上:

server-id = 1

log-bin=db1-mysql-bin

relay-log=db1-relay-bin

binlog-do-db=sync_db

replicate-do-db=sync_db

 

dbB:

#/usr/local/bin/mysql -uroot -p

GRANT REPLICATION SLAVE ON *.* TO 'backup'@'%' IDENTIFIED BY 'backup';

CREATE DATABASE `sync_db`;

#vi /etc/my.cnf

加上:

server-id = 2

log-bin=db2-mysql-bin

relay-log=db2-relay-bin

binlog-do-db=sync_db

replicate-do-db=sync_db

 

两台服务都重启Mysql

/usr/local/etc/rc.d/mysql-server stop

/usr/local/etc/rc.d/mysql-server start

 

dbA:

#/usr/local/bin/mysql -uroot -p

CHANGE MASTER TO

MASTER_HOST='192.168.100.52',

MASTER_USER='backup',

MASTER_PASSWORD='backup',

MASTER_LOG_FILE='db2-mysql-bin.000001',

MASTER_LOG_POS=107;

 

dbB:

#/usr/local/bin/mysql -uroot -p

CHANGE MASTER TO

MASTER_HOST='192.168.100.51',

MASTER_USER='backup',

MASTER_PASSWORD='backup',

MASTER_LOG_FILE='db1-mysql-bin.000001',

MASTER_LOG_POS=107;

 

### MASTER_LOG_FILE, MASTER_LOG_POS 是通过另外一台服务器的 show master status; 来获取的。

 

三、其它相关命令:

RESET MASTER;

SHOW MASTER STATUS;

SHOW MASTER LOGS;

RESET SLAVE;

SHOW SLAVE HOSTS;

SHOW SLAVE STATUS;

START SLAVE;

STOP SLAVE;

 

四、解决自增长ID重复问题

我们只要保证两台服务器上插入的自增长数据不同就可以了

如:dbA查奇数ID,dbB插偶数ID,当然如果服务器多的话,你可以定义算法,只要不同就可以了

在这里我们在dbA,dbB上加入参数,以实现奇偶插入

dbA:my.ini上加入参数

auto_increment_offset = 1

auto_increment_increment = 2

这样dbA的auto_increment字段产生的数值是:1, 3, 5, 7, …等奇数ID了

dbB:my.ini上加入参数

auto_increment_offset = 2

auto_increment_increment = 2

这样dbB的auto_increment字段产生的数值是:2, 4, 6, 8, …等偶数ID了

可以看出,你的auto_increment字段在不同的服务器之间绝对不会重复,所以Master-Master结构就没有任何问题了。


返回顶部 ^