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

Posted 冥想心灵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了主从同步工作过程?(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


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

以上是关于主从同步工作过程?(binlog日志)的主要内容,如果未能解决你的问题,请参考以下文章

MySQL主从介绍准备工作准备工作配置从测试主从同步

MySQL主从复制和半同步复制

Mysql 5.6主从同步配置

8.31 MySQL主从配置准备工作配置主配置从测试主从同步

mysql主从复制问题之主从两端binlog日志不同步解决方案

mysql主从同步中binlog dump线程僵尸 怎么解决