双机热备的概念简单说一下,就是要保持两个数据库的状态自动同步。对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库数据一致。 这样做的好处多。 1. 可以做灾备,其中一个坏了可以切换到另一个。 2. 可以做负载均衡,可以将请求分摊到其中任何一台上,提高网站吞吐量。 对于异地热备,尤其适合灾备。废话不多说了。我们直接进入主题。 我们会主要介绍两部分内容:
主主同步配置
1.sql序列(服务器,产生序列号=id)
配置路径:/data/3306|3307/my.cnf
3306:配置
#________m-m m1 start________
auto_increment_increment = 2
auto_increment_offset = 1 这里设置为1,我们创建的id就是以1.3.5
log-slave-updates
log-bin
expire_logs_days = 7
3307:配置
auto_increment_increment = 2
auto_increment_offset = 2
这里设置为2,我们创建的id就是以2.4.6log-slave-updates
expire_logs_days = 7
log-bin = /data/3307/mysql-bin
主库插入数据
CREATE TABLE `test` (
`id` bigint(12) NOT NULL auto_increment COMMENT '主键',
`name` varchar(12) NOT NULL COMMENT '姓名',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
创建完成,我们查看结果
以后我们主库设置的字段为1.代表1.3.5
我们将数据导入到另一台主库3307
shell>mysqldump -uroot -p123456 -S /data/3307/mysql.sock -A -B --events -x --master-data=1|gzip >/opt/bak.sql.gz
将数据导入到3307
shell>gzip -d bak.sql.gz
shell>mysql -uroot -p123546 -S /data/3306/mysql.sock </opt/bak.sqk.gz
导入完成设置mast.info
CHANGE MASTER TO
MASTER_HOST=’172.16.1.51′,
MASTER_PORT=3307
MASTER_USER=’rep’,
MASTER_PASSWORD=’123456′;
启动
start slave
show slave status;
就形成了双主模式