源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

MySQL复制的概述、安装、故障、技巧、工具(火丁分享)

  • 时间:2020-01-17 23:15 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:MySQL复制的概述、安装、故障、技巧、工具(火丁分享)
同MongoDB,Redis这样的NoSQL数据库的复制相比,MySQL复制显得相当复杂! [b]概述 [/b] 首先主服务器把数据变化记录到主日志,然后从服务器通过I/O线程读取主服务器上的主日志,并且把它写入到从服务器的中继日志中,接着SQL线程读取中继日志,并且在从服务器上重放,从而实现MySQL复制。具体如下图所示: [img]http://files.jb51.net/upload/201104/20110406161625854.gif[/img] 整个过程反映到从服务器上,对应三套日志信息,可在从服务器上用如下命令查看:
[url=http://dev.mysql.com/doc/refman/5.5/en/privileges-provided.html#priv_super]SUPER[/url]权限用户作为复制账号。然后设置主服务器配置文件(缺省:/etc/my.cnf):
[url=http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_log_bin]log_bin[/url]的话,缺省会使用主机名作为名字,如此一来一旦主机名发生改变,就会出问题,所以推荐指定log_bin(从服务器的relay_log存在一样的问题)。 注:[url=http://dev.mysql.com/doc/refman/5.5/en/replication-options-binary-log.html#sysvar_sync_binlog]sync_binlog[/url],[url=http://dev.mysql.com/doc/refman/5.5/en/innodb-parameters.html#sysvar_innodb_flush_log_at_trx_commit]innodb_flush_log_at_trx_commit[/url],[url=http://dev.mysql.com/doc/refman/5.5/en/innodb-parameters.html#sysvar_innodb_support_xa]innodb_support_xa[/url]三个选项都是出于安全目的设置的,不是复制的必须选项。 接着设置从服务器配置文件(缺省:/etc/my.cnf):
[url=http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_read_only]read_only[/url]无效。 注:有了[url=http://dev.mysql.com/doc/refman/5.5/en/replication-options-slave.html#option_mysqld_skip-slave-start]skip_slave_start[/url],除非使用[url=http://dev.mysql.com/doc/refman/5.5/en/start-slave.html]START SLAVE[/url]命令,否则从服务器不会开始复制。 注:设置[url=http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_log_slave_updates]log_slave_updates[/url],让从服务器记录日志,有助于在必要时把从切换成主。 下面最重要的步骤是如何克隆一份主服务器的数据: 如果数据库使用的是MyISAM表类型的话,可按如下方式操作:
[url=http://dev.mysql.com/doc/refman/5.5/en/mysqldump.html#option_mysqldump_master-data]master-data[/url]选项缺省会打开[url=http://dev.mysql.com/doc/refman/5.5/en/mysqldump.html#option_mysqldump_lock-all-tables]lock-all-tables[/url],并写入[url=http://dev.mysql.com/doc/refman/5.5/en/change-master-to.html]CHANGE MASTER TO[/url]语句。 如果数据库使用的是InnoDB表类型的话,则应该使用[url=http://dev.mysql.com/doc/refman/5.5/en/mysqldump.html#option_mysqldump_single-transaction]single-transcation[/url]:
[url=http://dev.mysql.com/doc/refman/5.5/en/set-global-sql-slave-skip-counter.html]SET GLOBAL sql_slave_skip_counter[/url],如下:
[url=http://mysql-mmm.org/]Multi-Master Replication Manager for MySQL[/url] [url=http://www.percona.com/software/percona-xtrabackup/]Percona XtraBackup[/url] [url=http://www.maatkit.org/]Maatkit[/url] [url=http://code.google.com/p/tungsten-replicator/]Tungsten-replicator[/url] 此外,Google Project Hosting里还有很多有趣的项目,可用[url=http://code.google.com/hosting/search?q=label:mysql+replication]mysql+replication[/url]标签搜索。 说明:本文参考了下面列出的书籍中相关的内容: [url=http://www.amazon.com/High-Performance-MySQL-Optimization-Replication/dp/0596101716/]High Performance MySQL: Optimization, Backups, Replication, and More[/url] [url=http://www.amazon.com/MySQL-High-Availability-Building-Centers/dp/0596807309/]MySQL High Availability: Tools for Building Robust Data Centers[/url] (来源:[url=http://huoding.com/2011/04/05/59]火丁笔记[/url])
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部