Ubuntu下MySQL Cluster安裝和配置
一 MySQL-Cluster簡介
MySQL Cluster是一種技術,該技術允許在無共用的系統中部署“記憶體中”資料庫的簇。通過無共用體繫結構,系統能夠使用廉價的硬體,而且對軟硬體無特殊要求。此外,由於每個組件都有自己的記憶體和磁碟,所以不存在單點故障。
MySQL簇將標準的MySQL伺服器與名為NDB的“記憶體中”的簇式儲存引擎整合了起來。術語NDB指的是與儲存引擎相關的設定部分,而術語“MySQL簇”指的是MySQL和NDB儲存引擎的組合。
MySQL簇由一組電腦構成,每台電腦上均運行著多種進程,包括MySQL伺服器,NDB簇的資料節點,管理伺服器(MGM),以及(可能)專門的資料訪問程式。關於簇中這些組件的關係,如:
所有這些程式一起構成了MySQL簇。將資料儲存到NBD簇引擎中時,表將儲存在資料節點內。能夠從簇中所有其他MySQL伺服器直接存取這些表。因此,假如在將資料儲存在簇內的工資應用程式中,如果某一應用程式更新了一位僱員的工資,所有查詢該資料的其他MySQL 伺服器能立刻發現這種變化。
對於MySQL簇,儲存在資料節點的資料可被映射,簇能夠處理單獨資料節點的故障,除了少數事物將因事物狀態丟失而被放棄外,不會產生其他影響。由於事物性應用程式能夠處理失敗事宜,因而它不是問題源。
二 MySQL簇的基本概念
NDB 是一種“記憶體中”儲存引擎,它具有可用性高和資料一致性好的特點。
能夠使用多種故障切換和Server Load Balancer選項配置NDB 儲存引擎,但以簇層面上的儲存引擎開始最簡單。MySQL簇的NDB儲存引擎包含完整的資料集,僅取決於簇本身內的其他資料。
下面名,我們將介紹設定由NDB儲存引擎和一些MySQL伺服器構成的MySQL簇的設定方法。
目前,MySQL簇的部分可以獨立於MySQL伺服器進行配置。在MySQL簇中,簇的每個部分被視為一個節點。
注釋:在很多情況下,術語“節點”用於指電腦,但在討論MySQL簇時,它表示的是進程。在單台電腦上可以有任意數目的節點,所以我們才有可能將多個不同功能的節點配置在同一台電腦上,為此,我們採用術語簇主機。
有三類簇節點,在最低的MySQL簇配置中,至少有三個節點,這三類節點分別是:
管理節點(MGM):這類節點的作用是管理MySQL簇內的其他節點,如提供配置資料,啟動並停止節點,運行備份等。由於這類節點負責管理其他節點的配置,所以管理節點應在其他節點之前先啟動。MGM節點是用命令ndb_mgm啟動的。
資料節點(NDB):這類節點用於儲存簇的資料。資料集點的數目與副本的數目相關,是片段的倍數。例如,對於兩個副本,每個副本又兩個片段,那麼就有4個資料節點。沒有必要有一個以上的副本。。資料節點是用命令ndbd來啟動的。
SQL節點:這類節點是用來訪問簇資料的節點。對於MySQL簇,用戶端節點是使用NDB 簇儲存引擎的傳統MySQL伺服器。典型情況下,SQL節點是使用命令mysql -ndbcluster來啟動的,或將ndbcluster添加到my.cnf後面使用mysqld啟動。
簇配置包括對簇中單獨節點的配置,以及設定節點之間的單獨通訊鏈路。對於目前設計的MySQL簇,其意圖在於,從處理器的能力,記憶體空間和寬頻來講,儲存節點是同質的,此外,為了提供單一的配置點,作為整體,簇的所有配置均位於一個檔案中。
管理伺服器(MGM節點)負責管理簇設定檔和簇日誌。簇中的每個節點從管理伺服器檢索配置資料,並請求確定管理伺服器所在的位置的方式。當資料節點內出現有趣的事件時,節點將關於這類事件的資訊傳輸到管理伺服器,然後,啊經這類資訊寫入簇日誌。
三 實驗環境
實驗過程中,只是用兩台電腦來實現MySQL-Cluster環境的配置,具體環境如下:
管理節點(MGM)伺服器:192.168.3.47 主機名稱:songzi nodeid=1
資料節點1(NDB ):192.168.3.47 nodeid=11
資料節點2(NDB):192.168.4.128 nodeid=12
SQL節點1:192.168.3.47 nodeid=21
SQL節點2:192.168.4.128 nodeid=22
其中192.168.3.47安裝的為Ubuntu12.04的32位作業系統,192.168.4.128安裝的為ubuntu12.04的64位作業系統。
對於MySQL-Cluster的安裝包下載,見http://dev.mysql.com/downloads/cluster/ ,其中192.168.3.47的作業系統為32位的linux,所以選擇的下載版本為:mysql-cluster-gpl-7.3.3-linux-glibc2.5-i686.tar.gz。而192.168.4.128為64 位元的linux作業系統,所以選擇的下載版本為:mysql-cluster-gpl-7.3.3-linux-glibc2.5-x86_64.tar.gz。在終端中執行 :uname -m指令可查看作業系統的資訊,若結果顯示為i686,則為32位作業系統。若結果為x86_64,則為64位作業系統。務必選擇正確的版本,並下載。
此外 如果之前安裝過mysql-server,在進行此次實驗之前,需要將mysql-server卸載,執行以下指令卸載mysql
sudo apt-get autoremove --purge mysql-server
sudo apt-get remove mysql-server
sudo apt-get autoremove mysql-server
sudo apt-get remove mysql-common (非常重要)
四 安裝
對於每台運行儲存或者SQL節點的MySQL簇電腦,必須在其上安裝MySQL伺服器的二進位版本。對於管理節點,沒有必要安裝MySQL伺服器的二進位版本,但應安裝MGM 伺服器連接埠監督程式和用戶端二進位版本(分別是ndb_mgmd和ndb_mgm)。本節將詳細介紹每種簇節點安裝正確的二進位版本所需要的步驟。
4.1 儲存節點和SQL節點安裝
SQL節點和資料節點的安裝步驟基本相同,所以在設計為儲存節點或SQL節點的的每一台機器上,以系統根使用者身份執行以下步驟:
1. 檢查/etc/passwd和/etc/group/檔案,查看在系統上是否已經存在mysql組和mysql使用者,這時因為某些作業系統會將其作為安裝進程的一部分建立。可以使用以下指令查看:
cat show /etc/passwd
cat show /etc/group
如果它們不存在,則需要建立新的mysql使用者組,然後為該組添加一個mysql使用者
groupadd mysql
useradd -g mysql mysql
2. 進入包含已經下載好檔案的目錄,解壓檔案檔案,並建立與mysql可執行檔連結symlink。注意,根據MySQL的版本號碼和瀏覽器下載檔案的目錄,實際的檔案和目錄名可能會有所不同。如本人下載檔案在瀏覽器預設的/home/jenny/Downloads目錄下,
cd /home/jenny/Downloads
tar zxvf -C mysql-cluster-gpl-7.3.3-linux-glibc2.5-i686.tar.gz /usr/local/bin
cd /var/tmp
ln -s /usr/local/bin/mysql-cluster-gpl-7.3.3-linux-glibc2.5-i686.tar.gz mysql
3. 進入mysql目錄,運行所提供的用於建立系統資料庫的指令碼:
cd mysql
scripts/mysql_install_db --user=mysql
如果此指令碼不能運行,若報錯為主機名稱不匹配的話,則很有可能是下載的版本不對,查看作業系統是32位還是64位,選擇正確的版本。若報錯找不到預設的檔案,則很有可能是因為之前的mysql-server沒有卸載,執行上文提供的指令,徹底卸載mysql-server。
4. 為MySQL伺服器和資料目錄設定必要的許可權:
chown -R root .
chown -R mysql data
chgrp -R mysql .
注意,在每台運行資料節點的機器上,資料目錄是/usr/local/mysql/data,也可另外指定,若指定為此目錄,則此檔案必須存在,必要時需手動建立。組態管理節點時將用到這類資訊。
5. 將MySQL啟動指令碼拷貝恰當的目錄下,使之成為可執行檔指令碼,並設定它以便在啟動作業系統時啟動:
cp support-files/mysql.server /etc/init.d
chmod +x /etc/init.d/mysql.server
chconfig --add mysql.server
請記住,對於儲存節點或SQL節點所在的每台機器,必須分別執行以上步驟。
4.2 管理節點安裝
對於管理(MGM)節點,不需要安裝mysqld可執行檔,僅需要安裝用於MGM伺服器和用戶端的二進位檔案,這類檔案可在下載的檔案檔案中找到。假定將下載的檔案檔案放在了/var/tmp檔案下,以系統管理員的身份執行以下步驟,在簇管理節點主機上安裝ndb_mgmd和ndb_mgm:
1. 進入/var/tmp目錄,從檔案檔案中將ndb_mgmd和ndb_mgm提取到恰當的目錄下,如/usr/local/bin:
cd /var/tmp
tar zxvf -C mysql-cluster-gpl-7.3.3-linux-glibc2.5-i686.tar.gz
cp /mysql-cluster-gpl-7.3.3-linux-glibc2.5-i686.tar.gz/bin/ndb_mgm* /usr/local/bin/
2. 進入nndb_mgmd和ndb_mgm所在的目錄,然後使這兩個檔案成為可執行檔:
cd /usr/local/bin
chmod mysql-cluster-gpl-7.3.3-linux-glibc2.5-i686.tar.gzd +x ndb_mgm*
至此,所有節點的安裝工作就已經完成,接下來將詳細介紹每個節點的具體配置方法。
更多詳情見請繼續閱讀下一頁的精彩內容: