zoukankan      html  css  js  c++  java
  • 主从同步工作过程?(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


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

  • 相关阅读:
    11 数值的整数次方
    10 二进制中1的个数
    6 重建二叉树
    5 从尾到头打印链表
    计算机网络面试题
    Http和Https的区别
    UVALive 7749 Convex Contour (计算几何)
    Gym 101190H Hard Refactoring (模拟坑题)
    UVa 11324 The Largest Clique (强连通分量+DP)
    HDU 6006 Engineer Assignment (状压DP)
  • 原文地址:https://www.cnblogs.com/linux985/p/7220800.html
Copyright © 2011-2022 走看看