為mysql快速添加從庫,並為從庫添加從庫

來源:互聯網
上載者:User

標籤:mysql主從   mysql一主多從   mysql從庫的從庫   

現實情況下,mysql比較常見的是一主多從,而在主庫出現問題是,需要將其從庫升為主庫,但事實上這種操作非常繁瑣,基本上要對所有的從庫進行操作。

既然如此,不妨將mysql做成ABC的結構,A為主庫,B為A的從庫,C是B的從庫

這種情況,在A出現問題是,可以直接將B升為主庫,其餘下級從庫將不需要任何操作。

這裡記錄一次此類操作,我這裡的情況是,已經存在A和B,A是主,B是從

需求是,添加一個A的從庫C,再添加一個C的從庫D。


快速添加mysql從庫(前提是都已經安裝了相同版本的mysql)

首先將從庫B的主從stop掉

mysql> stop slave;Query OK, 0 rows affected(0.06 sec) mysql> show slave status\G;*************************** 1. row ***************************               Slave_IO_State:                  Master_Host: 10.10.1.171                  Master_User: mysqlab                  Master_Port: 3306                Connect_Retry: 60              Master_Log_File: mysql-bin.000096          Read_Master_Log_Pos: 585421644               Relay_Log_File: mysql-relay-bin.000279                Relay_Log_Pos: 2043143        Relay_Master_Log_File: mysql-bin.000096             Slave_IO_Running: No            Slave_SQL_Running: No


然後將從庫B的資料檔案打包,分別拷貝到新的從庫C和C的從庫D下(sock和pid檔案不要打包)

synctar  -czf mysqldata3326.tar.gz mysqldata3326/scp  mysqldata3326.tar.gz 10.10.1.173:/home/scp  mysqldata3326.tar.gz 10.10.1.174:/home/


解壓分別放在C和D的資料目錄(刪除主從資訊檔)

cd /hometar zxf mysqldata3326.tar.gzmv /home/mysqldata3326/datadir/master.info /home/mysqldata3326/datadir/master.info.bak


修改C和D的設定檔的server-id,C為11,    D為21,(我這裡有連接埠的區別,這個根據現實情況)

vim /home/mysqldata3326/my.cnf


分別啟動C和D

/usr/local/mysql/bin/mysqld_safe --defaults-file=/home/mysqldata3326/my.cnf --user=mysql &

 


配置C和D的主從(一定要先配置好C和D的主從)

C:查看C的master資訊

mysql> show master status;+------------------+----------+--------------+---------------------------------------------+| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB                            |+------------------+----------+--------------+---------------------------------------------+| mysql-bin.000092 |  1953402 |              | mysql,test,information_schema,sphinx_search |+------------------+----------+--------------+---------------------------------------------+

 

D:配置D的主從資訊

mysql> slave stop;mysql> reset slave;mysql> change master to master_host=‘10.10.1.173‘,master_user=‘mysqlab‘,master_password=‘xxxxx‘,master_log_file=‘mysql-bin.000092‘,master_log_pos=1953402;mysql> slave start;mysql> show slave status\G;*************************** 1. row ***************************               Slave_IO_State:                  Master_Host: 10.10.1.173                  Master_User: mysqlab                  Master_Port: 3326                Connect_Retry: 60              Master_Log_File: mysql-bin.000092          Read_Master_Log_Pos: 1953490               Relay_Log_File: mysql-relay-bin.000279                Relay_Log_Pos: 214513        Relay_Master_Log_File: mysql-bin.000092             Slave_IO_Running: Yes            Slave_SQL_Running: Yes

 


修改C的主庫同步資訊(這裡的主從資訊要和stop B從庫的資訊一致)

mysql> slave stop;mysql> reset slave;mysql> change master to master_host=‘10.10.1.171‘,master_user=‘mysqlab‘,master_password=‘xxxxxx‘,master_log_file=‘mysql-bin.000096‘,master_log_pos=585421644;mysql> slave start;


最後啟動B的主從!完成


驗證:

通過show slave status\G;查看主從資訊,SQL和IO線程是否為yes

最簡單的驗證就是在A裡隨便建立個庫,然後show一下D裡是否同步了。

本文出自 “Tuesday” 部落格,請務必保留此出處http://cuimk.blog.51cto.com/6649029/1590205

為mysql快速添加從庫,並為從庫添加從庫

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.