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

全部博文(284)

文章存档

2012年(18)

2011年(33)

2010年(83)

2009年(147)

2008年(3)

分类: Mysql/postgreSQL

2009-05-19 19:23:46

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

一、配置要求:
  
两台主机A 10.144.15.200B10.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机上步骤67的配置即可。

 

四、删除旧的备份文件

   可以使用sql语句:

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

 

 

五、冲突解决

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

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

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

文件: mysql双机热备配置-solaris.rar
大小: 7KB
下载: 下载

阅读(1150) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~