Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1063249
  • 博文数量: 284
  • 博客积分: 8223
  • 博客等级: 中将
  • 技术积分: 3188
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-01 13:26
文章分类

全部博文(284)

文章存档

2012年(18)

2011年(33)

2010年(83)

2009年(147)

2008年(3)

分类: Mysql/postgreSQL

2009-04-23 08:55:58

   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);
阅读(1576) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~