天天看點

mysql-cluster(8)——最佳實踐1 叢集數量2 MGM節點配置3 NDB節點和SQL節點配置4 其他

mysql-cluster系列:

  1. mysql-cluster(1)——簡介
  2. mysql-cluster(2)——部署
  3. mysql-cluster(3)——叢集管理和維護
  4. mysql-cluster(4)——建立記憶體表和磁盤表
  5. mysql-cluster(5)——jdbc
  6. mysql-cluster(6)——配置詳解
  7. mysql-cluster(7)——基準測試
  8. mysql-cluster(8)——最佳實踐
  9. mysql-cluster(9)——NDB和InnoDB差別
  10. mysql-cluster(10)——注意事項

本文目錄:

  • 1 叢集數量
  • 2 MGM節點配置
    • 2.1 config.ini
    • 2.2 關閉mysql服務
  • 3 NDB節點和SQL節點配置
  • 4 其他

1 叢集數量

節點 數量
MGM節點 1
NDB節點 >=2
SQL節點 >=1,盡可能多

2 MGM節點配置

2.1 config.ini

配置/opt/mysql/data/config.ini:

[ndb_mgmd default]
DataDir = /opt/mysql/data

[ndbd default]
NoOfReplicas = 2
DataMemory = 2G                                    #每個資料節點中給資料配置設定的記憶體         
IndexMemory = 800M                                 #每個資料節點中給索引配置設定的記憶體
DataDir = /usr/local/mysql/data
StringMemory = 50
MaxNoOfTables = 4096                               # 表的最大數量
MaxNoOfOrderedIndexes = 2048                       # 有序索引的總數
MaxNoOfUniqueHashIndexes = 1024
MaxNoOfAttributes = 24576                          # 可在叢集中定義的屬性數量
MaxNoOfTriggers = 10240                            # 觸發器的最大數量
MaxNoOfConcurrentTransactions = 409600             # 結點内可能的并發事務數,預設值為 4096。對于所有結點,必須将參數設定為相同的值。
MaxNoOfConcurrentOperations = 3276800              # 同時出現在更新階段或同時鎖定的記錄數
# MaxNoOfLocalOperations = 55000
TimeBetweenGlobalCheckpoints = 1000                # 全局檢查點操作之間的時間間隔
TimeBetweenEpochs = 100
TimeBetweenWatchdogCheckInitial = 60000
# TransactionBufferMemory = 20M
TimeBetweenLocalCheckpoints = 20                    # 
SchedulerSpinTimer = 400
SchedulerExecutionTimer = 100
RealTimeScheduler = 1
BackupMaxWriteSize = 2M
BackupDataBufferSize = 32M                          # 資料備份緩沖區大小
BackupLogBufferSize = 8M
MaxNoOfExecutionThreads = 4
TransactionDeadLockDetectionTimeOut = 15000         # 放棄事務之前,事務協調器等候另一結點執行查詢的時間 
BatchSizePerLocalScan = 512                         # 計算鎖定記錄的數量
LongMessageBuffer = 16M                             # 在單個結點内和結點之間傳遞消息的内部緩沖
HeartbeatIntervalDbDb = 15000                       # 每個資料結點發送心跳信号到SQL結點的間隔
HeartbeatIntervalDbApi = 15000
FragmentLogFileSize = 256M                          # 單個REDO日志檔案的大小
NoOfFragmentLogFiles = 160                          # 節點REDO日志檔案的數量

[mysqld default]

################################################################################################################
#
################################################################################################################

[ndb_mgmd]
NodeId = 1
HostName = 10.5.11.85

################################################################################################################
#
################################################################################################################
[ndbd]
NodeId = 11  
HostName = 10.5.11.86
datadir = /opt/mysql/data
[ndbd]
NodeId = 12
HostName = 10.5.11.87
datadir = /opt/mysql/data

################################################################################################################
# sql節點可以部署在Web應用伺服器上,也可以部署在專用的伺服器上,也可以和DB部署在同一台伺服器上。
# 一般保留3個空sql節點,用于動态添加sql節點。
################################################################################################################

[mysqld]
NodeId = 81
HostName = 10.5.11.86
[mysqld] 
NodeId = 82
HostName = 10.5.11.87
[mysqld]
[mysqld]
[mysqld]
           

2.2 關閉mysql服務

MGM節點實際上并不需要啟動MySQL服務程式,是以建議将mysql服務的自啟狀态設為關閉:

chkconfig mysql off
           

3 NDB節點和SQL節點配置

配置/etc/my.cnf:

[MYSQLD]
user=root
character_set_server=utf8
ndbcluster
ndb-connectstring=10.5.11.85
default-storage-engine=ndbcluster
datadir=/opt/mysql/data
basedir=/usr/local/mysql
[MYSQL_CLUSTER]
ndb-connectstring=10.5.11.85
           

4 其他

盡可能讓查詢簡單,避免資料的跨節點傳輸;

在各節點之間盡可能使用萬兆網絡環境互聯,以減少資料在網絡層傳輸過程中的延時。