快速业务通道

详细讲解MySQL复制

作者 建站王 来源 互联网 浏览 发布时间 2012-01-17

 

注:如果用户有SUPER权限,则read_only无效。

注:有了skip_slave_start,除非使用START SLAVE命令,否则从服务器不会开始复制。

注:设置log_slave_updates,让从服务器记录日志,有助于在必要时把从切换成主。

下面最重要的步骤是如何克隆一份主服务器的数据:

如果数据库使用的是MyISAM表类型的话,可按如下方式操作:

 

shell> mysqldump --all-databases --master-data=1 > data.sql

 

注:master-data选项缺省会打开lock-all-tables,并写入CHANGE MASTER TO语句。

如果数据库使用的是InnoDB表类型的话,则应该使用single-transcation

 

shell> mysqldump --all-databases --single-transaction --master-data=1 > data.sql

 

有了数据文件,传输到从服务器上并导入:

 

shell> mysql < data.sql

 

如果数据量很大的话,mysqldump会非常慢,此时直接拷贝数据文件能节省不少时间:

在拷贝之前要先锁定数据,然后再获得相关的日志信息(FILE & POSITION):

 

mysql> FLUSH TABLES WITH READ LOCK;

mysql> SHOW MASTER STATUS;

 

接下来拷贝数据文件时,如果是MyISAM表类型的话,直接拷贝即可;如果是InnoDB表类型的话,一定要先停止MySQL服务再拷贝,否则拷贝文件可能无法使用。把拷贝的数据文件直接复制到从服务器的数据目录。

最后还需要再指定一下日志信息:

 

mysql> CHANGE MASTER TO
       MASTER_HOST='<MASTER_HOST>',
       MASTER_USER='<SLAVE_USER>',
       MASTER_PASSWORD='<SLAVE_PASSWORD>',
       MASTER_LOG_FILE='<FILE>',
       MASTER_LOG_POS=<POSITION>;

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号