mysql数据库提供自带的双机互备功能。所谓双机互备和双机热备的概念是不一致的,双机热备存在主从的概念,主机才能写,从机只能从主机上取数据;而双机互备是双机均可写,并且写入的数据会同步到对侧数据库中。
与oracle不同,mysql数据库的互备功能支持异构平台的mysql数据库。它的功能原理是将sql语句写一个二进制文件,然后对侧数据库读取该文件以获得差异,并在自己的数据库中实现同步。
鄙人从网络上查找到很多相同的操作步骤,均为修改mysql.ini文件,结果自己做时,修改完mysql.ini文件的mysql服务都起不来,报错码为00167,怀疑网络上同仁们到底自己有没有实践过,还是全部你抄抄我,我抄抄你。。。无语,这里提供一个我自己测试过的mysql配置方法,供参考:
一、配置要求:
两台主机A机 10.144.15.6;B机10.144.15.52;同步数据库名为backup,测试用表名为test,测试时,双机均为win机器;
二、配置单向的数据流:(配置B机向A机的传输)
1.在两台主机上安装mysql服务;
2.在两台主机上增加用户cai,密码cai
GRANT ALL PRIVILEGES ON *.* TO IDENTIFIED BY 'cai' WITH GRANT OPTION;
该操作只能在本机上进行;进行完成后可以远程登录进行测试;
找到mysql安装目录,在bin文件夹下找到mysql可执行程序,用命令登录对侧机器:
mysql -h10.144.15.52 -u cai -p 进行登录;
3.在两台主机上增加相应的数据库
GREATE database backup
4.在两台主机上增加相应的表
GREATE table test (
name VARCHAR(20) NOT NULL default '',
age int(3) unsigned NOT NULL,
PRIMARY KEY (name));
5.配置主机B上的my.ini,先将主机mysql停止,在my.ini文件最后增加,
server-id=1
log-bin=C:/log/sync
这两句话的意思是将二进制文件保存在 C:/log/sync下,而主机ID设为1;再启动mysql服务;
6.配置主机A上的my.ini,现将主机mysql停止,在my.ini文件最后增加如下,
server-id=2
log-bin=C:/log/sync
#从库是否只读,0表示可读写,1表示只读
read-only=0
#只复制某个库
replicate-do-db=backup
#复制完的sql语句是否立即从中继日志中清除,1表示立即清除
relay-log-purge=1
report-host=10.144.15.52
7.启动mysql服务,在mysql界面下键入如下命令:
mysql> CHANGE MASTER TO
-> MASTER_HOST='localhost',
-> MASTER_USER='cai',
-> MASTER_PASSWORD='cai';
mysql> start slave;
8.使用命令 show processlist\G可以查看当前运行的mysql主从服务。使用
insert into test values(hh,11)命令进行测试,查看从机是否可以同步;
三、配置反向的数据流:(配置A机向B机的传输)
只要在B机的my.ini中,增加上述A机上步骤6的配置即可。
四、删除旧的备份文件
可以使用sql语句:
PURGE MASTER LOGS BEFORE DATE_SUB(now(), INTERVAL 3 DAY);
阅读(1695) | 评论(0) | 转发(0) |