Mysql集群與調優

2021-09-20 17:23:14 字數 3250 閱讀 1751

mysql集群與調優

實驗背景:

1.安裝mysql-cluster相關軟體包。

2.依次配置管理/資料/sql節點。

3.啟動並測試mysql-cluster集群架構。

實驗方案:

使用6臺rhel 6.4虛擬機器,其中sqla和sqlb作為sql節點,ndba和ndbb作為資料節點,

mgmd作為管理節點,這5個節點構成mysql cluster體系;而另一台虛擬機器192.168.4.20作為mysql測試客戶機。

構成mysql集群體系的5個節點應安裝cluster版的mysql相關軟體包,具體操作見「實現」部分的安排;測試用的linux客戶機只需安裝普通版的mysql-client即可。

實驗實現:

1.前期準備工作

1)確認各節點伺服器的主機名、ip位址

為5個節點建立統一的hosts檔案,提高本地解析速度,相關操作如下:

參考上述hosts檔案為各節點設定好主機名、ip位址(具體過程略)。

解除安裝衝突包【所有節點】

官方提供的mysql-cluster相關軟體包已整合資料庫服務端/客戶端程式,因此可直接用

來替換普通的mysql服務端/客戶端程式。如果已安裝有普通版的mysql-server、mysql、

mysql-server、mysql-client包,請先將其解除安裝(若沒有則忽略):

對於rhel自帶的mysql-libs暫時保留(如果直接解除安裝會因為依賴關係刪除許多重要的包

,比如crontab、postfix等),但在安裝mysql-cluster相關包的時候採用「-u」公升級的

方式執行替換。

如果有殘留的/etc/my.cnf檔案,確保已轉移備用或直接刪除。

3)安裝mysql-cluster相關軟體包【所有節點】

在所有節點上,安裝mysql-cluster-server、mysql-cluster-client軟體包:

在sql節點(sqla、sqlb)伺服器上,修改mysql資料庫的root密碼:

在資料節點(ndba、ndbb)和管理節點(mgmsvr)上,實際上並不需要啟動mysql服務程式

,因此建議將mysql服務的自啟狀態設為關閉,root密碼可改可不改:

4)新增授權資料庫使用者【sql節點】

在sql節點(sqla、sqlb)伺服器上,新增相應的授權資料庫使用者,以方便客戶端使用資料

庫服務。以使用者root為例,允許其從192.168.4.0/24網段訪問:

2.配置管理節點 mgmd (192.168.4.100)

1)建立工作資料夾

為管理節點提供乙個工作目錄,方便記錄mysql集群相關的日誌訊息:

2)建立配置檔案

針對本節的案例,管理節點的配置操作參考如下:

3.配置資料節點 ndba(192.168.4.30) 、ndbb (192.168.4.40)

1)建立工作資料夾

為各資料節點提供乙個工作目錄,用來存放實際的資料庫表記錄等相關資料:

2)建立配置檔案

指定工作目錄(資料儲存目錄)、管理伺服器的ip位址、採用ndbcluster儲存引擎,以

便支援集群特性;並新增[mysql_cluster]配置段,同樣指定管理位址。

針對本節的案例,2個資料節點的配置操作參考如下:

4.配置sql節點sqla(192.168.4.10) 、sqlb (192.168.4.20)

主要是調整my.cnf配置,指定執行的儲存引擎、預設儲存引擎,並通過[mysql_cluster]配置段指定管理位址。在mysql-cluster集群環境中,若某個資料庫未採用ndbcluster引擎(而是innodb、myisam等其他引擎),則當更新資料庫表時,可能無法同步到其他節點。

5.啟動mysql集群

正確的啟動順序:管理節點 --> 資料節點 --> sql節點。

關閉順序:sql節點 --> 資料節點 --> 管理節點。

資料節點、sql節點都正常執行後,理論上管理節點可關閉(無監控等任務的話)。

1)啟動管理節點mgmd

mysql cluster管理節點的對應服務程式為ndb_mgmd,通過選項-f指定建立的集群配置檔案。

若希望每次開機後自動執行ndb_mgmd,可將上述啟動操作寫入到/etc/rc.local配置檔案內,例如:

啟動完成後可檢視監聽狀態:

檢視日誌檔案相關資料:

2)啟動資料節點ndba、ndbb

mysql cluster資料節點的對應服務程式為ndbd(單執行緒的)、ndbmtd(多執行緒的),首次啟動或重新初始化時加 --initial選項,以後不用加。

啟動ndba:

啟動ndbb:

在ndba和ndbb伺服器上,修改/etc/rc.local配置檔案,以便每次開機後能自動啟動資料節點服務:

3)啟動sql節點sqla、sqlb

對於mysql cluster的sql節點來說,對應的服務程式就是mysqld,正常通過mysql指令碼重新啟動服務就可以了。

啟動sqla:

啟動sqlb:

在sqla和sqlb伺服器上,建議將mysql服務的自動狀態設為「啟用」:

成功啟動後,可在本機登入mysql>環境,檢查預設的儲存引擎,確保已支援ndbcluster且作為預設儲存引擎:

4)在管理節點mgmd上檢視群集狀態

直接執行ndb_mgm可進入群集管理環境:

進入ndb_mgm> 環境後,執行show可檢視當前各節點的狀態,確保本例中的5個節點都已經成功連線;

6.mysql集群的高可用性測試

1)資料同步測試

從客戶機訪問sqla,執行寫資料庫、表相關操作:

然後從客戶機訪問sqlb,確認結果(能看到從sqla上所建的庫、表、表記錄):

反過來從sqlb上所作的資料庫表操作,從sqla上也能獲得相同的結果。

2)高可用性測試(關閉一台資料節點)

關閉資料節點ndba上的ndbd程序:

此時從管理節點上檢視集群狀態,會發現ndba已斷開連線:

然後從客戶機訪問sqla或sqlb,仍然可讀、寫資料庫。比如可向mydb.mytb表中再新增一條記錄:

以上測試成立說明:只要還有一台資料節點可用,mysql資料庫整體就仍然可用。

實驗總結:

1、實驗開始之前的環境準備不要忘記解除安裝衝突包

2、在管理節點的ini配置檔案中,應涵蓋所有節點的設定,主要包括各節點的id號、主機

名或ip位址、工作目錄等資訊。相關配置區段的作用如下:

3、關於管理節點的啟動,有以下幾個需要注意的地方:

4、

mysql 調優 Mysql調優

表設計 1 禁止使用外來鍵 2 多表中的相同列,必須保證列定義一致 3 國內表預設使用innodb,表字符集預設使用gbk,國際預設使用utf8的表 4 表必須包含gmt create和gmt modified欄位,即表必須包含記錄建立時間和修改時間的字段 5 單錶一到兩年內資料量超過500w或資料...

HBase集群調優

2.5.2.1.zookeeper.session.timeout 這個預設值是3分鐘。這意味著一旦乙個server宕掉了,master至少需要3分鐘才能察覺到宕機,開始恢復。你可能希望將這個超時調短,這樣master就能更快的察覺到了。在你調這個值之前,你需要確認你的jvm的gc引數,否則乙個長時...

Kafka 集群調優

kafka 集群搭建鏈結 單個 kafka伺服器足以滿足本地開發或 poc要求,使用集群的最大好處是可以跨伺服器進行負載均衡,再則就是可以使用複製功能來避免因單點故障造成的資料丟失。在維護 kafka 或底層系統時,使用集群可以確保為客戶端提供高可用性。乙個 kafka 需要多少個 broker取決...