中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Percona XtraDB Cluster高可用與狀態快照傳輸PXC 5.7 的示例分析

發布時間:2021-11-05 16:55:01 來源:億速云 閱讀:117 作者:柒染 欄目:建站服務器

這篇文章將為大家詳細講解有關Percona XtraDB Cluster高可用與狀態快照傳輸PXC 5.7 的示例分析,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

Percona XtraDB Cluster(下稱PXC)高可用集群支持任意節點在運行期間的重啟,升級或者意外宕機,即它解決了單點故障問題。那在這個意外宕機或者重啟期間,該節點丟失的數據如何再次進行同步呢?介紹了在節點故障和重啟PXC如何實現高可用以及狀態快照傳輸的幾種方法優缺點。

一、高可用

在具有3個節點的基本設置中,如果您關閉任何節點,Percona XtraDB集群將繼續運行。在任何時候,您都可以關閉任何節點來執行維護或進行配置更改。即使在非計劃的情況下(如節點崩潰或者通過網絡無法使用),Percona XtraDB集群將繼續工作,您將能夠在工作節點上運行查詢。

如果在節點關閉期間數據發生更改,則節點在再次加入群集時可以使用兩個選項:

??狀態快照傳輸State Snapshot Transfer(SST),即將所有數據從一個節點復制到另一個時。

??通常在新節點加入集群并從現有節點接收所有數據時使用SST。Percona XtraDB集群中有三種可用的SST方法:

????mysqldump 
????rsync 
????xtrabackup

??mysqldump與rsync的缺點是,當數據正在被復制的時候,您的集群狀態將變為只讀(這2個SST方式使用了FLUSH TABLES WITH READ LOCK)

??使用SST xtrabackup方式,在整個同步過程中,不需要讀鎖(READ LOCK),僅用于同步.frm文件(與常規備份相同)。

??增量狀態傳輸Incremental State Transfer(IST)是指僅將增量更改從一個節點復制到另一個節點時。

??即使沒有將群集鎖定在只讀狀態,SST可能會影響并干擾服務的正常運行。 IST可以避免這種情況。 如果某個節點短時間內關閉,它能夠獲取僅僅發生故障時刻的更改。 IST是在節點上使用緩存機制來實現。 每個節點都包含一個高速緩存,最后N次更改的環形緩沖區(大小可配置),并且該節點能夠傳輸該高速緩存的一部分。 顯然,只有當傳輸所需的變化量小于N時才能完成IST。如果它超過N,那么加入節點必須執行SST。

可以使用以下命令監視節點的當前狀態:

SHOW STATUS LIKE ‘wsrep_local_state_comment’ ; 
當一個節點處于狀態Synced (6)時,它是集群的一部分并可以對外提供服務

二、狀態快照傳輸

狀態快照傳輸(SST)是從一個節點(捐獻者)到加入節點(加入者)的完整數據拷貝。當新節點加入群集時使用它。為了與群集同步,新節點必須從已經是群集一部分的節點接收數據。

Percona XtraDB集群中有三種可用的SST方法:

??mysqldump 
??rsync 
??xtrabackup

mysqldump和rsync缺點是捐獻節點變為READ-ONLY當數據被復制時。另一方面,Xtrabackup SST使用備份鎖定,這意味著Galera提供程序不會像FTWRL(帶有讀鎖的刷新表)那樣暫停。SST方法可以使用wsrep_sst_method變量進行配置。

注意

如果gcs.sync_donor變量設置為Yes (默認為No),那么如果捐獻節點被SST阻塞,則整個集群將被阻塞。

1、選擇SST捐獻節點

如果沒有可用的節點可以安全地執行增量狀態傳輸(IST),則群集默認為SST。 
如果有可用的節點可以執行IST,則集群首選遠程節點上的本地節點作為捐獻節點。 
如果沒有本地節點可用于執行IST,則群集將選擇一個遠程節點作為捐獻節點。 
如果有多個本地和遠程節點可以執行IST,則群集將選擇最高seqno的節點作為捐獻節點。

2、使用Percona Xtrabackup

默認的SST方法是使用Percona XtraBackup的xtrabackup-v2。這是利用備份鎖的最少阻塞方法。XtraBackup在捐獻節點上本地運行,因此在捐獻節點上設置正確的用戶憑證非常重要。為了讓Percona XtraDB集群使用XtraBackup執行SST,需要在wsrep_sst_auth變量中設置用于連接到捐獻節點的證書。除了憑證之外,還需要在服務器配置文件my.cnf中指定datadir,否則傳輸過程將失敗。

有關所需憑據的更多信息,請參閱XtraBackup手冊。

要測試憑據是否可用,請在捐獻節點上使用wsrep_sst_auth變量中指定的用戶名和密碼運行innobackupex。例如,如果值wsrep_sst_auth是root:Passw0rd,在innobackupex命令應該是這樣的:

innobackupex –user = root –password = Passw0rd /tmp/ 
Percona XtraBackup SST配置文檔中提供了有關此方法的詳細信息。

3、使用mysqldump

此方法使用標準mysqldump實用程序來轉儲來自捐獻節點的所有數據庫,并將其導入加入節點。要使此方法有效,wsrep_sst_auth需要使用根證書設置變量。這種方法是最慢的,它在SST期間執行全局鎖定,這阻止了對捐獻節點的寫入。

用于此方法的腳本是/usr/bin/wsrep_sst_mysqldump ,它包含在Percona XtraDB Cluster二進制包中。

4、運用 rsync

此方法使用rsync將文件從捐獻節點復制到加入節點。在某些情況下,這可能比使用XtraBackup更快,但它需要一個全局數據鎖定,這將阻止寫入到捐獻節點。此方法不需要在wsrep_sst_auth變量中設置根憑證。

用于此方法的腳本是/usr/bin/wsrep_sst_rsync ,它包含在Percona XtraDB Cluster二進制包中。

5、表空間不在數據目錄中的表的SST

例如:

CREATE TABLE t1 (c1 INT PRIMARY KEY ) DATA DIRECTORY = ‘/alternative/directory’ ;

結果取決于SST方法:

SST使用 rsync

SST會報告成功,但表格的數據不會被復制,因為rsync只是復制文件。您將無法訪問joiner節點上的表: 
mysql> select * from t1; 
ERROR 1812 (HY000): Tablespace is missing for table sbtest.t1.

SST 使用mysqldump 
按預期工作。如果文件不存在,它將被創建。否則,它將嘗試使用該文件(如果該文件沒有預期的格式,則返回錯誤)。

使用Percona XtraBackup的SST

XtraBackup會將表格還原到joiner節點上的相同位置。如果目標目錄不存在,它將被創建。如果目標文件已經存在,則會返回錯誤,因為XtraBackup無法清除不在數據目錄中的表空間。

關于Percona XtraDB Cluster高可用與狀態快照傳輸PXC 5.7 的示例分析就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

天峻县| 内乡县| 宁南县| 邢台市| 武义县| 始兴县| 天台县| 盱眙县| 集贤县| 柏乡县| 康定县| 抚州市| 屏东市| 乐至县| 滦平县| 筠连县| 靖宇县| 长沙市| 白河县| 东台市| 新乡县| 曲松县| 霍城县| 江阴市| 青田县| 柘城县| 大足县| 珠海市| 潞西市| 乐山市| 东源县| 武隆县| 荆州市| 临海市| 沙湾县| 宾川县| 鱼台县| 贵州省| 武邑县| 新化县| 泾川县|