测试环境:
RedHat ES 4 update 3
MYSQL 5.0.15
MYSQL数据同步备份
A服务器: 150.236.66.160 主服务器master
B服务器: 150.236.66.172 副服务器slave
1:A服务器设置上修改/etc/my.cnf
在[mysqld]区段内加入参数
#(要同步的数据库)
binlog_do_db = gdcu
2:设置能够访问A服务器用户,该用户能够做同步操作
#mysql –u root –p
mysql>GRANT FILE ON *.* TO backup@150.236.66.172 IDENTIFIED BY 'orient5757';
grant replication slave,reload,super on *.* to backup@150.236.66.172 identified by 'orient5757'
mysql>FLUSH PRIVILEGES;
3:B服务器设置
设定/etc/my.cnf
在[mysqld]区段加入
#(如果还有slave用户,他们的ID也随之增加,如server-id=3)
server-id = 2
master-host = 150.236.66.160
master-user = backup
master-password = orient5757
replicate-do-db = gdcu
master-port=3306
master-connect-retry = 60
log-bin=mysql-bin
4:在 master 上执行命令显示 master 状态:
mysql> SHOW MASTER STATUS;
看到信息类似如下:
+—————+———-+————–+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+—————+———-+————–+——————+
| mysql-bin.003 | 73 | gdcu | manual,mysql |
+—————+———-+————–+——————+
记下 LOG FILE 和 Position。
5、把 master 数据库拷贝到 slave,在slave上执行如下语句,把各个选项的值替换成真实值:实质是设置slave数据从master数据库读取数据库操作的事务。
mysql> STOP SLAVE;
mysql> CHANGE MASTER TO MASTER_HOST=’ 150.236.66.160′,MASTER_USER=’bakcup,MASTER_PASSWORD=’orient5757,MASTER_LOG_FILE=’mysql-bin.000003′,MASTER_LOG_POS=73;
6、启动 slave 线程,并查看 slave 状态:
mysql> START SLAVE;
mysql> SHOW SLAVE STATUS;
测试结果:
在master数据库操作,基本上数据是瞬间同步到slave上。
如果slave数据库未运行,master 数据库发生变化,在slave开始运行的时候,会把发生变化的数据同步过来。
双向备份:
主机
#add for master backup
#log-bin=mysql-bin
server-id=1
binlog_do_db = gdcu
#binlog_ignore_db = mysql,information_schema
#server-id = 2
#拢篓脠鹿没slave脫禄搂拢卢脣脙碌脛D也脣之脭录樱卢脠server-id=3拢漏
master-host = 192.168.1.6
master-user = root
master-password = orient5757
replicate-do-db = gdcu
#replicate-do-db = database2
#log-warnings
master-port=3306
master-connect-retry = 60
#bin-log =
log-bin=mysql-bin
备份机:
server-id = 2
#(如果还有slave用户,他们的ID也随之增加,如server-id=3)
master-host = 192.168.1.5
master-user = root
master-password = orient5757
replicate-do-db = gdcu
#replicate-do-db = database2
#log-warnings
master-port=3306
master-connect-retry = 60
#bin-log =
log-bin=mysql-bin
#server-id=1
binlog_do_db = gdcu
在 '192.168.1.6'上操作
stop slave;
CHANGE MASTER TO MASTER_HOST='192.168.1.5',MASTER_USER='root',MASTER_PASSWORD='orient5757',MASTER_LOG_FILE='mysql-bin.000023',MASTER_LOG_POS=98;
在 '192.168.1.5上操作
stop slave;
CHANGE MASTER TO MASTER_HOST='192.168.1.6',MASTER_USER='root',MASTER_PASSWORD='orient5757',MASTER_LOG_FILE='mysql-bin.000054',MASTER_LOG_POS=98;
posted on 2008-11-06 18:29
波 阅读(719)
评论(0) 编辑 收藏