MySQL主从说明详解、MySQL主从不同步处理方案

MySQL主从说明

同步问题

mysqldump:此工具适用于10G以下数据库或几个表
percona-Xtrabackup备份工具:适用于100G-500G
LVM快照:更大的数据量,或分库分表

主从复制目的

  1. 读写分离,减轻主库负载或数据分析;
  2. 数据安全,做备份恢复;
  3. 主从切换,做高可用;

常见主从结构:

一主一从:一个Master,一个Slave
一主多从:一个Master,多个slave

Master节点:负责所有的【写】请求
Slave节点:负责大部分的【读】请求

主从复制步骤

  1. A数据更新
  2. A写入Bin Log
  3. A的io线程与B的io线程传输通信
  4. B将传输的信息写入Relay Log
  5. B检查到Relay Log有新内容后执行SQL语句
  6. B更新数据

MySQL主从数据不同步处理

检查

master库(也就是主服务库)

mysql>show processlist;            //查看进程是否sleep太多
mysql>show master status;        //查看主服务器的master数据状态

Slave库(从库)

mysql>show slave status\G            //查看slave的同步状况,主要是IO与SQL
Slave_IO_Running: Yes
Slave_SQL_Running: No
这两个必须是yes状态,由此可见slave不同步状态

处理方案

方法一:忽略错误,继续同步

适用于主从库数据相差不大,或者要求数据可以不完全统一的情况,数据要求不严格的情况;

Slave库修复
mysql>stop slave;                                                                //停止同步
mysql>set global sql_slave_skip_counter =1;                        //跳过一步错误
mysql>start slave;                                                                //开启同步

方法二:重做主从,完全同步

适用于主从库数据相差较大,或者要求数据完全统一的情况;

master库设置

mysql>flush tables with read lock;                //锁定为只读,防止数据写入
mysqldump -uroot -p‘123456‘ mysql > /tmp/mysql.bak.sql        //备份数据到目录
mysql> show master status;                    //查看master的状态,写同步配置会用到相关数据
scp /tmp/mysql.bak.sql [email protected]:/tmp/        //将mysql的备份文件传到从库机器
Slave库设置

mysql>stop slave;                //停止同步
mysql>source /tmp/mysql.bak.sql        //使用备份就行恢复数据,也可以使用mysqldump命令
change master to master_host = ‘192.168.128.100‘, master_user = ‘rsync‘, master_port=3306, master_password=‘‘, master_log_file = ‘mysqld-bin.000001‘, master_log_pos=3260;         //设置从库同步,其中log_file与log_pos的参数来自于主服务的show master status里
mysql>start slave;                    //开启从同步
mysql>show slave status\G                //查看同步状态

原文地址:http://blog.51cto.com/shuzonglu/2094435

时间: 2024-08-06 02:20:54

MySQL主从说明详解、MySQL主从不同步处理方案的相关文章

Mysql—用户表详解(mysql.user)

用户列(用户连接MySQL数据库需要输入的信息) Host User Password  %  domain_check  *55B565DA3839E5955A68EA96EB735  localhost  domain_check  *55B565DA3839E5955A68EA96EB735  127.0.0.1  domain_check  *55B565DA3839E5955A68EA96EB735  126.26.98.25  domain_check  *55B565DA3839E

MySQL数据库优化详解(收藏)

MySQL数据库优化详解 mysql表复制 复制表结构+复制表数据mysql> create table t3 like t1;mysql> insert into t3 select * from t1;mysql索引 ALTER TABLE用来创建普通索引.UNIQUE索引或PRIMARY KEY索引ALTER TABLE table_name ADD INDEX index_name (column_list)ALTER TABLE table_name ADD UNIQUE (colu

Mysql 三大特性详解

Mysql 三大特性详解 Mysql Innodb后台线程 工作方式 首先Mysql进程模型是单进程多线程的.所以我们通过ps查找mysqld进程是只有一个. 体系架构 InnoDB存储引擎的架构如下图所以,是由多个内存块组成的内存池,同时又多个后台线程进行工作,文件是存储磁盘上的数据. 后台线程 上面看到一共有四种后台线程,每种线程都在不停地做自己的工作,他们的分工如下: Master Thread: 是最核心的线程,主要负责将缓冲池中的数据异步刷新的磁盘,保证数据的一致性,包括脏页的刷新.合

MySQL主从架构详解

1.复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的.复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环.这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置.从服务器接收

mysql5.6主从参数详解

mysql5.6的主从相当的不错,增加了不少参数,提升了主从同步的安全和效率,以下是mysql5.6主从参数详解. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ######################################### server_id = 2 #binlog log-bin = /data1/mysql/binlog/binlog binlog_format

MySQL配置文件参数详解

[client] port = 3307 socket = /usr/local/mysql5_6/mysql.sock default-character-set=utf8 [mysql] prompt = mysql(\\[email protected]\h-\R:\\m:\\s [\\d])> #提示当前数据库操作用户名.库名.时间等 default-character-set=utf8 [mysqld] basedir = /usr/local/mysql5_6 datadir = /

MySQL数据库备份详解

原文:MySQL数据库备份详解 对于任何数据库来说,备份都是非常重要的 数据库复制不能取代备份的作用 比如我们由于误操作,在主数据库上删除了一些数据,由于主从复制的时间很短,在发现时,从数据库上的数据可能也已经被删除了, 我们不能使用从数据库上的数据来恢复主数据库上的数据,只能通过备份进行误删除数据的恢复 一. 备份的分类 1.按备份的结果来分: 逻辑备份 其备份结果为SQL语句,适合于所有存储引擎,恢复时需要较多时间,逻辑备份时,对于MyISAM存储引擎是需要进行锁表操作的,通过使用的mysq

MySQL配置文件mysql.ini参数详解、MySQL性能优化

MySQL配置文件mysql.ini参数详解.MySQL性能优化 my.ini(Linux系统下是my.cnf),当mysql服务器启动时它会读取这个文件,设置相关的运行环境参数. my.ini分为两块:Client Section和Server Section.   Client Section用来配置MySQL客户端参数.   要查看配置参数可以用下面的命令: show variables like '%innodb%'; # 查看innodb相关配置参数 show status like

MySQL存储过程详解 mysql 存储过程

MySQL存储过程详解  mysql 存储过程 (2010-12-13 10:59:38) 转载▼ 标签: it 分类: mysql mysql存储过程详解 1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它. 一个存储过程是一个可编程的函数,它在数据库中创建并保

详解mysql中的Using与On的用法

多用才可以体会各个关键字的用法啊... 原文来自[http://bbs.php100.com/read-htm-tid-148469.html] 在用Join进行多表联合查询时,我们通常使用On来建立两个表的关系.其实还有一个更方便的关键字,那就是Using.那么这两个关键字在使用上有啥区别呢?往下看.假设有如下两张表:    mysql> select * from pets; +---------+---------+--------+-----------+ | pets_id | ani