zoukankan      html  css  js  c++  java
  • 17.2.2 Replication Relay and Status Logs 复制relay 和状态日志

    17.2.2 Replication Relay and Status Logs 复制relay 和状态日志

    17.2.2.1 The Slave Relay Log
    17.2.2.2 Slave Status Logs

    在复制过程中, slave server 创建几个日志,保留binary log events 从master到slave,

    记录关于当前状态和位置信息 关于relay log, 这里有3类日志,在这里列出:

    relay log 有从master 读取的binary log 和 slave I/O thread 写入的events组成,

    relay log 中的events 被SQL thread 执行。

    master info 记录了 状态和当前配置信息用于slave连接到master 的内容。

    这个log 保留关于master 的host name,登录认证,和位置标明slave 从master 的binary log读取信息的程度。

    在MySQL 5.6之前,log 总是一个文件(master.info) ,但是在MySQL 5.6以后,

    log 可以被写入到mysql.slave_master_info table代替文件,通过启动带 –master-info-repository=TABLE.

    relay log 信息 保留状态信息关于slave relay log的执行点。

    MySQL 5.6之前, log总是一个文件(relay-log.info),但是在MySQL 5.6以后,

    这个log 可以写入到mysql.slave_relay_log_info table代替文件 通过设置 –relay-log-info-repository=TABLE.

    Crash-safe 复制, 为了复制能crash-safe 当使用表来记录状态和relay 信息,

    这些表必须是事务表。

    在MySQL 5.6.6开始,这些表是InnoDB表。

    因此, 为了保证在slave上crash safety,你必须运行slave带–relay-log-recovery,

    此外还要设置 –relay-log-info-repository为表

    relay_log_info_repository = TABLE
    master_info_repository = TABLE
    relay_log_recovery = 1

    MySQL 5.6.6之前, 如果mysqld 无法初始化复制记录到表,slave拒绝启动。

    在MySQL 5.6.6之后,会给出一个警告, 但是slave会继续运行。

    在MySQL 5.6.5和更早的版本中, slave_master_info and slave_relay_log_info表默认使用

    MyISAM, 这意味着 在你开始复制前 需要改变表的存储引擎:

    ALTER TABLE mysql.slave_master_info ENGINE=InnoDB;
    ALTER TABLE mysql.slave_relay_log_info ENGINE=InnoDB;

    注意:

    不要试图手动更新或者插入记录到slave_master_info or slave_relay_log_info table,

    这么做会导致异常行为。

  • 相关阅读:
    一步一步学数据结构之(动态申请二维数组)
    运维自动化
    oracle查看登录到oracle服务器的客户端ip
    权限
    windows下使用SQLPLUS制作BAT执行SQL文件
    rsyslog传输type
    C经典实例
    mysql导出数据库数据及表结构
    解决oracle11g无法导出空表问题
    opennebula onenebula
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351315.html
Copyright © 2011-2022 走看看