MySQL复制的概述、安装、故障、技巧、工具.pdfVIP

MySQL复制的概述、安装、故障、技巧、工具.pdf

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MySQL复制的概述、安装、故障、技巧、工具

MySQL 复制的概述、安装、故障、技巧、工具 Posted on 2011-04-05 by 老王 同MongoDB,Redis 这样的NoSQL 数据库的复制相比,MySQL 复制显得相当复 杂! 概述 首先主服务器把数据变化记录到主日志,然后从服务器通过I/O 线程读取主服务器 上的主日志,并且把它写入到从服务器的中继日志中,接着SQL 线程读取中继日志, 并且在从服务器上重放,从而实现MySQL 复制。具体如下图所示: MySQL 复制 整个过程反映到从服务器上,对应三套日志信息,可在从服务器上用如下命令查看: mysql SHOW SLAVE STATUS;  Master_Log_File Read_Master_Log_Pos:下一个传输的主日志信息。  Relay_Master_Log_File Exec_Master_Log_Pos:下一个执行的主日志信 息。  Relay_Log_File Relay_Log_Pos:下一个执行的中继日志信息。 理解这些日志信息的含义对于解决故障至关重要,后文会详细阐述。 安装 先在主服务器上创建复制账号: mysql GRANT REPLICATION SLAVE ON *.* TO SLAVE_USER@SLAVE_HOST IDENTIFIED BY SLAVE_PASSWORD; 注:出于安全性和灵活性的考虑,不要把root 等具有SUPER 权限用户作为复制账 号。 然后设置主服务器配置文件(缺省:/etc/my.cnf ): [mysqld] server_id = 100 log_bin = mysql-bin log_bin_index = mysql-bin.index sync_binlog = 1 innodb_flush_log_at_trx_commit = 1 innodb_support_xa = 1 注:一定要保证主从服务器各自的server_id 唯一,避免冲突。 注:如果没有指定log_bin 的话,缺省会使用主机名作为名字,如此一来一旦主机 名发生改变,就会出问题,所以推荐指定log_bin (从服务器的relay_log 存在一样 的问题)。 注:sync_binlog,innodb_flush_log_at_trx_commit,innodb_support_xa 三个选项 都是出于安全目的设置的,不是复制的必须选项,但如果没设置的话,一旦主服务 器宕机,数据可能来不及写入磁盘,从而导致从服务器在复制过程中出现类似下面 的错误:  Client requested master to start replication from impossible position 因为日志数据已经丢失了,所以此类问题基本上不能处理,只能重新安装同步从服 务器。 接下来设置从服务器配置文件(缺省:/etc/my.cnf ): [mysqld] server_id = 200 log_bin = mysql-bin log_bin_index = mysql-bin.index relay_log = mysql-relay-bin relay_log_index = mysql-relay-bin.index read_only = 1 skip_slave_start = 1 log_slave_updates = 1 注:如果用户有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

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档