MySQL5.7主從複製教學

2023-03-06 18:02:34

​ 簡述:主從複製,是用來建立一個和主資料庫完全一樣的資料庫環境,稱為從資料庫,主資料庫一般是準實時的 業務資料庫、事務處理庫,從庫做查詢庫。

​ 複製過程簡單的說就是 master 將資料庫的改變寫入二進位制紀錄檔,slave同步這些二進位制紀錄檔,並根據這些二進位制紀錄檔行資料操作

1、什麼是主從複製

​ 主從複製,是用來建立一個和主資料庫完全一樣的資料庫環境,稱為從資料庫,主資料庫一般是準實時的業務資料庫。在最常用的mysql資料庫中,支援單向、非同步複製。在複製過程中,一個伺服器充當主伺服器,而另外一臺伺服器充當從伺服器;此時主伺服器會將更新資訊寫入到一個特定的二進位制檔案中。

​ 並會維護檔案的一個索參照來跟蹤紀錄檔迴圈。這個紀錄檔可以記錄並行送到從伺服器的更新中去。當一臺從伺服器連線到主伺服器時,從伺服器會通知主伺服器從伺服器的紀錄檔檔案中讀取最後一次成功更新的位置。然後從伺服器會接收從哪個時刻起發生的任何更新,然後鎖住並等到主伺服器通知新的更新。

2、主從複製的作用

  1. 是確保資料安全;做資料的熱備,作為後備資料庫,主資料庫伺服器故障後,可切換到從資料庫繼續工作,避免資料的丟失。

  2. 是提升I/O效能;隨著日常生產中業務量越來越大,I/O存取頻率越來越高,單機無法滿足,此時做多庫的儲存,有效降低磁碟I/O存取的頻率,提高了單個裝置的I/O效能。

  3. 是讀寫分離,使資料庫能支援更大的並行;在報表中尤其重要。由於部分報表sql語句非常的慢,導致鎖表,影響前臺服務。如果前臺使用master,報表使用slave,那麼報表sql將不會造成前臺鎖,保證了前臺速度。

3、主從複製的原理三步曲進行:

主資料庫有個bin log二進位制檔案,記錄了所有增刪改SQL語句。(binlog執行緒)

從資料庫把主資料庫的bin log檔案的SQL語句複製到自己的中繼紀錄檔relay log(io執行緒)

從資料庫的relay log重做紀錄檔檔案,再執行一次這些sql語句。(sql執行執行緒)

一、環境描述

伺服器優化注意事項

Ⅰ、伺服器的大磁碟必須掛載到/opt目錄下,服務的目錄以及資料都儲存在/opt/software下

Ⅱ、磁碟掛載必須預設寫入/etc/fstab

首先在兩個伺服器上建立兩個資料庫

作業系統 IP地址 資料庫 資料庫版本
CentOS 7.9 1.0.0.11 MySQL主 5.7.38
CentOS 7.9 1.0.0.12 MySQL從 5.7.38
CentOS 7.9 1.0.0.13 MySQL從 5.7.38

二、Linux基礎設定

# 檢視伺服器版本
cat /etc/redhat-release
# 檢視伺服器磁碟空間使用情況
df -h
# 新建資料夾package存放壓縮包
mkdir /opt/package
# 新建資料夾software存放解壓後的軟體
mkdir /opt/software
# 新建資料夾存放專案
mkdir /opt/project
# 新建資料夾apr存放檔案
mkdir /opt/software/apr
# 新建資料夾apr-util存放檔案
mkdir /opt/software/apr-util

關閉防火牆

# 檢視防火牆狀態
firewall-cmd --state
# 關閉防火牆(重啟伺服器會開啟)
systemctl stop firewalld.service
# 永久關閉防火牆
systemctl disable firewalld.service

關閉SELinux

# 關閉SELinux修改組態檔需要重啟機器:
# 修改/etc/selinux/config 檔案
vim /etc/selinux/config
將SELINUX=enforcing 改為:SELINUX=disabled
# 重啟機器生效
reboot

設定IP、主機名對映

vim /etc/hosts
1.0.0.11 nwtest1
1.0.0.12 nwtest2
1.0.0.13 nwtest3

設定時間同步

# 聯網
# 設定東八區時區為當前時區
rm -rf /etc/localtime
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 手動同步下網路時間
ntpdate -u cn.pool.ntp.org
# 內網狀態時間設定
# 檢視當前系統時間
date
# 檢視硬體時間
hwclock
# 修改當前系統時間
date -s "2023-1-1 8:08:08"
# 修改硬體時間
hwclock --set --date "2023-1-1 8:08:08"
# 同步系統時間和硬體時間
hwclock --hctosys
# 儲存時鐘
clock -w
# 重啟機器生效
reboot

三、安裝MySQL5.7.38

Master/Slave部署