mysql数据库同步
时间:2006-12-16 来源:fsm11
MYSQL的master/slave数据同步配置
<META content="linux mysql master/slave 数据库 同步" name=keywords>
redhat 9.0
mysql4.1
mysql数据同步备份
A服务器: 192.168.0.1 主服务器master
B服务器: 192.168.0.2 副服务器slave
A服务器设置
#mysql
mysql>GRANT REPLICATION SLAVE ON *.* TO [email protected] IDENTIFIED BY ‘backup’;
mysql>\exit
上面是Master开放一个账号backup密码backup给IP:192.168.0.2有档案处理的权限
注意:
在MySQL 4.0.2以前,用 FILE 权限来代替 REPLICATION SLAVE
mysqladmin –u root –p shutdown
备份Master所有数据库..通常都用tar指令.
#tar –cvf /tmp/mysql.tar /usr/local/mysql
注意:tar的时候,MySQL是要在stop情况下
在A机器上修改/etc/my.cnf
在[mysqld]区段内加入参数
log-bin
server-id=1
sql-bin-update-same
binlog-do-db=vbb
重启A服务器mysql
此时因为有加入log-bin参数,因此开始有index产生了,在/usr/local/mysql目录下有.index档案纪录数据库的异动log.
B服务器设置
设定/etc/my.cnf
在[mysqld]区段加入
master-host=192.168.0.1
master-user=backup
master-password=backup
master-port=3306
server-id=2
master-connect-retry=60 预设重试间隔60秒
replicate-do-db=vbb 告诉slave只做vbb数据库的更新
log-slave-updates
将A上的mysql.tar copy到B上
用ftp传B的/tmp
9.解压缩
#cd /var/lib/
状况测试
1.A跟B网络及服务都正常情况下,由A端变化数据后,到B端浏览数据,检视是否有进行replication?!
2.模拟B当机,或是B不一定需要一直跟A有连接.
将由A端变化数据后,到B端浏览数据,B点应该是没有数据变化的
#tar xvf /tmp/mysql-snapshot.tar
#chown –R mysql:mysql mysql
1重启B服务器的mysql
这时在/usr/local/mysql目录会出现master.info,此档案纪录了Master MySQL server的信息.
测试
1.A跟B网络及服务都正常情况下,由A端变化数据后,到B端浏览数据,检视是否有进行replication?!
2.模拟B当机,或是B不一定需要一直跟A有连接.
将由A端变化数据后,到B端浏览数据,B点应该是没有数据变化的