mysql主從庫搭建

1、主備庫的搭建:

    略

主庫:10.1.1.17
備庫:10.1.1.18



2、主庫授權:

允許複製備份的權限

GRANT REPLICATION SLAVE ON *.* TO 'slaveuser'@'10.1.1.18' IDENTIFIED BY 'hsdhsT56';
FLUSH PRIVILEGES


3、主庫數據導出

mysqldump  -uroot -p  -h 127.0.0.1 --databases TestDB --default-character-set=utf8 --net_buffer_length=16535 --single-transaction --master-data=2   >TestDB.sql

如果該機器上有多個庫,可以將所有庫都導出

mysqldump  -uroot -p  -h 127.0.0.1 --all-databases --default-character-set=utf8 --net_buffer_length=16535 --max_allowed_packet=1048576 --single-transaction --master-data=2   >all_databases.sql

參數說明:

因爲我們這裏是數據備份出來並作爲slave導入,所以需要--single-transaction --master-data搭配使用,如果只是單純導出數據可以只使用--single-transaction

net_buffer_length:
TCP/IP和套接字通信緩衝區大小,創建長度達net_buffer_length的行,如果這個值比目標數據庫的值大,可能會出錯。


--max_allowed_packet=1048576
客戶端/服務器之間通信的緩存區的最大大小,使用這個參數,主要是爲加快導出
使用的時候我將該參數設置到了--max_allowed_packet=21048576才把我的13G數據導出時間從8分鐘縮短爲7分鐘。。。

single-transaction:
InnoDB 表在備份時,通常啓用選項 --single-transaction 來保證備份的一致性,實際上它的工作原理是設定本次會話的隔離級別爲:REPEATABLE READ,以確保本次會話(dump)時,不會看到其他會話已經提交了的數據。


master-data=2:
If the option value is 2, the CHANGE MASTER TO statement is written as an SQL comment, and thus is informative only; it has no effect when the dump file is reloaded. If the option value is 1, the statement takes effect when the dump file is reloaded. If the option value is not specified, the default value is 1.
意思是說:如果master-data=1,那麼CHANGE MASTER會被寫到語句中,如果是master-data=2,那麼CHANGE MASTER只是作爲註釋寫到內容中。這裏我們使用2,如果使用1,那麼數據導入後,CHANGE MASTER立即就運行了。我們希望CHANGE MASTER,由我們手工控制。

4、以上數據導入備庫

mysql -uroot -p  -e --max_allowed_packet=1048576 --net_buffer_length=16384 <all_databases.sql


5、

查看應該從哪個位置開始同步

grep -i "change master" TestDB.sql
MASTER_LOG_FILE='mysql-bin.000004', MASTER_LOG_POS=106這裏就說明了,我這次數據導出的末尾得主庫日誌爲mysql-bin.000004,位置爲106。那麼我把備庫起來之後,就需要從同步此位置之後的數據


6、開始同步

--停止slave
STOP SLAVE
--CHANGE MASTER到主庫
CHANGE MASTER TO MASTER_HOST='10.1.1.17',MASTER_USER='slaveuser',MASTER_PASSWORD='hsdhsT56',MASTER_LOG_FILE='mysql-bin.000004', MASTER_LOG_POS=106;
--開啓slave
START SLAVE;
查看slave狀態
SHOW SLAVE STATUS;



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章