IT运维工程师、律师 IT相关技术支持、法律咨询
分类: LINUX
2010-10-13 16:07:11
确保 Master 与 Slave 之间的数据一致
[Master Server 方面]
设定 Server-id
开启 Binary Log
设定 Replication Slave 权限
[Slave Server 方面]
设定 Server-id
将 Master_Host 设定为 Master Server
启动与检查 Slave Server 的状态
在此范例中我们假设:
[Master Server]
IP 为 192.168.1.1
server-id 为 1
进行数据同步时所使用的帐户信息:
账号: slave_server
密码: 1234
[Slave Server]
IP 为 192.168.1.2
server-id 为 2
|
|
|
意思为: 允许 192.168.1.2 这个 IP 使用 slave_server 账号,来进行数据同步(Replication)。 slave_server 这个账号的密码为 1234。 |
|
设定my.cnf
在[mysqld]区段加入
master-host=192.168.1.1
master-user=backup
master-password=1234
master-port=3306
server-id=2 一定要和主机不一样(值为2--2^32-1)
master-connect-retry=60 预设重试间隔60秒
replicate-do-db=vbb 告诉slave只做vbb数据库的更新
log-bin ##网上较老的教程用这个参数log-slave-updates,在新版本中已经不能用
*****以下星号之间部分,为备忘,有的文档需要做这样的操作(这里不需要)****
CHANGE MASTER TO MASTER_HOST='192.168.1.1',
MASTER_PORT=3306, MASTER_USER='slave_server',
MASTER_PASSWORD='1234';
意思为:
Master Server 是 192.168.1.1
使用 TCP Port 3306 连接
使用 slave_server 这个账号登入
登入时使用的密码为 1234
C.启动与检查 Slave Server 的状态
设定好后,Master/Slave 机制仍未启动,您必须要使用以下的指令来开启或关闭 Master/Slave 机制:
START slave; (启动 Master/Slave 机制)
STOP slave; (停止 Master/Slave 机制)
当你执行 'START slave;' 后,可使用以下的指令来检查执行状态:
*******************************************************
3.将要备份的数据库文件打包,并传至备机(我的数据库名为smis2)
#tar xvf /tmp/sims2.tar /mysql/data/sims2
将SIMS2.tar传至备机,并解压缩至备机的MYSQL的DATA目录下。
4、重新启动主机和备机的MYSQL服务
在备机上执行:
SHOW SLAVE STATUS \G
执行后应该会看到如下的报表:
mysql> SHOW SLAVE STATUS \G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.1
Master_User: slave_server
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000019
Read_Master_Log_Pos: 16492717
Relay_Log_File: www-relay-bin.000018
Relay_Log_Pos: 16492854
Relay_Master_Log_File: mysql-bin.000019
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: example
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 16492717
Relay_Log_Space: 16492854
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
1 row in set (0.00 sec)
重点是红色那三行:
Slave_IO_Running:
是否要从 Master Server 复制 Binary Log 数据,必须为 Yes。
Slave_SQL_Running:
是否要执行从 Master Server 复制过来的 Binary Log 数据,必须为 Yes。
Seconds_Behind_Master:
Slave 的数据落后了 Master 多少秒,执行一段时间后应该会是零。
5、这时在备机的mysql/data目录会出现master.info,此档案纪录了Master MySQL server的信息
6、测试:
在主服务器上对数据库进行数据变动,到从服务器或SLAVE端观察数据的变化。
chinaunix网友2010-10-14 17:17:29
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com