首页 > 代码库 > 主从同步工作过程?(binlog日志)

主从同步工作过程?(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;

把从库恢复会独立的数据库服务器
[root@mail 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日志?
[root@stu ~]# 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日志时指定存储位置和文件名
[root@stu ~]# 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;

[root@stu logdir]# mysql  -uroot  -p123  -e   "flush logs"

[root@stu 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


[root@stu 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
[root@stu logdir]#

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


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

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