您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

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

2025/5/3 12:38:35发布18次查看
mysql管理工具mysql安装
同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 ''@''
       identified by '';
注:出于安全性和灵活性的考虑,不要把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三个选项都是出于安全目的设置的,不是复制的必须选项。
接着设置从服务器配置文件(缺省:/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> mysql
如果数据量很大的话,mysqldump会非常慢,此时直接拷贝数据文件能节省不少时间:
在拷贝之前要先锁定数据,然后再获得相关的日志信息(file & position):
mysql> flush tables with read lock;
mysql> show master status;
接下来拷贝数据文件时,如果是myisam表类型的话,直接拷贝即可;如果是innodb表类型的话,一定要先停止mysql服务再拷贝,否则拷贝文件可能无法使用。把拷贝的数据文件直接复制到从服务器的数据目录。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product