25.6.8.5 使用并行数据节点进行 NDB 备份
可以使用多个本地数据管理器(LDM)在数据节点上并行运行,以实现备份。为使其工作,整个集群中的所有数据节点都必须使用多个 LDM,每个数据节点都必须使用相同的 LDM 数量。这意味着所有数据节点都必须运行ndbmtd(ndbd始终只有一个 LDM)并且在备份前配置它们使用多个 LDM;ndbmtd默认情况下运行在单线程模式中。您可以通过设置多线程数据节点配置参数MaxNoOfExecutionThreads
或ThreadConfig
使其使用多个 LDM;请注意,改变这些参数需要重新启动集群,这可以是一个滚动式重启。此外,每个数据节点都必须设置EnableMultithreadedBackup
参数为 1(这是默认值)。
根据 LDM 的数量和其他因素,您可能还需要增加NoOfFragmentLogParts
。如果您使用了大型 Disk Data 表,可能还需要增加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
.lognode_id
是该数据节点的节点ID。
ndb_restore 将自动检查上述子目录的存在,如果找到它们,就尝试并行恢复备份。关于从多个LDMs中取回备份的信息,请参阅并行数据节点备份恢复。
要强制创建单线程备份,设置所有数据节点的EnableMultithreadedBackup = 0
参数(可以在config.ini
全局配置文件的[ndbd default]
部分中设置)。还可以将并行备份恢复到运行较早版本的NDB
集群。请参阅将 NDB 备份恢复到 NDB 集群的前一个版本,获取更多信息。