首页 > 代码库 > 主从同步工作过程?(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日志)