zoukankan      html  css  js  c++  java
  • 17.2.2.1 The Slave Relay Log Slave中继日志

    17.2.2.1 The Slave Relay Log  Slave中继日志
    
    
    中继日志, 像binary log,有一组文件组成包含events 描述数据库的修改,和一个index文件包含所有使用过的relay log文件的名字
    
    
    术语"relay log file"通常表示一个但都数字文件包含数据库events.
    
    
    
    Relay log 文件有相同的格式和binary log 文件可以使用mysqlbinlog读取
    
    
    默认情况下,relay log 文件名格式为host_name-relay-bin.nnnnnn 在数据目录,
    
    
    host_name  是slave server host的名字  nnnnnn 是一个序列号。
    
    
    slave 使用一个index file 来跟踪 relay log files 当前在使用的
    
    默认的 relay log index file 名字是 host_name-relay-bin.index在数据目录下
    
    
    
    默认的relay log 文件和relay log index 名字可以覆盖
    
    
    如果一个slave 使用默认的基于主机名的relay log file names,
    
    改变一个slave的host name 在复制已经被设置后会导致复制失败由于打开relay log文件失败,不能找到目标日志
    
    
    
    如果你预期 一个slave的host name 可能将来被改变,你可以避免这个问题通过使用
    
     --relay-log and --relay-log-index options  来指定relay log文件名 当你在初始化设置slave的时候
    
    
    这样会让名字于server hostname 无关
    
    如果你遇到的问题在复制已经开始,一种方式是停止server,谋划旧的日志到新的relay log index file,
    
    然后重启slave 在一个Unix 系统,可以这么做:
    
    shell> cat new_relay_log_name.index >> old_relay_log_name.index
    shell> mv old_relay_log_name.index new_relay_log_name.index
    
    
    A slave server creates a new relay log file under the following conditions: 
    
    一个slave server 创建一个新的relay log 在下面的条件:
    
    1. 每次 I/O thread 启动
    
    2. 当日志被刷新,比如 FLUSH LOGS or mysqladmin flush-logs. 
    
    
    3.当当前的relay logfile的大小变的太大,
    
    mysql> show variables like '%max_relay_log_size%';
    +--------------------+-------+
    | Variable_name      | Value |
    +--------------------+-------+
    | max_relay_log_size | 0     |
    +--------------------+-------+
    1 row in set (0.00 sec)
    
    
    1.如果  max_relay_log_size  值是大于0, 那是最大的relay log file size
    
    
    2.如果值为0,max_binlog_size  决定了relay log files的最大值
    
    mysql> show variables like '%max_binlog_size%';
    +-----------------+-----------+
    | Variable_name   | Value     |
    +-----------------+-----------+
    | max_binlog_size | 536870912 |
    +-----------------+-----------+
    1 row in set (0.00 sec)
    
    mysql> exit
    Bye
    Vsftp:/data01/mysql# cat /etc/my.cnf | grep max_binlog_size
    max_binlog_size = 512M
    Vsftp:/data01/mysql#
    
    
    SQL thread 自动删除每个relay log文件一旦他已经执行了所有的events 不再被需要。
    
    
    这里没有机制对于删除relay log 因为SQL thread 做这个事情
    

  • 相关阅读:
    1836Alignment
    JS日期格式化
    excle自编公式方法
    excle的公式说明
    小技巧之一 string[]合并
    Nunit的使用小问题
    Ajax中上传文件的方式
    VSS也有BUG?
    SQL Server中将时间型的转为yyyyMMddhhmmss
    给已经存在的PDF文件加水印
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13350038.html
Copyright © 2011-2022 走看看