1. 程式人生 > >Setting up replication(主從複製)一主多備

Setting up replication(主從複製)一主多備

mysql資料庫安裝參考再次不在詳述,本文采用的是mysql8.0.12

介紹

主從複製涉及單個主伺服器和多個從伺服器,結構圖如下,所有的主從複製都是基於binary log 在這裡插入圖片描述 開啟主從複製有以下幾步

  1. 在Master伺服器上開啟binary logging
  2. 在Master伺服器上建立用於遠端複製的使用者
  3. 在Slave伺服器上設定唯一的server_id
  4. 在Master上獲取Master伺服器的備份集
  5. 在Slave上恢復資料庫 下面我們來一步一步操作以下。

安裝

一 開啟binary logging

1 設定log-bin路徑以及server-id

vi /etc/my.cnf
log-bin = /app/mysql/mysqldata/3306/binlog/mysql-bin
server-id = 1203306

2 重啟Mysql資料庫

systemctl restart mysqld

3 驗證是否啟動成功

SHOW VARIABLES LIKE 'log_bin%';

在這裡插入圖片描述

ls -lhtr /app/mysql/mysqldata/3306/binlog

在這裡插入圖片描述 如圖代表配置正確

二 在Master伺服器上建立用於遠端複製的使用者

create user 'binlog_user'@'%' identified by 'binlog_user'; 
GRANT RELOAD,SUPER, REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO 'binlog_user'@'%' ;
flush privileges;

三 在Slave伺服器設定SERVER_ID

必須保證在叢集環境中的每一個SERVER_ID是唯一的,不能相同

SET @@GLOBAL.SERVER_ID = 21203306;

四 在Slave伺服器備份資料庫

mysqldump -h <master_host> \
-u backup_user \
--password=<pass> \
--all-databases \
--routines --events \
--single-transaction \
--master-data  > dump.sql

在這裡插入圖片描述 可以增加–slave-dump從Slave節點備份資料

mydumper -h <master_host> \
-u backup_user \
--password=<pass> \
--use-savepoints  \
--trx-consistency-only \
--kill-long-queries \
--outputdir /app/mysql/mysqldata/backup