詳解MySQL Cluster管理結點的config.ini配置文件

一、定義MySQL Cluster的TCP/IP連接
TCP/IP是MySQL集羣用於建立連接的默認傳輸協議,正常情況下不需要定義連接。可使用“[TCP DEFAULT]”或“[TCP]”進行定義。

1. SendBufferMemory
TCP傳輸緩存。默認值爲 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地址


發佈了39 篇原創文章 · 獲贊 33 · 訪問量 35萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章