1.如图,级联复制如果转化成一主两从?

级联复制转化成一主两从_复制


GTID复制处理方法:

只需要把S2的复制停掉,然后重新change到M上即可;

S2:

stop slave;

reset slave all;

change master to M;

start slave


传统复制处理方法(比较复杂):

(1)停止S1的复制,这个时候S1和S2停在同一位置


(2)在S1上执行show slave status\G 

root@localhost [testdb]>show slave status\G

*************************** 1. row ***************************

               Slave_IO_State:

                  Master_Host: 192.168.91.22

                  Master_User: repl

                  Master_Port: 3306

                Connect_Retry: 60

              Master_Log_File: mysql-bin.000008

          Read_Master_Log_Pos: 917

               Relay_Log_File: relay-bin.000011

                Relay_Log_Pos: 718

        Relay_Master_Log_File: mysql-bin.000008

             Slave_IO_Running: No

            Slave_SQL_Running: No

          Exec_Master_Log_Pos: 917


(3)把S2change到主库M上

change master to

    master_host='192.168.91.22',

    master_port=3306,

    master_user='repl',

    master_password='147258',

    master_log_file='mysql-bin.000008 ',

    master_log_pos='917 ';


(4)最后把S1复制启动起来



2.如图,一主两从如何转化成级联复制?

级联复制转化成一主两从_转化_02

GTID复制处理方法:

比较简单,直接S2change到主库S1上


传统复制处理方法

(1)使S1和S2复制同时出错在某个点,如1032错误,这样两边复制都停在同一个位置,确定master_log_file和master_log_pos位置

(2)把S2change到主库S1上

(3)把S1错误修复