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 集群的前一个版本,获取更多信息。