主从同步工作过程?(binlog日志)

在从数据库服务器的/var/lib/mysql/
master.info   记录连接主数据库服务器信息文件
mail-relay-bin.XXXXXX   中继日志文件(记录SQL)
mail-relay-bin.index    索引文件(记录已有的中继日志文件)
relay-log.info     记录日志信息文件
start  slave;

Slave_IO_Running: Yes
负责把master数据库服务器上binlog日志里SQL命令同步到本

机的中继日志文件。

出错: 连接不是主数据库服务器(ping   iptables   selinux

grant   binlog日志信息指定错误(名  pos))

查看报错信息:
Last_IO_Errno: 0
Last_IO_Error:  报错信息

修改错误
stop  slave;
change  master   to   选项="值",选项="值";
start  slave;
++++++++++++++++++++++++
Slave_SQL_Running: Yes
负责执行本机中继日志文件里的SQL命令,把数据写进本机的库里


出错:执行SQL命令时用到的库 表  字段 在本机不存在

查看报错信息:
Last_SQL_Errno: 1146
Last_SQL_Error: 报错信息

修改错误:
让从数据库服务器有主库上库和表
stop slave;
start  slave;

把从库恢复会独立的数据库服务器
[[email protected] mysql]# rm  -rf master.info  relay-log.info

mail-relay-bin.*

/etc/init.d/mysql  restart

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

2.7.2    增量备份与增量恢复
2.7.2.1  启用mysql数据库服务的binlog日志 ,达到对数据做增备份的目的。

什么是binlog日志:mysql数据库服务日志中的一种,又被称作二进制日志。记录客户端连接mysql数据库服务后,执行的除查询之外的SQL命令

查询命令包括:   select     desc      show

启用binlog日志?
[[email protected] ~]# vim  /etc/my.cnf
[mysqld]
log-bin
.....
:wq
/etc/init.d/mysql  restart

binlog日志文件默认存储在数据库目录下?  /var/lib/mysql/
binlog日志文件默认命名方式?
主机头名-bin.000001   #binlog日志文件,文件容量大于500M

后自动创建新的binlog日志文件
主机头名-bin.index       #binlog日志索引文件

查看binlog日志文件内容?
mysqlbinlog    目录/binlog日志文件
mysqlbinlog     /var/lib/mysql/stu-bin.000001

启用binlog日志时指定存储位置和文件名
[[email protected] ~]# vim  /etc/my.cnf
[mysqld]
#log-bin
log-bin=/logdir/plj
.....
:wq

mkdir  /logdir
chown  mysql  /logdir
/etc/init.d/mysql  restart

mysqlbinlog   /logdir/plj.000001

手动生成新的binlog日志文件?
/etc/init.d/mysql  restart

mysql>  flush  logs;

[[email protected] logdir]# mysql  -uroot  -p123  -e   "flush logs"

[[email protected] logdir]# mysqldump  -uroot  -p123  --flush-logs   数据库名  > 目录名/xxx.sql

执行binlog日志里的SQL命令恢复记录。

mysqlbinlog  【选项】 目录/binlog日志文件 | mysql  -uroot  -p123   [数据库名]

选项
时间点
--start-datetime="yyyy-mm-dd  hh:mm:ss"
--stop-datetime="yyyy-mm-dd  hh:mm:ss"

偏移量
--start-position=数字
--stop-position=数字

mysqlbinlog --stop-position=1093 plj.000008 | mysql -uroot -p123

[[email protected] logdir]# cat plj.index
/logdir/plj.000001
/logdir/plj.000002
/logdir/plj.000003
/logdir/plj.000004
/logdir/plj.000005
/logdir/plj.000006
/logdir/plj.000007
/logdir/plj.000008
[[email protected] logdir]#

[[email protected] logdir]# mysqlbinlog `sed   ‘$d‘ plj.index`  | mysql -uroot  -p123
mysqlbinlog --stop-position=1093 plj.000008 | mysql -uroot -p123

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

时间: 2024-08-27 11:14:08

主从同步工作过程?(binlog日志)的相关文章

MYSQL主从同步如何自动化清理日志?

目前MYSQL 主从同步已经做好了.现在在考虑日志容量的问题,曾经被binlog搞爆过磁盘.主从存在 主的mysql-bin 和 从的中继日志,我想请教一下有没有办法自动化去清理这俩个日志并且不影响到主从数据同步.百度了都是手动形式的,这样可太麻烦了.我的想法是,mysql-bin是有pos的,不知道能不能从pos着手去清理某个点以前的日志,这样的话也不用锁表吧.但我不清楚如何能实现.如果是从整个mysql-bin去清理,可能会需要去用到锁表吧.那用到了锁表是不是不太容易去自动化清理了?或者哪位

主从同步、读写分离、mysql性能调优(软优化)

配置mysql主从同步1 主从同步的作用:让slave身份的数据库服务器自动同步 master身份的数据库服务器上的数据. 一.主数据库服务器的配置192.168.4.121 用户授权mysql> grant replication slave on *.* to [email protected]"192.168.4.11" identified by "123456";2 启用binlog日志vim /etc/my.cnf[mysqld]server_id

MySQL主从同步(复制)的配置

1.主从复制的原理: *Master,记录数据更改操作 - 启用binlog记录模式 - 允许Slave读取binlog日志 *Slave运行2个同步线程 - Slave_IO:负责连接Master,复制其binlog日志文件到本机的relay-log文件 - Slave_SQL:执行本机relay-log文件里的SQL语句,重现Master的数据操作 2.基本构建思路: 1)初始化现有库:将主库导入从库,确保数据一致性 2)配置Master,主服务器:调整运行参数,授权一个同步用户 3)配置S

Mysql主从同步(Mysql A B复制)配置

Mysql主从同步(Mysql A B复制)配置 Mysql主从同步(Mysql AB复制)功能是自动备份数据 vim/var/lib/mysql/auto.cnf  数值不能一样 master主               slave从 192.168.1.1        192.168.1.2 1.主从环境配置:    mysql_5.6版本 servicemysql start         ping通         service iptablesstop         sete

mysql5.5主从同步复制配置

在上篇文章<烂泥:学习mysql数据库主从同步复制原理>中,我们介绍了有关mysql主从复制的基本原理.在这篇文章中,我们来实际测试下mysql5.5的主从同步复制功能. 注意mysql5.1.7以前版本与其以后的版本在主从同步部分参数不同.mysql5.1.7以后的版本中不支持master-connect-retry之类的参数.如果在my.cnf文件中加入该类似的参数,mysql会在下次重启时报错. 说明:主库master与从库slave都是centos6.5 64bit,如下: cat /

烂泥:mysql5.5主从同步复制配置

本文首发于烂泥行天下. 在上篇文章<烂泥:学习mysql数据库主从同步复制原理>中,我们介绍了有关mysql主从复制的基本原理.在这篇文章中,我们来实际测试下mysql5.5的主从同步复制功能. 注意mysql5.1.7以前版本与其以后的版本在主从同步部分参数不同.mysql5.1.7以后的版本中不支持master-connect-retry之类的参数.如果在my.cnf文件中加入该类似的参数,mysql会在下次重启时报错. 说明:主库master与从库slave都是centos6.5 64b

MySQL主从同步原理讲述

关于mysql主从同步,相信大家都不陌生,随着系统应用访问量逐渐增大,单台数据库读写访问压力也随之增大,当读写访问达到一定瓶颈时,将数据库的读写效率骤然下降,甚至不可用:为了解决此类问题,通常会采用mysql集群,当主库宕机后,集群会自动将一个从库升级为主库,继续对外提供服务:那么主库和从库之间的数据是如何同步的呢? 为了减轻主库的压力,应该在系统应用层面做读写分离,写操作走主库,读操作走从库,下图为MySQL官网给出的主从复制的原理图,从图中可以简单的了解读写分离及主从同步的过程,分散了数据库

Mysql主从同步(复制)

目录: mysql主从同步定义      主从同步机制 配置主从同步      配置主服务器      配置从服务器 使用主从同步来备份      使用mysqldump来备份      备份原始文件 主从同步的小技巧 排错      Slave_IO_Running: NO      Slave_SQL_Running: No   mysql主从同步定义 主从同步使得数据可以从一个数据库服务器复制到其他服务器上,在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(s

Redis主从同步分析

一.Redis主从同步原理1.1 Redis主从同步的过程配置好slave服务器连接的master后,slave会建立和master的连接,然后发送sync命令.无论是第一次同步建立的连接还是连接断开后的重新连接,master都会启动一个后台进程,将数据库快照保存到文件中.同时master主进程会开始收集新的写命令并缓存起来.当后台进程完成写文件后,master就将快照文件发送给slave,slave将文件保存到磁盘上,然后加载到内存将数据库快照恢复到slave上.slave完成快照文件的恢复后