可以使用多個在本機資料節點上平行運作的本地資料管理員 (LDM) 進行備份。為了使此功能運作,叢集中的所有資料節點都必須使用多個 LDM,而且每個資料節點都必須使用相同數量的 LDM。這表示所有資料節點都必須執行 ndbmtd ( ndbd 是單執行緒,因此永遠只有一個 LDM),而且必須在進行備份之前設定為使用多個 LDM;ndbmtd 預設以單執行緒模式執行。您可以選擇多執行緒資料節點組態參數 MaxNoOfExecutionThreads
或 ThreadConfig
的適當設定,使它們使用多個 LDM。請記住,變更這些參數需要重新啟動叢集;這可以是滾動式重新啟動。此外,每個資料節點的 EnableMultithreadedBackup
參數必須設定為 1(這是預設值)。
根據 LDM 的數量和其他因素,您可能也需要增加 NoOfFragmentLogParts
。如果您使用大型的磁碟資料表格,您可能也需要增加 DiskPageBufferMemory
。與單執行緒備份一樣,您可能也想要或需要調整 BackupDataBufferSize
、 BackupMemory
和其他與備份相關的組態參數的設定(請參閱備份參數)。
一旦所有資料節點都使用多個 LDM,您可以使用 NDB 管理用戶端中的 START BACKUP
命令進行平行備份,就像資料節點執行 ndbd(或以單執行緒模式執行 ndbmtd)一樣;不需要額外或特殊的語法,而且您可以根據需要或期望,指定任何組合的備份 ID、等待選項或快照選項。
使用多個 LDM 進行的備份會在每個資料節點上,於目錄 BACKUP/BACKUP-
(接著位於 backup_id
/BackupDataDir
下方) 下建立子目錄,每個 LDM 一個子目錄;這些子目錄名稱為 BACKUP-
、 backup_id
-PART-1-OF-N
/BACKUP-
等等,直到 backup_id
-PART-2-OF-N
/BACKUP-
,其中 backup_id
-PART-N
-OF-N
/backup_id
是用於此備份的備份 ID,而 N
是每個資料節點的 LDM 數量。這些子目錄的每一個都包含常見的備份檔案 BACKUP-
、 backup_id
-0.node_id
.DataBACKUP-
和 backup_id
.node_id
.ctlBACKUP-backup_id.node_id.log
,其中 node_id
是此資料節點的節點 ID。
ndb_restore 會自動檢查剛才描述的子目錄是否存在;如果找到,它會嘗試平行還原備份。如需有關還原使用多個 LDM 進行的備份的資訊,請參閱從平行進行的備份還原。
若要強制建立單執行緒備份,請將所有資料節點的 EnableMultithreadedBackup = 0
設定(您可以藉由在 config.ini
全域組態檔的 [ndbd default]
區段中設定參數來執行此操作)。也可以將平行備份還原至執行舊版 NDB
的叢集。如需詳細資訊,請參閱將 NDB 備份還原至舊版 NDB 叢集。