17.1.1.9 Introducing Additional Slaves to an Existing Replication Environment 引入额外的Slaves 到一个存在的复制

来源:互联网 发布:淘宝李宁是真的吗 编辑:程序博客网 时间:2024/05/18 15:29
17.1.1.9 Introducing Additional Slaves to an Existing Replication Environment   引入额外的Slaves 到一个存在的复制环境:如果添加另外的slave 到一个存在的复制配置,你可以这样做 不需要停止master.代替的是,设置新的slave 通过 拷贝一份存在的slave,除了配置新的slave 使用不同的server-id值复制现有的存在slave:1.关闭存在的slave:shell> mysqladmin shutdown2.将数据目录从存在的slave 复制到新的slave,你可以通过创建tar或者WinZip文件,或者通过执行一个cp或者rsync,确保也包括log files和relay log files.一个通用的问题是遇到 当增加新的复制slaves 是新的slaves 失败 一系列的警告和错误信息如下:071118 16:44:10 [Warning] Neither --relay-log nor --relay-log-index were used; soreplication may break when this MySQL server acts as a slave and has his hostnamechanged!! Please use '--relay-log=new_slave_hostname-relay-bin' to avoid this problem.071118 16:44:10 [ERROR] Failed to open the relay log './old_slave_hostname-relay-bin.003525'(relay_log_pos 22940879)071118 16:44:10 [ERROR] Could not find target log during relay log initialization071118 16:44:10 [ERROR] Failed to initialize the master info structure这是由于事实,如果--relay-log  选项没有被指定,relay log 文件包含了主机名作为文件名的部分(这个对于relay log index 文件也是一样 如果  --relay-log-index 选项没有被指定 为了避免这个问题,使用 相同的值对于--relay-log 在新的slave,和用于存在的slave(如果选项没有被指定在存在的slave上,使用existing_slave_hostname-relay-bin.)如果这个是不行的,复制存在的slave的relay log index file 到新的slave 设置 --relay-log-index在新的slave 来匹配 在存在的slave上。(如果这个选项没有被指定在存在的slave上,使用existing_slave_hostname-relay-bin.index)作为一种选择--如果你已经尝试启动新的slave(遵循下面存在的步骤)a.如果你没有这么做,执行stop slave 在新的slave上 如果 你已经启动存在的slave,执行一个stop slave 在存在的slave上b. 复制存在的slave的relay log 文件的内容到新的slave的relay log index file,确保覆盖任何存在的文件的内容.c.继续在本节中其余步骤:复制master info 和relay log info 信息库从存在的slave到新的slave.那些保留当前的log的位置对于master的binary log和slave的relay log4.启动存在的slave5.在新的slave上, 编辑配置和给定新的slave 一个唯一的server-id 不被master和其他任何的slave使用开始新的slave,slave使用信息在它的master info 信息库来开始复制

0 0
原创粉丝点击