1. 程式人生 > >MySQL NDB Cluster Installation Guide

MySQL NDB Cluster Installation Guide

tor acf fault timestamp 客戶 my.cnf 定義 初始化 啟動mysql

Mysql NDB Cluster其主要功能是在無共享存儲的系統中部署基於內存的數據庫Cluster,其主要是通過NDB Cluster(簡稱NDB)存儲引擎來實現的。本文使用的NDB Cluster版本為7.6,主機描述見下表:
技術分享圖片

1、各個節點軟件包安裝
我這裏創建了一個YUM倉庫,所以直接通過yum命令安裝。

  • NDB管理節點安裝軟件包
    [root@mydb02 ~]# yum -y install mysql-cluster-commercial-management-server
  • NDB SQL節點安裝軟件包
    [root@mydb03 ~]# yum -y install mysql-cluster-commercial-server mysql-cluster-commercial-common mysql-cluster-commercial-client
  • NDB 數據節點安裝軟件包
    [root@mydb04 ~]# yum -y install mysql-cluster-commercial-data-node mysql-cluster-commercial-client
    [root@mydb05 ~]# yum -y install mysql-cluster-commercial-data-node mysql-cluster-commercial-client

    2、NDB Cluster服務配置

  • NDB管理節點配置
    //創建配置文件
    [root@mydb02 ~]# mkdir /var/lib/mysql-cluster
    [root@mydb02 ~]# vi /var/lib/mysql-cluster/config.ini
    [tcp default]
    SendBufferMemory=2M
    ReceiveBufferMemory=2M
    [NDBD DEFAULT]
    #設置冗余的分數
    NoOfReplicas=2
    #指定存放數據的內存段大小
    DataMemory=1024M
    #存放跟蹤文件、日誌文件、pid文件以及錯誤日誌的目錄
    DataDir=/var/lib/mysql-cluster
    ServerPort=2202
    #數據庫中存儲NDB表的最大數量
    MaxNoOfTables=8192
    #設置哈希索引在系統中同意時間被使用的總數,該參數的默認值為128。
    MaxNoOfOrderedIndexes=2048
    #定義了可在簇中定義的屬性數目
    MaxNoOfAttributes=5000000
    #開啟這個設置會使內地版NDB嘗試采用O_DIRECT寫LCP、備份、重做日誌,通常使用更少的內存和cpu。
    ODirect=1
    #每個redo日誌文件的大小
    FragmentLogFileSize=100M
    #系統中可以定義的最大數量的觸發器
    MaxNoOfTriggers=1000
    [NDB_MGMD]
    NodeId=1
    HostName=192.168.120.93
    DataDir=/var/lib/mysql-cluster
    TotalSendBufferMemory=2048M
    [NDBD]
    TotalSendBufferMemory=2048M
    NodeId=2
    HostName=192.168.120.130
    DataDir=/var/lib/mysql
    [NDBD]
    TotalSendBufferMemory=2048M
    NodeId=3
    HostName=192.168.120.131
    DataDir=/var/lib/mysql
    [MYSQLD]
    NodeId=4
    TotalSendBufferMemory=2048M
    HostName=192.168.120.129

    初始化NDB管理節點,執行一次,後續啟動不需要加--initial參數。

    [root@mydb02 ~]# ndb_mgmd -f /var/lib/mysql-cluster/config.ini –initial

    通過ndb客戶端查看,除了管理節點已連接外,其他尚未和管理節點建立連接,如下圖:
    技術分享圖片

  • NDB數據節點配置
    //數據節點1創建my.cnf文件
    [root@mydb04 ~]# vi /etc/my.cnf
    [mysqld]
    ndbcluster
    ndb-connectstring = 192.168.120.93
    [mysql_cluster]  
    ndb-connectstring = 192.168.120.93
    //數據節點1初始化
    [root@mydb04 ~]# ndbd --initial
    //數據節點2創建my.cnf文件
    [root@mydb05 ~]# vi /etc/my.cnf
    [mysqld]
    ndbcluster
    ndb-connectstring = 192.168.120.93
    [mysql_cluster]  
    ndb-connectstring = 192.168.120.93
    //數據節點2初始化
    [root@mydb05 ~]# ndbd –initial

    在管理節點通過ndb客戶端可以驗證數據節點已建立連接,如下圖:
    技術分享圖片

  • NDB SQL節點配置
    //創建配置文件
    [root@mydb03 ~]# vi /etc/my.cnf
    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    symbolic-links=0
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    ndbcluster
    default-storage-engine=ndbcluster
    tmp_table_size = 512M 
    max_heap_table_size = 102400M
    max_allowed_packet = 3072M
    log_timestamps=system
    collation-server=utf8_general_ci
    character-set-server = utf8
    [mysql_cluster]
    ndb-connectstring=192.168.120.93
    //啟動MySQL服務
    [root@mydb03 ~]# systemctl start mysqld

    驗證SQL節點是否和管理節點建立連接,如下圖:
    技術分享圖片
    到此,整個ndb cluster服務搭建完成,最後通過SQL節點創建表以及導入數據即可。另外,只有使用了NDBCluster引擎的表才會執行同步操作,如果創建表時未指定engine類型為ndbcluster,則系統不會同步。使用如下命令在SQL節點更改表類型為ndbcluster:

    mysql> alter table xj.chapter engine=ndbcluster;

    3、NDB Cluster服務管理
    創建Cluster的時候,已做過初始化操作,後續的啟動過程不需要加--initial參數。啟動的順序是先啟動ndb管理服務,再啟動ndb數據節點服務,最後是SQL節點服務。

  • 啟動NDB Cluster服務
    [root@mydb02 ~]# ndb_mgmd -f /var/lib/mysql-cluster/config.ini
    [root@mydb04 ~]# ndbd
    [root@mydb05 ~]# ndbd
    [root@mydb03 ~]# systemctl start mysqld
  • 關閉NDB Cluster服務
    //通過NDB客戶端執行shutdown可關閉cluster裏的所有服務除SQL節點服務
    [root@mydb02 ~]# ndb_mgm
    ndb_mgm>shutdown
    [root@mydb03 ~]# systemctl stop mysqld

    4、監控NDB Cluster服務
    這裏使用MySQL Enterprise Monitor工具,這個工具的安裝請參考我博客裏相關內容。待MySQL Enterprise Monitor agent服務啟動後,它會收集操作系統以及MySQL信息發送到服務端,最終從web界面獲取相關信息,如下圖:
    技術分享圖片
    技術分享圖片
    技術分享圖片

MySQL NDB Cluster Installation Guide