1. 程式人生 > >【MySQL】MySQL From主從複製To雙機熱備

【MySQL】MySQL From主從複製To雙機熱備

        安裝完mysql之後,有了新的需求,就是需要有一臺伺服器用來做資料備份使用,以達到容災的目的,這樣需要怎麼做呢?還有我們需要進行多點訪問來減小單點壓力的時候又要怎麼辦呢?這個時候我們就引入了主從複製和雙機熱備的概念了。

        其實從實現上來講,雙機熱備就是我們做了兩個機器的主從互備。下面我們從原理上開始說,這次試用的mysql版本依舊是5.7.23,在網上看配置方法後,感覺和5.5以來的版本似乎都沒有什麼差別,在此提示。

一、主從複製原理

         主從複製的根本操作就是把從主伺服器上所執行過的sql在從機上再執行一遍,只要兩個機器的資料庫初態(資料庫結構,資料,配置)

是一樣的,那麼我們開啟主從複製之後就能保證他們一直都是一樣的狀態。這些都是mysql自己實現的,我們就配置一下就可以了。

首先看下面一張圖:

         從圖中我們可以看出來了,主伺服器需要做的事情非常簡單的,就只是把執行的sql語句儲存到二進位制檔案binary-log中,而從伺服器需要做的事情比較多,而且還得使用兩個執行緒進行整個事件的監聽和處理。

我們的主從複製一共分為三步:

  1. master將改變記錄到二進位制日誌(binary log)。這些記錄過程叫做二進位制日誌事件,binary log events。
  2. slave將master的binary log events拷貝到它的中繼日誌(relay log)。
  3. slave重做中繼日誌中的事件,將改變應用到自己的資料庫中。 MySQL複製是非同步的且序列化的。

基本原則

   由於主從複製的一些特性,為了保證資料一一致,所以這裡有些原則需要遵守:

  1. 每個slave只有一個master
  2. 每個slave只能有一個唯一的伺服器ID
  3. 每個master可以有多個salve

二、搭建主從服務

前提:

       1、兩臺裝有相同版本mysql的伺服器,分別是——M:192.168.65.135,S:192.168.65.136。

       2、都沒有配置過主從的叢集。

       3、防火牆3306埠開放(使用的預設埠)。

       4、兩臺伺服器的資料表結構,配置都必須是一樣的。

(一)、主伺服器設定

       1、建立一個從伺服器訪問需要使用的使用者,並授權。

  我們登陸到主伺服器的mysql上,並執行如下語句即可:

CREATE USER 'slave'@'192.168.65.%' IDENTIFIED BY '[email protected]';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.65.%';

注意,這裡建立使用者的時候可能會遇到弱密碼提示,請參照:

     2、修改my.cnf配置檔案      

[mysqld]
log-bin=mysql-bin
server-id=1

說明:
     1. log-bin:開啟二進位制日誌,該日誌是在事務提交時寫日誌檔案的。預設大小是1G,後面加001,002這樣的字尾順加。 
     2. server-id,唯一標識主機,mysql主從每個mysql例項配置都不一樣就行。這個值預設是0,如果是0,主伺服器拒絕任何從伺服器的連線。 

其他配置(不是必須配置的):

     1、binlog-do-db=db_001       #配置需要同步的資料庫,可以配置多個,如果沒有此配置項則同步全部。

     2、binlog-ignore-db=mysql    #配置不同步的資料庫,可以配置多個。

     3、binlog_format = mixed     #配置binlog的格式

     4、read-only = 0                   #配置是否只讀  0代表不只讀,1代表只讀

     5、auto-increament-increment = 10    #用於設定雙主情況下自增列的ID衝突使用的,主要用來設定自增步長

     6、auto-increment-offset = 1               #表示這臺伺服器的序號,從1開始,不超過auto-increament-increment
     

  3、同步資料(非必須)

       我們做主從同步,在最開始的時候,必須保證主從上的資料表的結構和資料都是一樣的,所以如果有資料不一樣的情況,我們需要進行這一步。

       首先執行master的資料dump備份:

mysqldump --all-databases --master-data -uroot -p > /tmp/dbdump.db

      然後我們在設定的目錄下拿到dump備份後,複製到從機上進行還原:

mysql -uroot -p < /tmp/dbdump.db 

這樣就搞定了主機的配置以及資料的同步。

(二)、從機配置

         從機的配置也很簡單。

      1、配置my.cnf

[mysqld]
server-id=2
binlog-do-db=db_001
binlog-ignore-db=mysql
skip-slave-start=true

這樣我們的從機就已經配置好了。

      2、修改UUID(非必須)

      如果你使用的是虛擬機器,而且從機是從master主機克隆出來的,那麼你就需要進行這一步的操作了。 

     首先到我們mysql的資料庫目錄下:

cd /var/lib/mysql

     然後我們會找到auto.cnf這個配置檔案:

 修改裡面的uuid為一個不同的即可:

(三)、配置執行

由於我們的主從都已經修改過配置檔案了,所以都需要重新啟動一下:

service mysqld restart

然後我們才能進行接下來的配置。

  1、獲取binlog的資訊

我們先到主(master)伺服器上獲取binlog的資訊,在mysql的命令介面輸入:

show master status;

        這裡展示的就是我們當前主伺服器使用的binlog的檔名,其中position是檔案中偏移量,我們之後配置slave需要用到這些資訊。

2、配置從伺服器認主

我們需要在從伺服器上配置需要連線的主伺服器的資訊,執行如下sql命令:

CHANGE MASTER TO
MASTER_HOST='192.168.65.135',
MASTER_USER='slave',
MASTER_PASSWORD='[email protected]',
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=419;

         這裡user和password就是我們第一步在主伺服器上建立的使用者名稱和密碼,然後MASTER_LOG_FILE 就是我們上一步檢視到的master在使用的binlog檔案(這個檔案在每次主伺服器狀態變化後都不同),MASTER_LOG_POS   就是binlog的偏移量,用於同步掃描使用。

3、啟動從服務

        最後我們在從伺服器的mysql命令中輸入:

start slave;

就可以啟動我們的從伺服器進行同步了。我們可以檢視狀態:

show slave status\G;

看到圖中的兩個yes,就表示我們的從伺服器已經在完全運行了。

現在我們可以在主伺服器的資料庫上做一個修改資料看看是否同步到從伺服器的資料庫上來證明可用性。

三、雙機熱備實現

        我們實現雙機熱備,原理其實就是做兩個機器的互相主從,我們把上述步驟主從對調,然後做一遍就能實現了雙機熱備了,實現圖為:

      

我們的兩個節點互為主從,然後都可以接收讀寫的操作。

如果只是單點的讀的話,我們還需要設定Slave節點為readonly,即slave節點的 my.cnf 設定 read-only=1

相關推薦

MySQLMySQL From主從複製To

        安裝完mysql之後,有了新的需求,就是需要有一臺伺服器用來做資料備份使用,以達到容災的目的,這樣需要怎麼做呢?還有我們需要進行多點訪問來減小單點壓力的時候又要怎麼辦呢?這個時候我們就引入了主從複製和雙機熱備的概念了。         其實從實現上來講,雙機

MySQL主從複製實戰

雙機熱備的概念簡單說一下,就是要保持兩個資料庫的狀態自動同步。對任何一個數據庫的操作都自動應用到另外一個數據庫,始終保持兩個資料庫資料一致。 這樣做的好處多。 1. 可以做災備,其中一個壞了可以切換到另一個。 2. 可以做負載均衡,可以將請求分攤到其中任何一臺上,提高網站吞

搭建MySql資料庫的主從及實現(資料庫的高可用)

1. 用的CentOS7,因為CentOS7自帶mariadb,所以首先解除安裝mariadb.不解除安裝安裝mysql會有衝突,以前安裝過mysql也要解除安裝 2. 解除安裝mariadb                     執行命令(會列出所有的mariad

資料中介軟體:mysql主從Master+Slave資料同步實驗(

覺得這個實驗挺好玩的,所以拿來分享下: 前提,在windows環境下 實驗要求: 1、  兩人一組,每人一臺PC,一人配置Master,一人配置Slave。 2、  資料庫至少設定一張表,用web程式對錶進行增刪查改操作。 3、  實現雙機熱備,即主庫宕機備庫可自動

mysql主從備份和實現

雙機互備和熱備的區別:        互備所指的是backup,保證資料的完整性而做的備份。主要目的是防止資料丟失。       熱備是為了保證應用的連續性。利用故障轉移的方法實現。     Linux下實現的雙機互備:  主從備份: 1、設定同步Master 修改

Mycat+Mysql主從復制實現

偏移 官方 搭建 jdk1 stat 普通用戶 系統 sch 支持 Mycat+Mysql主從復制實現雙機熱備 一、mysql主從配置原理 雙機熱備的概念簡單說一下,就是要保持兩個數據庫的狀態自動同步。對任何一個數據庫的操作都自動應用到另外一個數據庫,始終保持

MySQL-Jira

ref 安裝 times ant all del lock 參數 time 主服務器:192.168.1.23 從服務器:192.168.1.243 一、主服務器Master配置 1. 創建同步賬號、賦權 在主服務器上為從服務器建立一個連接帳戶,此處用root,該帳戶必

mysql

數據庫主從mysql的雙機熱備 雙機熱備,就是要保持兩個數據庫的狀態自動同步。對任何一個數據庫的操作都自動應用到另外一個數據庫,始終保持兩個數據庫數據一致。 這樣的做法好處在於:1、可以做災備,其中一個壞了可以切換到另一個;2、可以做負載均衡,可以請求分攤到其中任何一臺上,提高網站吞吐

Postgresqlpostgresql9.3.9版本基於流復制方式方案

postgresql 雙機熱備 流復制 9.3.9 系統環境:centos6.5數據庫版本: postgres9.3.9虛擬機2臺:Master:10.0.2.160Slave:10.0.2.69數據存儲位置:/usr/local/pgsql/data/ 安裝pgsql數據庫 安裝過程可參

MySQL架構備份之

root .gz val 數據初始化 無法 ceshi 修改配置文件 rom ESS M--S架構:實現雙機熱備(AB復制) 1、可以降低master讀壓力 2、可以對數據庫做“熱備”,熱備只能解決硬件master硬件故障,軟件故障等重大故障問題

mysql,keepalived

環境 Centos  7.4 172.16.91.215  主 172.16.91.216  從   安裝包 版本 mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz    

windows下使用mysql功能

sql skip host 狀態 set 指定同步 天數 沒有 我們 一. 準備工作   1. 準備兩臺服務器(電腦),接入局域網中,使互相ping得通對方   2. 兩臺服務器都安裝mysql-server-5.1,必須保證mysql的版本一致   3. 假設,服務器A:

mysql以及使用keepalived實現mysql主高可用

根據蒐集的資料安裝測試並在安裝測試過程中整理的文件,部分參考文件在相應位置有標記。如有不足希望不吝賜教。 mysql雙機熱備的方式有兩種: 主-從伺服器雙機熱備 主-主伺服器雙機熱備 下文以主-主伺服器雙機熱備為例,主-從配置類似。 兩臺centos7,ip分別為:

MYSQL

主服務IP:192.168.136.1; 從服務IP:192.168.136.2。 開始前請確保兩臺服務現有資料一致。如果是通過檔案COPY方式來同步資料的,注意修改auto.cnf下的UUID,否則會出錯。 主伺服器配置步驟 1.修改my.cnf配置檔案 lo

mysql的實現

Mysql資料庫沒有增量備份的機制,當資料量太大的時候備份是一個很大的問題。還好mysql資料庫提供了一種主從備份的機制,其實就是把主資料庫的所有的資料同時寫到備份的資料庫中。實現mysql資料庫的熱備份。  要想實現雙機的熱備,首先要了解主從資料庫伺服器的版本的需求。要實現熱備mysql的版本都高於3.2

MySQL 5.6 設定

MySQL 5.6 雙機熱備首先要保證主從資料庫一致,再進行同步。 1、備份主資料庫mysqldump -u 使用者名稱 -p 資料庫名 > 匯出的檔名.sql 2、還原從資料庫mysql -hlocalhost -uroot -p 資料庫名<匯出的檔名.

Mysql 如何做和負載均衡

先簡要介紹一下mysql雙向熱備:mysql從3.23.15版本以後提供資料庫複製功能。利用該功能可以實現兩個資料庫同步,主從模式(A->B),互相備份模式(A<=>B)的功能。 mysql資料庫雙向熱備的操作實際說明: 1、mysql資料庫同步複製功能的設定都在mysql的配置檔案

MySQL之——資料庫的配置方法

mysql資料庫沒有增量備份的機制,當資料量太大的時候備份是一個很大的問題。還好mysql資料庫提供了一種主從備份的機制,其實就是把主資料庫的所有的資料同時寫到備份資料庫中。 一、說明 1、mysql資料庫沒有增量備份的機制,當資料量太大的時候備份是一個很大的問題。還好m

Nginx + keepalived 主從模式)

綁定 html 負載均衡 基於 模式 主備 class 接管 主主 雙機高可用一般是通過虛擬IP(飄移IP)方法來實現的,基於Linux/Unix的IP別名技術。 雙機高可用方法目前分為兩種: 1)雙機主從模式:即前端使用兩臺服務器,一臺主服務器和一臺熱備服務器,正常情況

解決Nginx + Keepalived主從+自動切換,實現負載均衡及高可用

解決Nginx + Keepalived主從雙機熱備+自動切換,實現負載均衡及高可用 IP 伺服器 服務 192.168.1.10 lb-node1 Nginx、kee