一、定義MySQL Cluster的TCP/IP串連TCP/IP是MySQL叢集用於建立串連的預設傳輸協議,正常情況下不需要定義串連。可使用“[TCP DEFAULT]”或“[TCP]”進行定義。 1. SendBufferMemoryTCP傳輸緩衝。預設值為 256KB。 2. SendSignalId通過網路傳輸訊息ID。預設禁止該特性(取值: Y/N或1/0)。 3. Checksum啟用該參數將在所有訊息置於發送緩衝之前,為所有參數計算校正和。預設禁止該特性(取值: Y/N或1/0)。 4. ReceiveBufferMemory指定從TCP/IP Socket接收資料時所使用的緩衝大小。幾乎不需要更改該參數的預設值,預設值為64KB。 二、定義資料結點預設行為NoOfReplicas為必要參數,使用“[NDBD DEFAULT]”進行定義。 1. NoOfReplicas定義叢集中每個表儲存的拷貝數,另外還指定結點組的大小。結點組指儲存相同資訊的結點集合。通常情況下不需要為該參數指定值。NoOfReplicas沒有預設值,最大的可能值為 4。 三、定義管理伺服器(MGM)用於組態管理伺服器的行為。下面的參數均可以被忽略,如果是這樣,將使用其預設值。如果沒有定義ExecuteOnComputer或HostName,則會指定為localhost。可使用“[NDB_MGMD]”定義單個管理結點的行為,也可使用“[NDB_MGMD DEFAULT]”定義多個管理結點的預設行為。 1. NodeId叢集中結點的唯一標識,取值 1~63。 2. HostName指定結點主機名稱或IP。 3. ExecuteOnComputer引用在“[COMPUTER]”部分中定義的電腦之一。 4. PortNumber管理伺服器監聽連接埠(預設值: 2202)。 5. LogDestination結點日誌出處理方式,可取下述值:
5.1. CONSOLE
將日誌輸出到標準輸出裝置(stdout)。
5.2. SYSLOG:facility=syslog
將日誌發送到syslog(系統日誌)軟裝置,可能值:
auth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, syslog
, user, uucp, local0, local12~7
5.3. FILE:filename=/var/log/mgmd.log,maxsize=1000000,maxfiles=6
講日誌輸出到檔案,可指定一下值:
filename:記錄檔名稱。
maxsize:記錄檔最大尺寸,大於該尺寸時自動建立新記錄檔。
maxfiles:記錄檔最大數量。 6. ArbitrationRank指定哪個結點扮演決策角色,只有MGM結點和SQL結點可以使用(預設值:1)。通常情況下,應將值設為 1,並將所有SQL結點設為 0,以MGM伺服器作為決策程式。可取下述值之一:
0:該結點永遠不用作決策。
1:該結點具有高優先順序。
2:該結點具有低有限級。 7. ArbitrationDelay指定管理伺服器對決策請求的延遲時間,毫秒為單位,預設為 0。通常情況下不需要改變它。 8. DataDir儲存管理伺服器輸出檔案的位置,包括日誌,進程輸出檔案,以及程式的pid檔案。對於記錄檔,可通過設定LogDestination的FILE參數覆蓋它。 四、定義資料結點(NDBD)用於配置資料結點的行為。ExecuteOnComputer或HostName為必要參數。對於各種參數,可以使用尾碼k、M或G指明單位。使用“[NDBD]”進行定義。 1. NodeId啟動結點時,可在命令列中分配ID(即資料結點ID),也能在設定檔中分配。 2. HostName指定結點主機名稱或IP。 3. ExecuteOnComputer引用在“[COMPUTER]”部分中定義的電腦之一。 4. DataDir指定存放追蹤檔案,記錄檔,pid檔案以及錯誤記錄檔的目錄。 5. BackupDataDir指定存放備份的目錄,預設為 {FileSystemPath}/BACKUP。 6. DataMemory指定資料記憶體,預設值為 80MB,最小值 1MB,無大小限制。 7. IndexMemory指定索引記憶體,預設值為 18MB,最小值 1MB,無大小限制。 8. MaxNoOfConcurrentTransactions用於設定結點內可能的並發事務數,預設值為 4096。對於所有結點,必須將參數設定為相同的值。 9. MaxNoOfConcurrentOperations設定能同時出現在更新階段或同時鎖定的記錄數。預設值為 32768。 10. MaxNoOfLocalOperations預設情況下,將按照1.1 * MaxNoOfConcurrentOperations計算該參數,它適合於具有很多並發事務,但不存在特大事務的系統。如果需要在某一時間處理特大事務,而且有很多結點,最好通過明確指定該參數以覆蓋預設值。 11. MaxNoOfConcurrentIndexOperations該參數的預設值為8192。只有在極其罕見的情況下,需要使用唯一性雜湊索引執行極高的並行操作時,才有必要增大該值。如果確信該叢集不需要高的並行操作,可以使用較小的值並節省記憶體。 12. MaxNoOfFiredTriggers預設值是4000,它足以應付大多數情況。在某些情況下,如果認為在叢集中對並行操作的要求並不高, 甚至還能降低它。 13. TransactionBufferMemory該參數影響的記憶體用於跟蹤更新索引表和讀取唯一索引時執行的操作。該記憶體用於儲存關於這類操作的鍵和列資訊。幾乎不需要更改該參數的預設值。 14. MaxNoOfConcurrentScans該���數用於控制可在叢集中執行的並行掃描的數量。預設值為256,最大值為500。 15. MaxNoOfLocalScans如果很多掃描不是完全並行化的,指定本地掃描記錄的數量。 16. BatchSizePerLocalScan該參數用於計算鎖定記錄的數量。要想處理很多並發掃描操作,需要這類記錄。預設值是64,該值與SQL結點中定義的 ScanBatchSize 關係密切。 17. LongMessageBuffer用於在單個結點內和結點之間傳遞訊息的內部緩衝。儘管幾乎不需要改變它,但它仍是可配置的。預設情況下,它被設定為1MB。 18. NoOfFragmentLogFiles設定結點的REDO記錄檔的大小,預設值為 8。 19. MaxNoOfSavedMessages設定追蹤檔案的最大數,預設值為 25。 20. MaxNoOfAttributes設定可在叢集中定義的屬性數量,預設值為 1000,最小值為 32。 21. MaxNoOfTables設定叢集中最大表對象數量。預設值為128,最小值為 8,最大值為 1600。 22. MaxNoOfOrderedIndexes對於叢集中的每個有序索引,會分配一個對象,用於描述索引的內容,以及它的儲存片段。在預設情況下,每個如此定義的索引還定義了一個有序索引。每個唯一索引和主鍵都具有一個有序索引和一個雜湊索引。MaxNoOfOrderedIndexes設定有序索引的總數,這是系統任何時候能夠使用的有序索引的總數。這個參數的預設值是128。每個結點中的每個索引對象尺寸大約為10KB。 23. MaxNoOfUniqueHashIndexes對於每個不是主鍵的唯一索引,會分配一個表,用於將唯一鍵映射至索引表的主鍵。在預設情況下,還會為每個唯一索引定義一個有序索引。想要避免這種情況,當定義唯一索引時,你還必須指定“USING HASH”選項。預設值是64。每個結點中的每個索引的尺寸大約為15KB。 24. MaxNoOfTriggers該參數用於設定叢集中觸發器的最大數量。 25. LockPagesInMainMemory對於很多作業系統,能夠將進程鎖定在記憶體中,以避免與磁碟的交換。使用它可以確保叢集的即時特性。預設情況下,該特性是被禁止的(取值:Y/N或1/0)。 26. StopOnError出現錯誤時,該參數指定NDBD進程是退出還是自動重啟。預設情況下,該特性是啟用的(取值:Y/N或1/0)。 27. Diskless指定叢集為“無磁碟”,意味著不會為表在磁碟上設立檢查點,也不會記錄任何日誌。預設情況下,該特性是被禁止的(取值:Y/N或1/0)。 28. RestartOnErrorInsert僅當編譯為調試版時才能訪問該特性。預設情況下,該特性是被禁止的。 29. TimeBetweenWatchDogCheck指定監控線程檢查的間隔。該參數以毫秒為單位,預設值為 4000 毫秒。 30. StartPartialTimeout該參數指定了在調用叢集初始化子程式之前,叢集等待所有儲存結點出現的時間。預設值為 30000 毫秒(0 表示無限逾時)。 31. StartPartitionedTimeout如果叢集做好了啟動準備,但仍可能處於隔離狀態,叢集將等待該逾時時間結束。預設值為 60000 毫秒。 32. StartFailureTimeout如果資料結點在該參數指定的時間內未完成其啟動序列,結點啟動將失敗。如果將該參數設定為0,表示不採用資料結點逾時。預設值為 60000 毫秒。 33. HeartbeatIntervalDbDb每個資料結點發送心跳訊號到SQL結點的間隔。預設值為 1500 毫秒。 34. HeartbeatIntervalDbApi每個資料結點都會向每個MySQL伺服器(SQL結點)發送心跳訊號,以確保它們依然保持接觸。如果一個MySQL伺服器沒能成功地及時發送一個心跳,那麼就會將其聲明為“失效”,在這種情況下,所有進行中的事務都會結束,並且釋放所有資源。SQL結點不能重連,直到由先前的MySQL執行個體所初始化的所有活動都已經結束為止。預設的時間間隔是1500毫秒(1.5秒)單個資料結點之間的這個時間間隔可以是不同的,因為每個資料結點都會監視與其串連的MySQL伺服器,與所有其他的資料結點無關。 35. TimeBetweenLocalCheckpoints該參數預設值為20。 36. TimeBetweenGlobalCheckpoints該參數定義了全域檢查點操作之間的時間間隔。預設值為 2000 毫秒。 37. TimeBetweenInactiveTransactionAbortCheck該參數預設值為 1000 毫秒。 38. TransactionInactiveTimeout如果事務目前未執行任何查詢,而是等待進一步的使用者輸入,該參數指明了放棄事務之前使用者能夠等待的最長時間。預設值為 0。 39. TransactionDeadlockDetectionTimeout該逾時參數指明了放棄事務之前,事務協調器等候另一結點執行查詢的時間。 40. NoOfDiskPagesToDiskAfterRestartTUP該參數指定了執行本地檢查點操作的速度,並能與NoOfFragmentLogFiles、DataMemory和IndexMemory一起使用。預設值是 40(每秒3.2MB的資料頁)。 41. NoOfDiskPagesToDiskAfterRestartACC該參數使用的單位與NoOfDiskPagesToDiskAfterRestartTUP的相同。工作方式也類似,但限制的是從索引記憶體進行的索引頁寫入速度。該參數的預設值為每秒20個索引記憶體頁(1.6MB每秒)。 42. NoOfDiskPagesToDiskDuringRestartTUP該參數涉及從資料記憶體寫入的頁。預設值是40(3.2MB每秒)。 43. NoOfDiskPagesToDiskDuringRestartACC該參數預設值是20(1.6MB每秒)。 44. ArbitrationTimeout指定資料結點等待決策程式對決策訊息的回應的時間。預設值為 1000 毫秒。 45. UndoIndexBuffer指定UNDO索引緩衝大小。預設值為 2MB,最小值為1MB。 46. UndoDataBuffer指定UNDO資料緩衝區大小。預設值為 16MB,最小值為1MB。 47. RedoBuffer指定REDO資料緩衝區大小。預設值為 8MB,最小值為1MB。 48. LogLevelStartup記錄層級,用於進程啟動過程中產生的事件。預設層級為 1。 49. LogLevelShutdown記錄層級,用於作為結點恰當關閉進程組成部分而產生的事件。預設層級為 0。 50. LogLevelStatistic記錄層級,用於統計事件,如主鍵法讀取次數、更新數、插入數、與緩衝使用有關的資訊等。預設層級為 0。 51. LogLevelCheckpoint記錄層級,用於由本地和全域檢查點操作產生的事件。預設層級為 0。 52. LogLevelNodeRestart記錄層級,用於在結點重啟過程中產生的事件。預設層級為 0。 53. LogLevelConnection記錄層級,用於由叢集結點間的串連產生的事件。預設層級為 0。 54. LogLevelError記錄層級,用於由在整個叢集內的錯誤和警告產生的事件。這類錯誤不會導致任何結點失敗,但仍值得記錄。預設層級為 0。 55. LogLevelInfo記錄層級,用於為叢集的一般狀態資訊而產生的事件。預設層級為 0 56. BackupDataBufferSize指定資料備份緩衝區大小。預設值為 2MB。 57. BackupLogBufferSize指定記錄備份緩衝區大小。預設值為 2MB。 58. BackupMemory該參數是BackupDataBufferSize和BackupLogBufferSize之和。預設值是2MB + 2MB = 4MB。 59. BackupWriteSize該參數指定了由備份日誌緩衝和備份資料緩衝寫入磁碟的訊息大小。預設值為 32KB。 60. FileSystemPath該參數指定了存放為中繼資料建立的所有檔案、REDO日誌、UNDO日誌和資料檔案目錄。注意:在ndbd進程啟動前,該目錄必須已存在。 五、定義MySQL伺服器(SQL)定義用於訪問叢集資料的MySQL伺服器(SQL結點)的行為。可使用“[MYSQLD]”定義單個SQL結點的行為,也可使用“[MYSQLD DEFAULT]”定義多個SQL結點的預設行為。 1. NodeId叢集中結點的唯一標識。取值 1~63。 2. HostName指定結點主機名稱或IP。 3. ExecuteOnComputer引用在“[COMPUTER]”部分中定義的電腦之一。 4. ArbitrationRank對於正常配置,使用管理伺服器作為決策程式。將管理伺服器的ArbitrationRank設定為 1(預設),並將所有SQL結點的ArbitrationRank設定為 0。 5. ArbitrationDelay指定管理伺服器對決策請求的延遲時間,以毫秒為單位。預設為 0,通常情況下不需要改變它。 6. BatchByteSize對於被轉換為全表掃描或索引範圍掃描的查詢來說,以適當大小批量擷取記錄,可以獲得最佳的效能。這個合適的尺寸既可以用記錄數量(BatchSize)表示,也可以用位元組數量(BatchByteSize)表示。實際的批量尺寸受這兩個參數的限制。根據這個參數的設定方法,查詢效能最多可以提高40%。該參數以位元組為單位,預設值是 32KB。 7. BatchSize該參數以位元組為單位,預設值是 64,最大值為 992。 8. MaxScanBatchSize指定從各資料結點發送的每批資料的大小,預設值是 256KB,最大值為 16MB。 六、設定檔樣本
[ndbd default] # 資料結點的預設配置 NoOfReplicas=2 # 資料在叢集中具有兩份拷貝 DataMemory=80M # 資料記憶體大小為80 MB IndexMemory=18M # 索引記憶體大小為18 MB
[ndb_mgmd] # 管理結點配置 NodeId=1 hostname=192.168.124.141 # 管理結點的IP地址 datadir=/var/lib/mysql-cluster # 儲存管理結點的輸出檔案的位置
[ndbd] # 資料結點的配置 NodeId=2 hostname=192.168.124.142 # 資料結點的IP地址 datadir=/usr/local/mysql/data # 指定存放追蹤檔案、記錄檔、pid檔案以及錯誤記錄檔的目錄
[ndbd] # 資料結點的配置 NodeId=3 hostname=192.168.124.143 # 資料結點的IP地址 datadir=/usr/local/mysql/data [mysqld] # SQL結點的配置 NodeId=4 hostname=192.168.124.144 # SQL結點的IP地址 [mysqld] # SQL結點的配置 NodeId=5 hostname=192.168.124.145 # SQL結點的IP地址 |
MySQL Cluster 的詳細介紹:請點這裡
MySQL Cluster 的:請點這裡
推薦閱讀:
MySQL Cluster 備份與恢複
MySQL Cluster安裝配置
MySQL Cluster 3台機器搭建叢集環境 DOC
MySQL Cluster7.2線上增加資料節點存在重大弊端