系统集成论坛

标题: windows server 2003下配置MySQL双机热备 [打印本页]

作者: 思考的牛    时间: 2011-9-5 16:14
标题: windows server 2003下配置MySQL双机热备
一、测试环境
    A windows 2003 sp2  mysql-5.0.18 IP 172.16.0.114
    B windows 2003 sp2  mysql-5.0.18 IP 172.16.0.126
    安装过程博客中Mysql安装图解
二、配置
锁定数据库A
mysql> FLUSH TABLES WITH READ LOCK;


将A上要同步的数据库备份,并在B上还原。保证两个数据库相同。
在mysql的安装目录下建立log文件夹,保存log。(后面要用到)


1.在两台机器上分别建立用于复制的账号,命令如下:
A上
mysql>grant replication slave on *.* to 'backup'@'172.16.0.126' identified by '654321';
B上
mysql>grant replication slave on *.* to 'backup'@'172.16.0.114' identified by '654321';
然后分别在SA,SB上进行测试
mysql -h172.16.0.114(126) -ubackup -p654321
如果成功,则表明账号有效,否则需要重新添加用户




2.停掉A机器上的mysql服务,编辑A的my.ini文件,在mysqld下添加如下信息:


####mysql backup###########


server-id=1 (主服务器ID,不能重复)
binlog-do-db=mytest (要复制的库)
log-bin="E:\MySQL Server 5.0\log\log" (log文件存放处,最后的log是日志文件名,前面一个log是文件夹)
master-host=172.16.0.126   (设置要同步的主机 B)
master-user=backup           (备份用的用户名,前面设置的)
master-password=654321        (备份用户名即backup的密码)
master-port=3306                (使用端口)
master-connect-retry=60         (重新连接的时间)
replicate-do-db=mytest           (要同步的数据库)


重启mysql服务。在log目录下会看到类似log.000001,log.index的文件,data目录下也会有*.info,*-relay-bin.000001,*-relay-bin.index的文件。如果两个目录都有说明配置正确。


然后把数据库的锁定打开
mysql> UNLOCK TABLES;

停掉B机器上的mysql服务, 然后编辑B的my.ini文件,


############mysql backup############


server-id=2
binlog-do-db=mytest
log-bin="E:\MySQL Server 5.0\log\log"


master-host=172.16.0.114
master-user=backup
master-password=654321
master-port=3306
master-connect-retry=60
replicate-do-db=mytest


重启mysql服务。在log目录下会看到类似log.000001,log.index的文件,data目录下也会有*.info,*-relay-bin.000001,*-relay-bin.index的文件。如果两个目录都有说明配置正确。


连接到mysql,输入命令:show slave status\G
分别在两台服务器上查看Slave_IO_Running:    Slave_SQL_Running:是否同时为YES,如果不是,刚需要重新配置




此时即可测试,在A中插入数据,看是否已经同步到B服务器上。


#########################
1. A B 互为主从同步test, 不同步mysql:
两个数据库配置中均设置:binlog-do-db=test, binlog-ignore-db=mysql,replicate-do-db=test,replicate-ignore-db=mysql

2. A B 互为主从只同步test,不同步其他数据库,新创建的也不会同步
两个数据库配置中均设置:binlog-do-db=test,replicate-do-db=test

3. A B 互为主从不同步mysql, 同步其他数据库,譬如创建的新数据库也会同步
两个数据库配置中均设置:binlog-ignore-db=mysql,replicate-ignore-db=mysql

4. A B 互为主从同步所有数据库,包括新建的数据库
两个数据库配置中均不设置上述四项





在A机的my.ini中添加
server-id=1
log-bin=/var/mysqltmp #同步事件的日志记录文件
binlog-do-db=test1 #提供数据同步服务的数据库
binlog-do-db=test2 #提供数据同步服务的数据库
binlog-do-db=test3 #提供数据同步服务的数据库
master-host=192.168.0.102 #主机B的地址
master-user=use102 #主机B提供应B的用户,该用户中需要包括数据库test1 test12test3的权限
master-password=usepwd102 #访问密码
master-port=3306 #端口,主机的MYSQL端口
master-connect-retry=60 #重试间隔60秒
replicate-do-db=test1 #同步的数据库
replicate-do-db=test2 #同步的数据库
replicate-do-db=test3 #同步的数据库


#################################
如果只做单向备份
A my.ini设置如下
####mysql backup###########


server-id=1
binlog-do-db=mytest
log-bin="E:\MySQL Server 5.0\log\log"
在log目录下会看到类似log.000001,log.index的文件
B my.ini设置如下:
############mysql backup############


server-id=2


master-host=172.16.0.114
master-user=backup
master-password=654321
master-port=3306
master-connect-retry=60
replicate-do-db=mytest
data目录下也会有*.info,*-relay-bin.000001,*-relay-bin.index的文件
设置后,在B机器开启slave 命令: slave start;
然后分别在A,B机器上查看 show master status\G,show slave status\G,查看状态是否正常。




欢迎光临 系统集成论坛 (http://bbs.xtjc.com/) Powered by Discuz! X3.1