发布于 2011-04-11 16:42:20
环境:window7 mysqlserver5.2 192.168.0.68
虚拟机ubuntu linux mysql 5.1.41 192.168.0.97
测试数据库my_db 表:t_1
做主
linux下(主服务器设置):
1.修改配置文件my.cnf
[mysqld]下增加
log-bin 开启二进制
server-id=1 连接线程ID
bin-log-to-do =my_da 只记录目标库的日志
2.flush tables with readlock 加锁,然后取得数据文件,拷贝到从机中,测试时直接导出结构和数据(很小)。
3.service restart 重启msyql
在上面步骤2之前,show master status;记录日志文件名称及偏移位置
win7(从服务器设置):
my.ini中加入以下段
-
master-host=192.168.0.97
-
master-user=backup
-
master-password=123
-
master-port=3306
-
server-id=2
-
master-connect-retry=60
-
replicate-do-db=my_db
# log-slave-updates 防止二次读更新,从机不写入日志 默认为off
初始可以这样配置,mysql优先读取master.info里面的配置,所以后期更改也没有影响,手册中有说明。
重新启动mysql DATA目录下会增加中继日志,以及master.info 等文件
从机slave信息:
状态中以下两项为YES则配置成功:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
同步测试:
win7下:
win7下:
嘿嘿,大功告成!
主从服务器切换:
上面只是简单意义上的配置,严格的同步配置还需要注意更多的细节问题,有了同步从服务器,,维护等问题就方便多了,下面假设主服务器DOWN掉的情况。
在服务器中运行:
开启二进制日志:log-bin
stop slave io_thread ;
show process list;这个地方一定要确保已经执行完成所有的更新。Has read all relay log
然后:
stop slave
reset master; 清空日志并创建新的日志;
之后调整其他应用程序入口即可完成从服务器转主服务器配置。
主服务器维护好之后,先作为从机读取从DOWN掉之后的更新,然后重新配置成主服务器。
备注:
在配置过程中,大大小小的问题都遇到过,比如权限问题,网络问题,已经配置顺序问题:在主服务器未reset master 时,从服务器进行change master 后面就出现 Slave_IO_Running: Yes
Slave_SQL_Running: Yes这两项其中一项为NO的情况。借鉴网上一些前辈的经验,总结下这两个状态为NO的处理办法:
1.阅读日志文件,这里基本上都能解决问题。至少有个方向或者思路。
2.Slave_SQL_Running: No 1.程序可能在slave上进行了写操作 2.也可能是slave机器重起后,事务回滚造成的. 一般是事务回滚造成的:
1)mysql> slave stop;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> slave start;
2) 手动重新同步,这样会丢失一段时间的更新,当然也可以去日志里面恢复回来。
slave stop;---到主服务器上show master status ,记录日志文件及偏移量,-----在从服务器上change master。
Slave_IO_Running:NO
1) 权限问题,SLAVE未访问权限
2)日志文件无效或者损坏,可以采取从新的时间点重新同步。
3)网络问题
阅读(2549) | 评论(0) | 转发(0) |