1. 程式人生 > 其它 >mysql主從配置實戰非同步複製-半同步複製

mysql主從配置實戰非同步複製-半同步複製

主從複製配置實戰

  1. /etc/mysql/my.cnf 主庫
    log-bin=/var/lib/mysql/mysql-bin
    server-id=123454

  2. /etc/mysql/my.cnf 從庫
    log-bin=/var/lib/mysql/mysql-bin
    server-id=111111

  3. 主庫全域性上鎖
    flush tables with read lock;

  4. 檢視主庫binlog狀態
    show master status\G

  5. 備份主庫
    mysqldump -h xxxx -P 33306 -u root --all-databases --master-data > dbdump.sql -p

  6. 將備份檔案複製到從庫
    cp ../mysql8/dbdump.sql .

  7. 釋放主庫鎖
    unlock tables;

  8. 進入從庫msyql客戶端,匯入備份檔案
    source dbdump.sql;

  9. 檢視從庫狀態
    show slave status\G

  10. 修改從庫對應的主庫
    change master to master_host="xxxx", master_user="root", master_log_file="mysql-bin.000001", master_log_pos=156;

  11. 開啟從庫
    start slave;

  12. 停止從庫、重置從庫
    stop slave;
    reset slave;

  13. 重新配置從庫對應的主庫,需要輸入埠號和密碼
    change master to master_host="4xxxxxxx", master_port=xxxx, master_user="root", master_password='xxxx', master_log_file="mysql-bin.000001", master_log_pos=156;

  14. 向主庫插入一條資料,從庫也跟著有了
    主庫和從庫的狀態是一致的
    show master status;
    show slave status;

預設主從採用的非同步複製

  1. 如何使用半同步複製,主要在主和從配置檔案中加入三行
    plugin-load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
    rpl-semi-sync-master-enabled = 1
    rpl-semi-sync-slave-enabled = 1

  2. 檢視主從脫庫時間(只有半同步複製才有這個時間,非同步複製沒有的)
    show variables like "rpl_semi_sync_master_timeout";

  3. 檢視正在做的執行緒
    show processlist\G

到此主從複製完成了。