MySQL叢集之MySQL Cluster

來源:互聯網
上載者:User

MySQL叢集之MySQL Cluster
1. 參考文檔

2. 簡介

MySQL-Cluster是一種技術,該技術允許在無共用的系統中部署“記憶體中”資料庫的簇。通過無共用體繫結構,系統能夠使用廉價的硬體,而且對軟硬體無特殊要求。此外,由於每個組件都有自己的記憶體和磁碟,所以不存在單點故障。

MySQL簇將標準的MySQL伺服器與名為NDB的“記憶體中”的簇式儲存引擎整合了起來。術語NDB指的是與儲存引擎相關的設定部分,而術語“MySQL簇”指的是MySQL和NDB儲存引擎的組合。

MySQL簇由一組電腦構成,每台電腦上均運行著多種進程,包括MySQL伺服器,NDB簇的資料節點,管理伺服器(MGM),以及(可能)專門的資料訪問程式。關於簇中組件的關係,如:

 

所有這些程式一起構成了MySQL簇。將資料儲存到NBD簇引擎中時,表將儲存在資料節點內。能夠從簇中所有其他MySQL伺服器直接存取這些表。因此,假如在將資料儲存在簇內的工資應用程式中,如果某一應用程式更新了一位僱員的工資,所有查詢該資料的其他MySQL 伺服器能立刻發現這種變化。

對於MySQL簇,儲存在資料節點的資料可被映射,簇能夠處理單獨資料節點的故障,除了少數事物將因事物狀態丟失而被放棄外,不會產生其他影響。由於事物性應用程式能夠處理失敗事宜,因而它不是問題源。

MySQL Cluster 備份與恢複

MySQL Cluster安裝配置

MySQL Cluster 3台機器搭建叢集環境 DOC

MySQL Cluster7.2線上增加資料節點存在重大弊端

3. 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節點)負責管理簇設定檔和簇日誌。簇中的每個節點從管理伺服器檢索配置資料,並請求確定管理伺服器所在的位置的方式。當資料節點內出現有趣的事件時,節點將關於這類事件的資訊傳輸到管理伺服器,然後,啊經這類資訊寫入簇日誌。

 

4. 實現環境

現在,我們計劃建立有5個節點的MySQL CLuster體系,因此需要用到3台機器(sql和資料節點共用),分別做如下用途:

                節點(用途)                IP地址(主機名稱)
                管理節點(MGM)              10.24.0.101(db1) nodeid = 1

                資料節點1(NDBD1)          10.24.6.4 (db4) nodeid = 11
                資料節點2(NDBD2)          10.24.6.6(db5) nodeid =12
                SQL節點1(SQL1)            10.24.6.4(db2) nodeid = 21
                SQL節點2(SQL2)            10.24.6.6(db3) nodeid = 22

5. MySQL-Cluster安裝包下載

對於MySQL-Cluster的安裝包下載,見http://dev.mysql.com/downloads/cluster/

mysql-cluster-gpl-7.4.7-debian7-x86_64.deb

6. 安裝6.1. 清除之前的mysql痕迹

此外 如果之前安裝過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 (非常重要)

6.2. 安裝deb檔案

sudo dpkg -i mysql-cluster-gpl-7.4.7-debian7-x86_64.deb

安裝目錄/opt/mysql/server-5.6

6.3. 儲存節點/SQL節點安裝

SQL節點和資料節點的安裝步驟基本相同,所以在設計為儲存節點或SQL節點的的每一台機器上,以系統根使用者身份執行以下步驟:

mysql組和mysql使用者

檢查/etc/passwd和/etc/group/檔案,查看在系統上是否已經存在mysql組和mysql使用者,這時因為某些作業系統會將其作為安裝進程的一部分建立。可以使用以下指令查看:

cat show /etc/passwd

cat show /etc/group

如果它們不存在,則需要建立新的mysql使用者組,然後為該組添加一個mysql使用者

groupadd mysql

useradd -g mysql mysql

6.4. 建立系統資料庫的指令碼

sudo /opt/mysql/server-5.6/scripts/mysql_install_db --user=mysql

如果此指令碼不能運行,若報錯為主機名稱不匹配的話,則很有可能是下載的版本不對,查看作業系統是32位還是64位,選擇正確的版本。若報錯找不到預設的檔案,則很有可能是因為之前的mysql-server沒有卸載,執行上文提供的指令,徹底卸載mysql-server

成功結果:

To start mysqld at boot time you have to copy

support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !

To do so, start the server, then issue the following commands:

  /opt/mysql/server-5.6/bin/mysqladmin -u root password 'new-password'

  /opt/mysql/server-5.6/bin/mysqladmin -u root -h drbd01 password 'new-password'

Alternatively you can run:

  /opt/mysql/server-5.6/bin/mysql_secure_installation

which will also give you the option of removing the test

databases and anonymous user created by default.  This is

strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:

  cd /opt/mysql/server-5.6 ; /opt/mysql/server-5.6/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl

  cd mysql-test ; perl mysql-test-run.pl

Support MySQL by buying support/licenses at http://shop.mysql.com

WARNING: Found existing config file /opt/mysql/server-5.6/my.cnf on the system.

Because this file might be in use, it was not replaced,

but was used in bootstrap (unless you used --defaults-file)

and when you later start the server.

The new default config file was created as /opt/mysql/server-5.6/my-new.cnf,

please compare it with your file and take the changes you need.

6.5.設定MySQL伺服器和資料目錄必要的許可權

chown -R root .

chown -R mysql data

3

chgrp -R mysql .

6.6. 拷貝mysql.server
   
   

sudo cp /opt/mysql/server-5.6/support-files/mysql.server /etc/init.d/mysql

chmod +x /etc/init.d/mysql

6.7. 拷貝 my.cnf

sudo cp /opt/mysql/server-5.6/my-new.cnf /etc/my.cnf

sudo vim /etc/my.cnf

 

6.8. 設定root密碼

sudo apt-get install mysql-client

mysqladmin -u root flush-privileges password "123456"

6.9. 管理節點安裝

對於管理(MGM)節點,不需要安裝mysqld可執行檔,僅需要安裝用於MGM伺服器和用戶端的二進位檔案,這類檔案可在下載的檔案檔案中找到。假定將下載的檔案檔案放在了/var/tmp檔案下,以系統管理員的身份執行以下步驟,在簇管理節點主機上安裝ndb_mgmd和ndb_mgm

ndb_mgmd:ndb管理伺服器

ndb_mgm: ndb管理用戶端

6.10. 安裝deb檔案

sudo dpkg -i mysql-cluster-gpl-7.4.7-debian7-x86_64.deb

安裝目錄/opt/mysql/server-5.6

6.11. 建立管理目錄

sudo mkdir /usr/local/mysql/

6.12. 拷貝ndb管理程式

sudo cp /opt/mysql/server-5.6/bin/ndb_mgm* /usr/local/mysql/

6.13. 連接埠

注釋:簇管理節點的預設連接埠是1186,資料節點的預設端後是2202。

 

6.14.  配置ndb管理節點

cd /usr/local/mysql/

sudo vim config.ini:

# Options affecting ndbd processes on all data nodes:

[NDBD DEFAULT]

NoOfReplicas=2

DataMemory=80M

IndexMemory=18M

# TCP/IP options:

[TCP DEFAULT]

#portnumber=2202

# Management process options:

[NDB_MGMD]

nodeid=1

HostName=10.24.0.101

DataDir=/usr/local/mysql

# Options for data node :

[NDBD]

nodeid=11

HostName=10.24.6.4

DataDir=/opt/mysql/server-5.6/data/

# Options for data node :

[NDBD]

nodeid=12

HostName=10.24.6.6

DataDir=/opt/mysql/server-5.6/data/

# SQL node options:

[MYSQLD]

nodeid=21

HostName=10.24.6.4

[MYSQLD]

nodeid=22

HostName=10.24.6.6

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

  • 1
  • 2
  • 3
  • 下一頁

相關文章

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.