mysql主从复制原理和注意事项
2017-05-09 17:38
351 查看
mysql主从复制大体分3个步骤:
在主库上把更新的数据写入到二进制日志binglog文件里面;
备库把主库的二进制日志复制到自己的relay_log中;
备库读取relay_log并将里面的数据重放到数据库。
上述步骤在主从之间涉及到3个线程,a:主库上面的数据写入binglog线程,b:从库上面启动的I/O数据同步线程,该线程在主库上启动一个特殊的二进制转储线程,去读取binglog文件,并把数据发送给I/O线程保存到relay_log,c:从库的sql线程读取relay_log并写入数据库
创建同步复制帐号:该帐号需要下列权限
mysql>grant replication slave,replication client on *.* to rep@'172.16.0.%' identified by 'password';
复制帐号的权限其实只需要replication slave权限,replication client 是为了复制帐号的监控和管理需要
配置主库和从库配置文件,在主库修改my.cnf文件的下列选项
log_bin = /Data/mysql/3306/data/mysql #开启binglog文件记录
server_id = 1 #必须明确指明server_id,而且不容许复制环境有重复的server_id
relay_log = /Data/mysql/3306/data/mysql-relay-bin #开启relay_log并指定位置,该选项有默认值,也可不加
log_slave_updates = 1 #写relay-log的时候也写到bin-log,主要用在M-M-S环境,这里也可以不启用
备注:不要在配置文件my.cnf里面设置master_host或master_port这些老的选项,会导致一些问题
启动复制:mysql>change master to master_host = '172.16.0.11',master_user='rep',master_password='password',master_log_file='mysql-bin.000001',master_log_pos=0;
mysql>start slave;
mysql>show slave status\G;
下面给出一些推荐的复制配置
主库上二进制日志最重要的选项sync_binlog=1 ,开启该选项,mysql每次在事务提交前会把二进制日志同步到磁盘,保证服务器崩溃时,不会丢失事件。它只作用于binglog,而不是relay_log
如使用innoDB选项,则推荐下列选项:
innodb_flush_log_at_trx_commit#flush
every log write
innodb_support_xa =1
#mysql 5.0 or newer only (innodb_safe_binglog#mysql 4.0 only)
skip_slave_start #选项阻止备库奔溃重启后自动启动复制
read_only #选项阻止大部分用户修改非临时表
在主库上把更新的数据写入到二进制日志binglog文件里面;
备库把主库的二进制日志复制到自己的relay_log中;
备库读取relay_log并将里面的数据重放到数据库。
上述步骤在主从之间涉及到3个线程,a:主库上面的数据写入binglog线程,b:从库上面启动的I/O数据同步线程,该线程在主库上启动一个特殊的二进制转储线程,去读取binglog文件,并把数据发送给I/O线程保存到relay_log,c:从库的sql线程读取relay_log并写入数据库
创建同步复制帐号:该帐号需要下列权限
mysql>grant replication slave,replication client on *.* to rep@'172.16.0.%' identified by 'password';
复制帐号的权限其实只需要replication slave权限,replication client 是为了复制帐号的监控和管理需要
配置主库和从库配置文件,在主库修改my.cnf文件的下列选项
log_bin = /Data/mysql/3306/data/mysql #开启binglog文件记录
server_id = 1 #必须明确指明server_id,而且不容许复制环境有重复的server_id
relay_log = /Data/mysql/3306/data/mysql-relay-bin #开启relay_log并指定位置,该选项有默认值,也可不加
log_slave_updates = 1 #写relay-log的时候也写到bin-log,主要用在M-M-S环境,这里也可以不启用
备注:不要在配置文件my.cnf里面设置master_host或master_port这些老的选项,会导致一些问题
启动复制:mysql>change master to master_host = '172.16.0.11',master_user='rep',master_password='password',master_log_file='mysql-bin.000001',master_log_pos=0;
mysql>start slave;
mysql>show slave status\G;
下面给出一些推荐的复制配置
主库上二进制日志最重要的选项sync_binlog=1 ,开启该选项,mysql每次在事务提交前会把二进制日志同步到磁盘,保证服务器崩溃时,不会丢失事件。它只作用于binglog,而不是relay_log
如使用innoDB选项,则推荐下列选项:
innodb_flush_log_at_trx_commit#flush
every log write
innodb_support_xa =1
#mysql 5.0 or newer only (innodb_safe_binglog#mysql 4.0 only)
skip_slave_start #选项阻止备库奔溃重启后自动启动复制
read_only #选项阻止大部分用户修改非临时表
相关文章推荐
- mysql主从复制原理和注意事项
- MySQL5.5主从复制架构配置及注意事项
- MySQL 5.5 主从复制异步、半同步以及注意事项详解
- MySQL 5.5 主从复制异步、半同步以及注意事项详解
- MySQL主从复制的原理及实现过程(mysql-5.5的同步、半步复制过程) 推荐
- mysql主从复制的原理及配置实现
- MySql主从复制原理介绍
- Mysql 主从复制实现原理
- mysql复制注意事项
- mysql 主从、主主复制原理详解
- mysql主从服务器的创建方法和需要注意的相关事项
- Mysql主从复制技术原理
- Linux(Ubuntu)环境MYSQL->master/slave主从同步设置以及注意事项
- Mysql原理、主从复制、半同步复制及基于SSL复制
- MariaDB/Mysql之主从架构的复制原理及主从/双主配置详解(一)
- 复制最佳实践MySQL 磁盘复制技术--DRBD:优缺点比较、注意事项以及最佳实践
- mysql主从复制的原理,配置方法及在线添加多个从库
- mysql主从复制的原理及配置实现
- lamp系列-MySQL主从复制原理视频(老男孩出品)
- mysql主从复制原理和注意事项