mysql-cluster系列:
- mysql-cluster(1)——簡介
- mysql-cluster(2)——部署
- mysql-cluster(3)——叢集管理和維護
- mysql-cluster(4)——建立記憶體表和磁盤表
- mysql-cluster(5)——jdbc
- mysql-cluster(6)——配置詳解
- mysql-cluster(7)——基準測試
- mysql-cluster(8)——最佳實踐
- mysql-cluster(9)——NDB和InnoDB差別
- 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 其他
盡可能讓查詢簡單,避免資料的跨節點傳輸;
在各節點之間盡可能使用萬兆網絡環境互聯,以減少資料在網絡層傳輸過程中的延時。