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