在 NDB 8.0 中,可以使用在数据节点上并行操作的多个本地数据管理器 (LDM) 进行备份。为此,集群中的所有数据节点必须使用多个 LDM,并且每个数据节点必须使用相同数量的 LDM。这意味着所有数据节点都必须运行ndbmtd
(ndbd是单线程的,因此总是只有一个 LDM)并且在进行备份之前必须将它们配置为使用多个 LDM;默认情况下, ndbmtd以单线程模式运行。您可以通过为多线程数据节点配置参数之一选择适当的设置来使它们使用多个 LDM,
MaxNoOfExecutionThreads
或者ThreadConfig
. 请记住,更改这些参数需要重启集群;这可以是滚动重启。此外,
EnableMultithreadedBackup
必须将每个数据节点的参数设置为 1(这是默认值)。
根据 LDM 的数量和其他因素,您可能还需要增加
NoOfFragmentLogParts
. 如果您使用的是大型磁盘数据表,您可能还需要增加
DiskPageBufferMemory
. 与单线程备份一样,您可能还希望或需要调整 、 和其他与备份相关的配置参数的设置
BackupDataBufferSize
(
BackupMemory
请参阅
备份参数)。
一旦所有数据节点都使用多个 LDM,您可以使用START
BACKUP
NDB 管理客户端中的命令进行并行备份,就像数据节点运行ndbd
(或单线程模式下的ndbmtd )一样;不需要额外的或特殊的语法,您可以根据需要或期望以任意组合指定备份 ID、等待选项或快照选项。
使用多个 LDM 的备份创建子目录,每个 LDM 一个,
在每个数据节点的目录下
(该目录又位于 下
);这些子目录命名为
、
等,直到
,其中是用于此备份的备份 ID,是每个数据节点的 LDM 数量。这些子目录中的每一个都包含常用的备份文件
、
和,其中
是该数据节点的节点 ID。
BACKUP/BACKUP-
backup_id
/BackupDataDir
BACKUP-
backup_id
-PART-1-OF-N
/BACKUP-
backup_id
-PART-2-OF-N
/BACKUP-
backup_id
-PART-N
-OF-N
/backup_id
N
BACKUP-
backup_id
-0.node_id
.DataBACKUP-
backup_id
.node_id
.ctlBACKUP-backup_id.node_id.log
node_id
ndb_restore自动检查是否存在刚才描述的子目录;如果找到它们,它会尝试并行恢复备份。有关恢复使用多个 LDM 进行的备份的信息,请参阅 第 23.5.23.3 节,“从并行进行的备份中恢复”。
要强制创建可以通过ndb_restore从 8.0 之前的 NDB 版本
轻松导入的单线程备份,您可以EnableMultithreadedBackup =
0
为所有数据节点设置(您可以通过在全局配置文件的[ndbd default]
部分中设置参数来执行此操作)。config.ini
还可以将并行备份恢复到运行旧版本NDB
. 有关更多信息,请参阅
第 23.5.23.1.1 节,“将 NDB 备份恢复到以前版本的 NDB Cluster”。