Ubuntu下MySQL Cluster安裝和配置

來源:互聯網
上載者:User

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*

至此,所有節點的安裝工作就已經完成,接下來將詳細介紹每個節點的具體配置方法。

更多詳情見請繼續閱讀下一頁的精彩內容:

  • 1
  • 2
  • 下一頁

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.