mysql 集群搭建,部署


Mysql集群搭建

一、NDB集群核心概念

1)介紹

NDBCLUSTER (也稱為NDB)是一種內存存儲引擎,提供高可用性和數據持久性功能。

NDBCLUSTER存儲引擎可以與一系列故障切換和負載平衡選項進行配置,但最簡單的是開始在集群級別的存儲引擎。NDB Cluster的NDB存儲引擎包含一整套數據,僅依賴於集群內部的其他數據。

NDB Cluster 的“Cluster”部分是獨立於MySQL服務器配置的。在NDB群集中,群集的每個部分都被視為一個節點。

2)節點

有三種類型的集群節點,在最小的NDB集群配置中,將至少有三個節點,每種節點中的一種:

管理節點:此類節點的作用是管理NDB集群中的其他節點,執行諸如提供配置數據,啟動和停止節點以及運行備份等功能。

數據節點:此類節點存儲群集數據。

NDB Cluster表通常完全存儲在內存中而不是磁盤上(這就是我們將NDB Cluster稱為 內存數據庫的原因)。但是,一些NDB Cluster數據可以存儲在磁盤上; 

SQL節點:這是一個訪問集群數據的節點。對於NDB Cluster,SQL節點是使用NDBCLUSTER存儲引擎的傳統MySQL服務器 。SQL節點是使用和 選項啟動的mysqld進程

重要

期望在生產環境中使用三節點設置是不現實的。這種配置不提供冗余; 要從NDB Cluster的高可用性功能中受益,您必須使用多個數據和SQL節點。強烈建議使用多個管理節點。

 

二、集群安裝--准備工作

以下操作與官網有些出入,如有疑問,可自行翻閱資料

https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-install-linux-binary.html  官網地址

1)環境

系統

CentOS Linux release 7.2.1511 (Core)

mysql集群版本

mysql-cluster-gpl-7.6.9-linux-glibc2.12

 

這里這是簡單搭建,三台機器,三個節點

要保證機器之間能夠ping通

192.168.10.151   

管理節點

192.168.10.67    

sql節點

192.168.10.162   

數據節點

 

 

 

2)添加mysql用戶

在三台機器,均執行以下操作

 1、增加用戶和群組

shell> groupadd mysql

shell> useradd -g mysql -s /bin/false mysql

  shell> id mysql  查看mysql是否創建成功

  uid=1001(mysql) gid=1001(mysql) groups=1001(mysql)

2、下載安裝包,並上傳到3台機器上面

 

 

三、集群安裝--安裝二進制文件

1)SQL節點。

SQL節點在指定用於承載SQL節點的每台計算機上

以下操作為初始化數據庫

1

shell> tar  -xzvf mysql-cluster-gpl-7.6.9-linux-glibc2.12-x86_64.tar.gz 

shell> mv mysql-cluster-gpl-7.6.9-linux-glibc2.12-x86_64 /usr/local/ #移動

shell> cd /usr/local/

shell> mv mysql-cluster-gpl-7.6.9-linux-glibc2.12-x86_64  mysql   #改名字

shell> cd mysql 

shell> mkdir  data     

[root@fdmsdb /]# chown mysql:mysql data     

[root@fdmsdb /]# chmod -R 755 data     

 

2、修改/etc/my.cnf 文件

①先自行創建my.cnf 所需文本,並更改權限

例如

cd /var/log/

touch mysqld.log

chown mysql:mysql mysqld.log

chmod 775 mysqld.log

/my.cnf 具體配置如下

[mysqld]

# Options for mysqld process:

symbolic-links=0

basedir = /usr/local/mysql

datadir = /usr/local/mysql/data

socket=/tmp/mysql.sock

 

[mysqld_safe]

#錯誤日志

log-error=/var/log/mysqld.log

pid-file=/var/run/mariadb/mariadb.pid

# include all files from the config directory

#

#!includedir /etc/my.cnf.d

3、初始化數據庫

 

bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --lc_messages_dir=/usr/local/mysql/share

4、設置MySQL服務器和數據目錄的必要權限

shell> cd /usr/local/mysql 

shell> chown -R root . 

shell> chown -R mysql data

shell> chgrp -R mysql .

5、設置鏈接

shell> cp support-files/mysql.server /etc/rc.d/init.d/

shell> chmod +x /etc/rc.d/init.d/mysql.server

shell> chkconfig --add mysql.server

(啟動腳本目錄可能因操作系統和版本而異 - 例如,在某些Linux發行版中,它是 /etc/init.d。)

請記住,必須在要駐留SQL節點的每台計算機上重復上述步驟。

 

2)數據節點。

 安裝數據節點一般來說不需要 mysqld二進制文件。只需要NDB Cluster數據節點可執行ndbd(單線程)或 ndbmtd(多線程)。

 

①為了保險起見,重復SQL節點初始化數據庫的操作

shell> cd  /usr/local/mysql

shell> cp bin/ndbd /usr/local/bin/ndbd

shell> cp bin/ndbmtd /usr/local/bin/ndbmtd

shell> cd /usr/local/bin

shell> chmod +x ndb*

應在每個數據節點主機上重復上述步驟。

 

3)管理節點  

安裝管理節點不需要 mysqld二進制文件。只需要NDB群集管理服務器ndb_mgmd您最有可能也想安裝管理客戶端ndb_mgm

shell> tar -zxvf mysql-cluster-gpl-7.6.9-linux-glibc2.12-x86_64.tar.gz

shell> cd mysql-cluster-gpl-7.6.9-linux-glibc2.12-x86_64 

shell> cp bin/ndb_mgm* /usr/local/bin

# 創建快捷方式

 shell> cd /usr/local/bin

 shell> chmod +x ndb_mgm*

 

三、NDB集群的初始配置

1)配置數據節點和SQL節點

my.cnf添加下列信息

shell> vi /etc/my.cnf
[mysqld] # Options for mysqld process:

 ndbcluster # run NDB storage engine 

[mysql_cluster]

 # Options for NDB Cluster processes:

 ndb-connectstring=192.168.10.151  # location of management server

 

2)配置管理節點

1

shell> mkdir /var/lib/mysql-cluster

shell> cd /var/lib/mysql-cluster

shell> vi config.ini
[ndbd default]
# Options affecting ndbd processes on all data nodes:
NoOfReplicas=1    # Number of replicas 目前只有數據一個數據節點,設置為1
DataMemory=80M    # How much memory to allocate for data storage
IndexMemory=18M   # How much memory to allocate for index storage
                  # For DataMemory and IndexMemory, we have used the
                  # default values. Since the "world" database takes up
                  # only about 500KB, this should be more than enough for
                  # this example NDB Cluster setup.
ServerPort=2202   # This the default value; however, you can use any
                  # port that is free for all the hosts in the cluster
                  # Note1: It is recommended that you do not specify the port
                  # number at all and simply allow the default value to be used
                  # instead
                  # Note2: The port was formerly specified using the PortNumber
                  # TCP parameter; this parameter is no longer available in NDB
                  # Cluster 7.6.
[ndb_mgmd]
# Management process options:
HostName=192.168.10.151          # Hostname or IP address of MGM node
DataDir=/var/lib/mysql-cluster  # Directory for MGM node log files
[ndbd] # Options
for data node "A": # (one [ndbd] section per data node HostName=192.168.10.162 # Hostname or IP address NodeId=2 # Node ID for this data node DataDir=/usr/local/mysql/data # Directory for this data node's data files [mysqld] # SQL node options: HostName=192.168.10.67 # Hostname or IP address # (additional mysqld connections can be # specified for this node for various # purposes such as running ndb_restore)

 

2、開放端口

Cluster管理節點的默認端口是1186; 數據節點的默認端口是2202.但是,群集可以自動為那些已經空閑的數據節點分配端口。

/sbin/iptables -I INPUT -p tcp --dport 1186 -j ACCEPT     -- 開放端口

四、啟動集群

(1)在管理主機上

啟動管理節點進程

 ndb_mgmd -f /var/lib/mysql-cluster/config.ini

(2)在每個數據節點主機上

shell> ndbd

 

3SQL主機

shell> /usr/local/mysql/bin/mysqld_safe &

 

(4)測試

如果一切順利,並且群集已正確設置,則群集現在應該可以運行。您可以在管理節點上調用ndb_mgm客戶端來測試它。

shell> ndb_mgm

 -- NDB Cluster -- Management Client

-- ndb_mgm> SHOW 

Connected to Management Server at: localhost:1186 Cluster Configuration

至此大功告成

 

shell> ndb_mgm -e shutdown      # 關閉群集

 

如果出現報錯,請檢查文件配置和文件的權限是否正確


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM