Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1143452
  • 博文数量: 119
  • 博客积分: 1991
  • 博客等级: 上尉
  • 技术积分: 4452
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-23 21:28
文章分类

全部博文(119)

文章存档

2012年(111)

2011年(8)

分类: Mysql/postgreSQL

2012-04-20 00:45:02

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://blog.chinaunix.net/space.php?uid=9419692&do=blog&id=3182607

mysql从3.23.15版本以后提供数据库复制功能。利用该功能可以实现两个数据库同步,主从模式,互相备份模式的功能,该功能可将一个数据库的工作量分摊于多个Mysql服务器之上,但考虑到种种因素,不要使用过多的同步服务器。最好的方案是根据网站的性质和结构,设置“一写多读”或“一读多写"的服务器模式。
  数据库同步复制功能的设置都在mysql的设置文件中体现。mysql的配置文件(一般是my.cnf)在/etc/mysql/my.cnf 或者在mysql用户的home目录下面的my.cnf。
设置方法:
设置范例环境:
  mysql:mysql-5.0.27.tar.gz
  A ip:192.168.1.30  B ip:192.168.1.31 
A设置:
 1.增加一个用户最为同步的用户帐号:
grant all on *.* to identified by 'backup';
  2.增加一个数据库作为同步数据库:
create database backup
B:设置
  1.增加一个用户最为同步的用户帐号:
grant all on *.* to identified by 'backup';
  2.增加一个数据库作为同步数据库:
create database backup
  主从模式:A->B
  A为master
  修改A mysql的my.ini文件。在mysqld配置项中加入下面配置:
server-id=1
log-bin
#设置需要记录log 可以设置log-bin=c:mysqlbakmysqllog 设置日志文件的目录,
#其中mysqllog是日志文件的名称,mysql将建立不同扩展名,文件名为mysqllog的几个日志文件。
binlog-do-db=backup #指定需要日志的数据库
  重启数据库服务。
  用show master status 命令看日志情况。
  B为slave
  修改B mysql的my.ini文件。在mysqld配置项中加入下面配置:
server-id=2
master-host=192.168.1.30
master-user=backup #同步用户帐号
master-password=backup
master-port=3306
master-connect-retry=60 预设重试间隔60秒
replicate-do-db=backup 告诉slave只做backup数据库的更新
  重启数据库
  用show slave status看同步配置情况。
  注意:由于设置了slave的配置信息,mysql在数据库目录下生成master.info
  所以如有要修改相关slave的配置要先删除该文件。否则修改的配置不能生效。
  双机互备模式。
  如果在A加入slave设置,在B加入master设置,则可以做B->A的同步。
  在A的配置文件中 mysqld 配置项加入以下设置:
master-host=192.168.1.31
master-user=backup
master-password=backup
replicate-do-db=backup
master-connect-retry=10
  在B的配置文件中 mysqld 配置项加入以下设置:
log-bin=//var/log/mysqllogmysqllog
binlog-do-db=backup
  注意:当有错误产生时*.err日志文件。同步的线程退出,当纠正错误后要让同步机制进行工作,运行slave start
  重起AB机器,即可实现双向的热备。
mysql有以下几种日志:
错误日志: -log-err
查询日志: -log
慢查询日志: -log-slow-queries
更新日志: -log-update
二进制日志: -log-bin
==================================================================================
windows下两个mysql数据库同步
A:192.168.1.30
grant all on *.* to identified by 'backup';
my.ini
[mysqld]
server-id=1
master-host=192.168.1.31
master-user=backup
master-password=backup
master-port=3306
log-bin="C:/Program Files/MySQL/MySQL Server 5.0/bin.log"
log-error="C:/Program Files/MySQL/MySQL Server 5.0/error.log"
log="C:/Program Files/MySQL/MySQL Server 5.0/mysql.log"
log-update="C:/Program Files/MySQL/MySQL Server 5.0/update.log"
B:192.168.1.31
grant all on *.* to identified by 'backup';
my.ini
[mysqld]
server-id=1
master-host=192.168.1.30
master-user=backup
master-password=backup
master-port=3306
log-bin="C:/Program Files/MySQL/MySQL Server 5.0/bin.log"
log-error="C:/Program Files/MySQL/MySQL Server 5.0/error.log"
log="C:/Program Files/MySQL/MySQL Server 5.0/mysql.log"
log-update="C:/Program Files/MySQL/MySQL Server 5.0/update.log"

本文出自 “聆听未来” 博客,请务必保留此出处http://blog.chinaunix.net/space.php?uid=9419692&do=blog&id=3182607

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

king_8192012-04-25 17:13:59

走西口123: mysql双机互备默认多长时间同步一次数据 ?.....
有数据更新就同步

走西口1232012-04-24 11:27:12

mysql双机互备默认多长时间同步一次数据 ?