在开始备份之前,请确保集群已正确配置以执行备份。(请参阅 第 21.6.8.3 节,“NDB Cluster 备份的配置”。)
该START BACKUP
命令用于创建备份:
START BACKUP [backup_id] [wait_option] [snapshot_option]
wait_option:
WAIT {STARTED | COMPLETED} | NOWAIT
snapshot_option:
SNAPSHOTSTART | SNAPSHOTEND
连续备份自动按顺序识别,所以backup_id
大于等于 1 的整数是可选的;如果省略,则使用下一个可用值。如果使用现有
backup_id
值,备份将失败并显示错误Backup failed: file already exists。如果使用,
backup_id
必须紧跟START
BACKUP
在使用任何其他选项之前。
可wait_option
用于确定在START BACKUP
发出命令后控制权何时返回到管理客户端,如下表所示:
WAIT COMPLETED
是默认值。
Asnapshot_option
可用于确定备份是否与START BACKUP
发出时或完成时的集群状态匹配。SNAPSHOTSTART
使备份与备份开始时集群的状态相匹配;
SNAPSHOTEND
使备份反映备份完成时集群的状态。
SNAPSHOTEND
是默认的,并且匹配在以前的 NDB Cluster 版本中发现的行为。
如果您将SNAPSHOTSTART
选项与 一起使用
START BACKUP
,并且
CompressedBackup
启用了该参数,则仅压缩数据和控制文件——不压缩日志文件。
如果同时使用 await_option
和 a
snapshot_option
,则可以按任一顺序指定它们。例如,假设不存在 ID 为 4 的现有备份,以下所有命令均有效:
START BACKUP WAIT STARTED SNAPSHOTSTART
START BACKUP SNAPSHOTSTART WAIT STARTED
START BACKUP 4 WAIT COMPLETED SNAPSHOTSTART
START BACKUP SNAPSHOTEND WAIT COMPLETED
START BACKUP 4 NOWAIT SNAPSHOTSTART
创建备份的过程包括以下步骤:
如果管理客户端 ( ndb_mgm ) 尚未运行,则启动它。
执行
START BACKUP
命令。这会产生几行指示备份进度的输出,如下所示:ndb_mgm> START BACKUP Waiting for completed, this may take several minutes Node 2: Backup 1 started from node 1 Node 2: Backup 1 started from node 1 completed StartGCP: 177 StopGCP: 180 #Records: 7362 #LogRecords: 0 Data: 453648 bytes Log: 0 bytes ndb_mgm>
Backup backup_id started from node node_id
backup_id
是此特定备份的唯一标识符。这个标识符保存在集群日志中,如果它没有被配置的话。node_id
是协调备份与数据节点的管理服务器的标识符。此时在备份过程中集群已经接收并处理了备份请求。这并不意味着备份已完成。此处显示了此语句的示例:Node 2: Backup 1 started from node 1
管理客户端用类似这样的消息表示备份已经开始:
Backup backup_id started from node node_id completed
与备份已开始通知的情况一样,
backup_id
是此特定备份的唯一标识符,node_id
是与数据节点协调备份的管理服务器的节点 ID。此输出附带其他信息,包括相关的全局检查点、备份的记录数和数据大小,如下所示:Node 2: Backup 1 started from node 1 completed StartGCP: 177 StopGCP: 180 #Records: 7362 #LogRecords: 0 Data: 453648 bytes Log: 0 bytes
也可以通过使用
or选项调用ndb_mgm从系统 shell 执行备份,如本例所示:
-e
--execute
$> ndb_mgm -e "START BACKUP 6 WAIT COMPLETED SNAPSHOTSTART"
以这种方式使用START BACKUP
时,必须指定备份ID。
集群备份默认创建
在每个数据节点上的BACKUP
子目录中
。DataDir
这可以单独覆盖一个或多个数据节点,或者
config.ini
使用
BackupDataDir
配置参数覆盖文件中的所有集群数据节点。为具有给定备份的备份创建的备份文件backup_id
存储在备份目录中命名的子目录
中。
BACKUP-
backup_id
正在取消备份。 要取消或中止正在进行的备份,请执行以下步骤:
启动管理客户端。
执行此命令:
ndb_mgm> ABORT BACKUP backup_id
该编号
backup_id
是备份启动时管理客户端响应中包含的备份标识符(在消息中)。Backup
backup_id
started from nodemanagement_node_id
管理客户端使用 确认中止请求 。
Abort of backup
backup_id
ordered笔记此时,管理客户端还没有收到集群数据节点对这个请求的响应,备份还没有真正中止。
备份中止后,管理客户端以类似于此处显示的方式报告此事实:
Node 1: Backup 3 started from 5 has been aborted. Error: 1321 - Backup aborted by user request: Permanent error: User defined error Node 3: Backup 3 started from 5 has been aborted. Error: 1323 - 1323: Permanent error: Internal error Node 2: Backup 3 started from 5 has been aborted. Error: 1323 - 1323: Permanent error: Internal error Node 4: Backup 3 started from 5 has been aborted. Error: 1323 - 1323: Permanent error: Internal error
在此示例中,我们显示了具有 4 个数据节点的集群的示例输出,其中要中止的备份的序列号为
3
,集群管理客户端连接到的管理节点的节点 ID 为5
。第一个完成中止备份工作的节点报告中止原因是用户请求。(其余节点报告备份由于未指定的内部错误而中止。)笔记无法保证集群节点以
ABORT BACKUP
任何特定顺序响应命令。这些消息意味着备份已终止,并且与此备份相关的所有文件已从群集文件系统中删除。
Backup
backup_id
started from nodemanagement_node_id
has been aborted
也可以使用以下命令从系统 shell 中止正在进行的备份:
$> ndb_mgm -e "ABORT BACKUP backup_id"
如果在
发出backup_id
an 时没有运行
ID 的备份ABORT BACKUP
,则管理客户端不会做出响应,集群日志中也不会指示发送了无效的中止命令。