系列文章:
 
本文内容部分整理自《高性能mysql》,链接如下:
 
 
 
两种复制方式
 
mysql支持两种复制方式:基于语句的复制和基于行的复制。
 
 基于语句的复制(逻辑复制)在mysql 3.23版本就已存在,基于行的版本在5.1版本引入。
 
 两种方式都是通过在主库记录二进制日志,在备库重放日志的方式来实现异步的数据复制。但是区别在于,基于语句复制时,日志中记录的是sql语句;基于行复制时,日志中记录的是变化了的数据。
 
复制的流程图如下:
 
 
 
复制三个步骤:
 
1.主库把数据更改记录到二进制日志(binarylog)中;
2.备库将主库上的日志复制到自己的中继日志(relay log)中;
3.备库读取中继日志中的事件,将其重放到备库数据之上;
 
 而在复制的过程中,会有一定的延迟,原因在于主库更新数据是多线程操作,而从库更新数据是单线程。从库使用单线程更新是要考虑语句顺序问题。
 
 
语句复制和行复制相对比,各自特点如下:
 
 
基于语句复制:主库记录造成数据修改的语句,在从库上再执行一遍。好处实现简单,缺点必须串行实现。
 
 基于行复制:将实际数据(变化了的数据)放在二进制日志中,好处是可以正确地复制每一行,缺点是当进行全表操作时复制代价大,时间点恢复也实现复杂。
 
 
 
配置主从
 
 
1.配置主库my.cnf文件
 
log_bin = mysql-bin
server_id = 10
2.配置授权账号及查看主库状态
 
grant replication slave on *.* to slave@192.168.1.11 identified by '123456' ;
show master status;
3.配置从库my.cnf
 
log_bin = mysql-bin
server_id = 12
relay_log = /var/lib/mysql/mysql-relay-bin
log_slave_updates = 1
read_only = 1
4.从库连接主库
 
change master to master_host='server1',
master_user = 'slave';
master_password = '123456',
master_log_file = 'mysql_bin.000001',
master_log_pos = 0;
5.查看复制状态
 
show slave status/G
 
 
正常状态为
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
6.开始复制
 
start slave;
 主从不同步解决思路
 
1.先查看主库
 
 show processlist;  --  查看下进程是否Sleep太多。发现很正常。
 
 show master status;  -- 也正常。
 
+-------------------+----------+--------------+-------------------------------+
 | File              | Position | Binlog_Do_DB | Binlog_Ignore_DB              |
 +-------------------+----------+--------------+-------------------------------+
 | mysqld-bin.000001 |     3260 |              | mysql,test,information_schema |
 +-------------------+----------+--------------+-------------------------------+
 1 row in set (0.00 sec)
 
2.查看从库
 
show slave status\G  
 
                                              
 
 Slave_IO_Running: Yes
 Slave_SQL_Running: No -- 说明有错误
 
 
3.跳过错误
 
stop slave;
#表示跳过一步错误,后面的数字可变
set global sql_slave_skip_counter =1;
start slave;
show slave status\G;
 
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
 
                  
                  
                  
                  
                            
本文详细介绍了MySQL的主从复制机制,包括基于语句和基于行的复制方式,并提供了具体的配置步骤与解决不同步问题的方法。
          
      
          
                
                
                
                
              
                
                
                
                
                
              
                
                
              
            
                  
被折叠的  条评论
		 为什么被折叠?
		 
		 
		
    
  
    
  
            


            