mySQL教程 第17章 MySQL羣集

第17章 MySQL羣集

一 概述:

Ubuntu帶的mySQL服務軟件包 已經包含了mySQL羣集所需的3個組件:node

mySQLmysql

mySQL NDBsql

mySQL NDB Management 數據庫

mySQL使用NDB來實現羣集,NDB是一種「內存中」的存儲引擎,可用性高、數據一致性好。ubuntu

mySQL羣集架構圖

clip_image002

數據保存在存儲節點(Data Nodes)中,也就是圖中的ndbd節點。SQL語句在SQL節點上執行,也就是圖中的mySQLd節點,羣集中的右下角DNB管理服務器也就是ndb_mgmd節點。安全

關於mySQL羣集的3個主要組成部分,咱們來介紹一下。服務器

負載均衡節點 是用來訪問羣集數據的。網絡

存儲節點 是用來保存羣集數據的 其服務的啓停是由腳本/etc/init.d/mysql-ndb來管理的。架構

管理節點 用來管理羣集內的其餘節點,好比配置信息,啓動或中止及誒單,執行備份等。其服務的啓停是由/etc/init.d/mysql-ndb-mgm腳本管理的,因爲這類節點是管理者,該節點必須先啓動,其餘兩類節點再啓動。負載均衡

18.1實驗環境

如下操做系統均是ubuntu server 11.10

安裝的Mysql版本mysql-server-5.1

安裝的mysql羣集版本mysql-cluster-server-5.1

clip_image003

兩個數據節點 Data1和Data2

一個管理節點mgm

要求這些虛擬機都能訪問Internet,由於安裝mysql-server-5.1和mysql-cluster-server-5.1都須要從internet下載安裝包。

IP地址和計算機名稱以下所示

clip_image004

1. 克隆系統

使用安裝了mySQL的ubuntu克隆出新的系統,更改服務器名稱和IP地址。

data1的IP地址192.168.80.223 服務器名稱爲data1

data2的IP地址爲192.168.80.224 服務器名稱爲data2

mgm的地址爲192.168.80.225 服務器名稱爲mgm

2. 禁用防火牆

在三個節點上禁用防火牆。

ufw disable

clip_image005

clip_image006

clip_image007

在管理節點的配置

clip_image008

管理節點須要

3. 安裝管理節點

root@mgm:~# apt-get install mysql-server-5.1

root@mgm:~# apt-get install mysql-cluster-server-5.1

由於已經安裝了mySQL,因此只須要安裝mysql-cluster-server-5.1

clip_image009

clip_image010

clip_image011

clip_image012

設置mysql管理員密碼

clip_image013

4. 配置mgm

在mgm服務器上完成

clip_image008[1]

5. 建立配置文件

root@mgm:~# vi /etc/mysql/ndb_mgmd.cnf

6. 編輯配置文件 去掉註釋

[NDBD DEFAULT]

NoOfReplicas=2 #每一個數據節點的鏡像數量

DataMemory=10MB #每一個數據節點中給數據分配的內存

IndexMemory=25MB #每一個數據節點中給索引分配的內存

MaxNoOfTables=256

MaxNoOfOrderedIndexes=256

MaxNoOfUniqueHashIndexes=128

[MYSQLD DEFAULT]

[NDB_MGMD DEFAULT]

[TCP DEFAULT]

#The NDB Management Node (this one)

[NDB_MGMD]

Id=1 #管理節點ID,羣集中每一個節點都有獨立的id

HostName=192.168.80.225 #管理節點IP

DataDir=/var/lib/mysql-cluster #管理節點數據目錄

#the first NDB Data Node

[NDBD]

#數據節點配置

Id=2

HostName=192.168.80.223

DataDir=/var/lib/mysql-cluster

#the second NDB Data Node

[NDBD]

#數據節點配置

Id=3

HostName=192.168.80.224

DataDir=/var/lib/mysql-cluster

#the first mySQL node

[MYSQLD]

#mysql節點

Id=4

HostName=192.168.80.223 #指定HostName代表能夠鏈接數據節點的sql節點地址

#若是不寫該地址,代表任意地址的sql節點均可以鏈接

#the second mySQL node

[MYSQLD]

Id=5

HostName=192.168.80.224

clip_image014

7. 啓動服務管理服務

/etc/init.d/mysql-ndb-mgm restart

clip_image015

配置存儲節點

在如下兩個服務器配置data1和data2進行配置。

clip_image016

8. 安裝mysql和mysql-cluster

先安裝mysql服務器,若是已經安裝,只須要安裝mysql-cluster-server-5.1

root@data2:~# apt-get install mysql-server-5.1

root@data2:~# apt-get install mysql-cluster-server-5.1

9. 配置my.cnf

root@data1:~# vi /etc/mysql/my.cnf

將如下文本按圖示位置拷貝到配置文件

ndbcluster

ndb-connectstring=192.168.80.225

[MYSQL_CLUSTER]

ndb-connectstring=192.168.80.225

clip_image017

10. 啓動mysql服務,或重啓mySQL服務 restart,若是啓動失敗,請仔細查看配置。

root@data1:~# /etc/init.d/mysql start

* Starting MySQL database server mysqld [ OK ]

11. 啓動NDB服務 start-initial是初始化,第一次啓動使用該參數,之後重啓該服務使用restart參數。

root@data1:~# /etc/init.d/mysql-ndb start-initial

* Initial start of MySQL NDB Data Node ndbd 2012-03-29 15:18:18 [ndbd] INFO -- Angel connected to '192.168.80.201:1186'

2012-03-29 15:18:18 [ndbd] INFO -- Angel allocated nodeid: 3

[ OK ]

12. 在data2上執行data1上全部步驟

clip_image018

18.2查看羣集鏈接狀態

13. 在管理節點mgm上測試配置存儲節點

輸入如下命令,進入mgm客戶端界面

Ndb_mgm

Show 注意 必須出現以下輸出才能,能夠看到一個管理節點,兩個mysql數據庫,兩個存儲節點ndb,在這裏NDB和mySQL是同一個服務器。

clip_image019

若是一個斷掉data1的網卡,

clip_image020

再次查看狀態

clip_image021

14. 鏈接data1網卡

clip_image022

Quit命令退出

若是鏈接出現問題,必須在兩個存儲節點,重啓兩個服務,直到成功爲止。

clip_image023

18.3 測試mysql羣集

配置爲羣集的mysql,建立的數據庫可以自動同步到其餘存儲節點。建立表時使用engine=ndbcluster做爲參數,可以將表放置到羣集中,自動在多個mysql同步數據。

15. 查看data1和data2上現有數據庫

clip_image024

clip_image025

16. 在data1上建立一個數據庫db1

clip_image026

clip_image027

17. 在data2上建立數據庫

clip_image028

clip_image029

18. 在羣集環境中建立數據庫和表

在data1數據存儲節點建立一個數據db1,在該數據庫建立一個表,該表放置於羣集中。若是建立表時不添加engine=ndbcluster;則該表只存在域data1,不會複製到data2。

注意:

mysql> use db1;

mysql> create table t1 (sid int,sname varchar(20))engine=ndbcluster;

mysql> insert t1 values (1,'han');

mysql> create table t2 (sid int,sname varchar(20));

mysql> insert t2 values (1,'han');

clip_image030

19. 在data2上查看

能夠看到db1的數據庫中出現t1表。數據也複製過來。

clip_image031

在data2上插入一條記錄

clip_image032

20. 在data1上查看

發如今data2上插入的記錄再data1也出現。

clip_image033

18.4啓動時須要注意的問題

若是服務器斷電須要重啓,首先啓動mgm節點,再開啓存儲節點。一切正常。

18.5關閉管理節點

羣集關係一旦產生,管理節點能夠關機,兩個存儲節點照樣複製功。

廣告

titel263

12353

system63

system373

相關文章
相關標籤/搜索