文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>solaris上实现mysql的双机热备功能-同时处理复制冲突

solaris上实现mysql的双机热备功能-同时处理复制冲突

时间:2009-05-19  来源:cj_gameboy

   本周二,在solaris上实现了两个数据库之间的双机复制功能,在配置过程中间,回头看了看前些日子写的在win上配置双机复制的文字,感觉还是有些东西写错了,暂时懒的改了,就以这篇文档中的内容为准,在此对所有阅读过上篇文档的同仁们表示歉意。

一、配置要求:
   两台主机A机 10.144.15.200;B机10.144.15.234;同步数据库名为cai,测试用表名为test,测试时,双机均为solaris机器,但其中一台为sparc另外一台为x86机型;
二、配置单向的数据流:(配置B机向A机的传输)
   1.在两台主机上安装mysql服务;
   2.在两台主机上增加用户cai,密码cai
   GRANT ALL PRIVILEGES ON *.* TO  'cai'@’%’  IDENTIFIED BY ‘cai’  WITH GRANT OPTION;
   该操作只能在本机上进行;进行完成后可以远程登录进行测试;
   找到mysql安装目录,在bin文件夹下找到mysql可执行程序,用命令登录对侧机器:
   mysql -h10.144.15.52 -u cai -p  进行登录;
   3.在两台主机上增加相应的数据库
   GREATE database cai
   4.在两台主机上增加相应的表
   CREATE table test (
     name VARCHAR(20) NOT NULL default '',
     age int(3) unsigned NOT NULL,
     PRIMARY KEY (name));
   5.配置主机B上的my.cnf,该文件默认存放在product目录下

  先将主机mysql停止,

  mysqladmin –uroot shutdown

  然后在my.cnf文件中找到[mysqld]部分,在其后面增加如下语句
   server-id=1
   log-bin= /export/home/mysql/data/log
   这两句话的意思是将二进制文件保存在 /export/home/mysql/data下,而主机ID设为1;再启动mysql服务(在mysql目录下的bin目录下键入mysqld_safe&);

   启动后,检查是否配置修改成功就是用show master status,如果发现查询不到结果,则说明修改的配置文件无效。
   6.配置主机A上的my.cnf,将主机mysql停止(同上一步中停止mysql的步骤),在my.cnf文件中找到[mysqld]部分,在其后面增加如下语句
   server-id=2
   log-bin=/export/home/mysql/data/log
   #从库是否只读,0表示可读写,1表示只读
   read-only=0
   #只复制某个库
   replicate-do-db=backup
   #复制完的sql语句是否立即从中继日志中清除,1表示立即清除
   relay-log-purge=1
   report-host=10.144.15.200               //自己IP

  slave-skip-errors=all                       //出错不停止复制功能
   7.启动mysql服务,在mysql界面下键入如下命令:
   mysql> CHANGE MASTER TO
    -> MASTER_HOST='10.144.15.234',      //对侧IP
    -> MASTER_USER='cai',
    -> MASTER_PASSWORD='cai';
   mysql> start slave;
   8.使用命令 show processlist\G可以查看当前运行的mysql主从服务。使用
   insert into test values(hh,11)命令进行测试,查看从机是否可以同步;
三、配置反向的数据流:(配置A机向B机的传输)
   只要在B机的my.cnf中,增加上述A机上步骤6、7的配置即可。

 

四、删除旧的备份文件

   可以使用sql语句:

   PURGE MASTER LOGS BEFORE DATE_SUB(now(), INTERVAL 3 DAY);

 

 

五、冲突解决

   正常情况下,如果,两机断线,而此时,如果在A机和B机上进行冲突操作。如A机上增加记录3、4、5,而B机上增加记录4、5、6,则记录4、5会发生冲突。在网线重新恢复链接的时候,该数据双热备复制会导致复制功能挂起。需要重新启动复制,才能使复制功能恢复。(start slave)

    所以,这里特别注意配置文件中这样一条:

    slave-skip-errors=all                       //出错不停止复制功能
    配置该语句后,相应的错误不会引起复制功能的挂起。原数据库之所以在遇到冲突语句后挂起复制,是因为数据库的数据一致性要求,所以,遇到问题必须终止待dba进行手动操作,保证各节点的数据一致性。但由于我们应用高持续性和低数据一致性的要求,这里增加该配置,使得在冲突发生的时候,数据库复制功能不挂起,而允许两库之间的数据存在不一致。

文件: mysql双机热备配置-solaris.rar
大小: 7KB
下载: 下载
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载