NDB群集安裝
介紹
https://dev.mysql.com/doc/refman/8.0/en/mysql-cluster-basics.html
NDBCLUSTER (也稱為NDB)是一種記憶體存盤引擎,提供高可用性和資料持久性功能,
的NDBCLUSTER存盤引擎可以與一系列故障切換和負載平衡選項進行配置,但最簡單的是開始在集群級別的存盤引擎,NDB Cluster的NDB存盤引擎包含一整套資料,僅依賴于群集本身內的其他資料,
NDB群集 的“ 群集 ”部分的配置獨立于MySQL服務器,在NDB群集中,群集的每個部分都被視為一個 節點,
共有三種型別的群集節點,并且在最小的NDB群集配置中,將至少有三個節點,這些型別之一:
-
管理節點:這種型別的節點的作用是管理NDB群集中的其他節點,執行諸如提供配置資料,啟動和停止節點以及運行備份之類的功能,由于此節點型別管理其他節點的配置,因此應首先啟動此型別的節點,然后再啟動任何其他節點,使用命令ndb_mgmd啟動一個MGM節點 ,
-
資料節點:這種型別的節點存盤集群資料,
NDB群集表通常完全存盤在記憶體中,而不是磁盤上(這就是為什么我們將NDB群集稱為 記憶體資料庫),但是,某些NDB群集資料可以存盤在磁盤上,
-
SQL節點:這是訪問集群資料的節點,對于NDB群集,SQL節點是使用
NDBCLUSTER存盤引擎的傳統MySQL服務器 ,SQL節點實際上只是API節點的一種特殊型別 ,它指定訪問NDB群集資料的任何應用程式,API節點的另一個示例是用于還原集群備份的 ndb_restore實用程式,可以使用NDB API撰寫此類應用程式,
1、資源規劃
|
節點 |
IP地址 |
硬體資源 |
系統 |
|
|
|
管理節點(mgmd) |
192.168.137.128 |
1cpu、1G記憶體 |
Centos7 |
|
|
|
管理節點(mgmd) |
192.168.137.129 |
1cpu、1G記憶體 |
Centos7 |
|
|
|
資料節點“ A”(ndbd) SQL節點(mysqld) |
192.168.137.130 |
1cpu、3G記憶體 (資料節點吃記憶體) |
Centos7 |
|
|
|
資料節點“ B”(ndbd) SQL節點(mysqld) |
192.168.137.131 |
1cpu、3G記憶體 |
Centos7 |
|
|
2、下載安裝檔案(192.168.137.130、192.168.137.131)
官網地址:https://dev.mysql.com/downloads/cluster/
wget https://cdn.mysql.com//Downloads/MySQL-Cluster-8.0/mysql-cluster-8.0.19-linux-glibc2.12-x86_64.tar.gz
3.2、SQL節點
將位置更改為包含下載檔案的目錄,解壓縮歸檔檔案,并創建一個名為mysql該mysql 目錄的符號鏈接 ,
useradd mysql
tar -xf mysql-cluster-gpl-8.0.20-linux-glibc2.12-x86_64.tar.gz
mv mysql-cluster-gpl-8.0.20-linux-glibc2.12-x86_64 /usr/local/mysql
3.3、將位置更改為mysql目錄,并使用mysqld 設定系統資料庫 --initialize,如下所示:
#rm -rf /data/apps/mysql-8.0/ mkdir -p /data/apps/mysql-8.0/logs && chown -R mysql.mysql /data/apps/mysql-8.0 chown -R mysql.mysql /usr/local/mysql cat > /usr/local/mysql/my.cnf <<EOE [mysqld] basedir=/usr/local/mysql datadir=/data/apps/mysql-8.0/data socket=/tmp/mysql.sock user=mysql symbolic-links=0 lower_case_table_names=1 max_connections=2000 wait_timeout=120 interactive_timeout=120 key_buffer_size=128M tmp_table_size=16M read_buffer_size=4M read_rnd_buffer_size=16M sort_buffer_size=32M innodb_buffer_pool_size=1024M ndbcluster [mysqld_safe] log-error=/data/apps/mysql-8.0/logs/mysqld.log pid-file=/data/apps/mysql-8.0/mysqld.pid user=mysql [mysql_cluster] ndb-connectstring=192.168.137.128,192.168.137.129 EOE
mv /etc/my.cnf /etc/my.cnf_`date +%F-%s`
ln -s /usr/local/mysql/my.cnf /etc/my.cnf
3.4初始化資料庫
/usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/my.cnf --basedir=/usr/local/mysql --datadir=/data/apps/mysql-8.0/data --initialize --user=mysql

記住密碼一會兒用
3.4 將MySQL啟動腳本復制到適當的目錄,使其可執行,并將其設定為在作業系統啟動時啟動:
cp support-files/mysql.server /etc/rc.d/init.d/ chmod +x /etc/rc.d/init.d/mysql.server chkconfig --add mysql.server
4.1資料節點,拷貝資料節點啟動檔案,如資料節點和sql節點在同一臺,此步忽略
scp 192.168.137.130:/usr/local/mysql/bin/{ndbd,ndbmtd} /usr/local/bin/. cd /usr/local/bin chmod +x ndb* mkdir -p /data/apps/mysql-8.0
在每個資料節點主機上應重復上述步驟,
5.1管理節點, 137.128、137.129
scp 192.168.137.130:/usr/local/mysql/bin/ndb_mgm* /usr/local/bin/. cd /usr/local/bin chmod +x ndb_mgm*
mkdir -p /usr/local/mysql/mysql-cluster
5.2配置管理節點,
#組態檔詳解
#https://dev.mysql.com/doc/refman/8.0/en/mysql-cluster-config-file.html
cat > /usr/local/mysql/config.ini <<EOE [ndbd default] # Options affecting ndbd processes on all data nodes: NoOfReplicas=2 # Number of replicas DataMemory=98M # How much memory to allocate for data storage [ndb_mgmd] NodeId=1 # Management process options: HostName=192.168.137.128 # Hostname or IP address of MGM node DataDir=/usr/local/mysql/mysql-cluster # Directory for MGM node log files [ndb_mgmd] NodeId=2 # Management process options: HostName=192.168.137.129 # Hostname or IP address of MGM node DataDir=/usr/local/mysql/mysql-cluster # Directory for MGM node log files [ndbd] # Options for data node "A": # (one [ndbd] section per data node) HostName=192.168.137.130 # Hostname or IP address NodeId=3 # Node ID for this data node DataDir=/data/apps/mysql-8.0 # Directory for this data node's data files [ndbd] # Options for data node "B": HostName=192.168.137.131 # Hostname or IP address NodeId=4 # Node ID for this data node DataDir=/data/apps/mysql-8.0 # Directory for this data node's data files [mysqld] NodeId=5 # SQL node options: HostName=192.168.137.130 # Hostname or IP address # (additional mysqld connections can be # specified for this node for various
[mysqld] # SQL node options: NodeId=6 HostName=192.168.137.131 # purposes such as running ndb_restore) EOE
6、 NDB群集的初始啟動
6.1管理主機
/usr/local/mysql/bin/ndb_mgmd -f /usr/local/mysql/config.ini --initial (初始化才加)

6.2在每個資料節點主機上,運行以下命令以啟動 ndbd行程:
ndbd --initial (初始化才加)
如報錯,執行下列命令

ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1 ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
再次啟動成功:

6.3 Sql節點啟動資料庫:
/usr/local/mysql/bin/mysqld &
如果一切順利,并且集群已正確設定,則集群現在應該可以運行了,您可以通過呼叫ndb_mgm管理節點客戶端來對此進行測驗,輸出看起來應該像這里顯示的一樣,盡管您可能會看到輸出有些細微的差異,具體取決于所使用的MySQL版本:
管理節點

SQL節點在這里被稱為 [mysqld(API)],這反映了mysqld行程充當NDB群集API節點的事實 ,
7、安全關閉和重新啟動NDB群集
7.1要關閉群集,請在托管管理節點的計算機上的外殼程式中輸入以下命令:
ndb_mgm -e shutdown -e此處 的選項用于將命令從外殼傳遞給ndb_mgm客戶端,
7.2 再次啟動,管理節點執行
ndb_mgmd -f /usr/local/mysql/config.ini
7.3 在每個資料節點執行
ndbd
7.4 使用ndb_mgm客戶端來驗證兩個資料節點均已成功啟動,
7.5 在SQL主機上:
/usr/local/mysql/bin/mysqld &
如果其中一個資料節點掛掉,必須讓其中一個節點完全恢復,集群才可以繼續使用
8、 其他注意
創建表時必須設定主鍵和加上ENGINE=NDBCLUSTER
create table s_position ( id int not null auto_increment, name varchar(20) not null default '經理', #設定默認值 description varchar(100), primary key PK_positon (id) #設定主鍵 ) ENGINE=NDBCLUSTER;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/72710.html
標籤:MySQL
下一篇:資料庫系統概論--關系運算
