Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  Using The NDB Cluster Management Client to Create a Backup

25.6.8.2 使用 NDB 集群管理客户端创建备份

在开始备份之前,请确保集群正确配置以执行备份。(见 第 25.6.8.3 节,“NDB 集群备份配置”。)

使用 START BACKUP 命令创建备份,其语法如下所示:

START BACKUP [backup_id]
    [encryption_option]
    [wait_option]
    [snapshot_option]

encryption_option:
ENCRYPT [PASSWORD=password]

password:
{'password_string' | "password_string"}

wait_option:
WAIT {STARTED | COMPLETED} | NOWAIT

snapshot_option:
SNAPSHOTSTART | SNAPSHOTEND

连续备份将自动标识为顺序,因此 backup_id,一个大于或等于 1 的整数,是可选的;如果省略,将使用下一个可用的值。如果使用现有的 backup_id 值,备份将失败,错误为 备份失败:文件已存在。如果使用,backup_id 必须紧跟在 START BACKUP 关键字之后,在使用其他选项之前。

START BACKUP 支持使用 ENCRYPT PASSWORD=password 创建加密备份。

  • 密码 password 必须满足以下所有要求:

  • 使用任何可打印的 ASCII 字符,除了 !'"$%\^

  • 长度不超过 256 个字符

被单引号或双引号括起来

key = KDF(random_salt, password)

ENCRYPT PASSWORD='password' 时,备份数据记录和日志文件将使用用户提供的 password 和随机生成的 salt 通过 PBKDF2-SHA256 算法生成对称加密密钥,然后使用 AES 256 CBC 内联对备份文件集进行加密。

Note

NDB 集群 从不 保存用户提供的密码或生成的加密密钥。

可以从 encryption_option 中省略 PASSWORD 选项。在这种情况下,管理客户端将提示用户输入密码。

可以使用 PASSWORD 设置空密码 (''""),但这不是推荐的做法。

可以使用以下命令解密加密备份:

请参阅这些程序的描述,以获取更多信息,例如可能需要的其他选项。

可以使用 wait_option 确定在发出 START BACKUP 命令后何时将控制返回到管理客户端,如下所示:

  • 如果指定 NOWAIT,管理客户端将立即显示提示,如下所示:

    ndb_mgm> START BACKUP NOWAIT
    ndb_mgm>

    在这种情况下,管理客户端可以在备份进程打印进度信息时使用。

  • 使用 WAIT STARTED,管理客户端将等待备份开始,然后返回控制给用户,如下所示:

    ndb_mgm> START BACKUP WAIT STARTED
    Waiting for started, this may take several minutes
    Node 2: Backup 3 started from node 1
    ndb_mgm>
  • WAIT COMPLETED 导致管理客户端等待备份进程完成,然后返回控制给用户。

WAIT COMPLETED 是默认值。

可以使用 snapshot_option 确定备份是否与集群在 START BACKUP 发出时的状态匹配,还是在完成时的状态匹配。SNAPSHOTSTART 导致备份与集群在备份开始时的状态匹配;SNAPSHOTEND 导致备份反映集群在备份完成时的状态。SNAPSHOTEND 是默认值,匹配以前 NDB 集群版本中的行为。

Note

如果您使用 SNAPSHOTSTART 选项与 START BACKUP 一起,并且启用了 CompressedBackup 参数,只有数据和控制文件被压缩—日志文件不被压缩。

如果同时使用 wait_optionsnapshot_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

创建备份的步骤如下:

  1. 启动管理客户端 (ndb_mgm),如果它尚未运行。

  2. 执行 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>
  3. 当备份开始时,管理客户端将显示以下消息:

    Backup backup_id started from node node_id

    备份ID是该特定备份的唯一标识符。如果未进行其他配置,则该标识符将保存在集群日志中。节点ID是管理服务器的标识符,该服务器正在与数据节点协调备份。在备份过程的这个点上,集群已经收到并处理了备份请求。但这并不意味着备份已经完成。下面是一个示例语句:

    Node 2: Backup 1 started from node 1
  4. 管理客户端将以类似以下消息的形式指示备份已经开始:

    Backup backup_id started from node node_id completed

    与备份开始的通知类似,备份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

也可以从系统shell中使用ndb_mgm带有-e--execute选项来执行备份,如下所示:

$> ndb_mgm -e "START BACKUP 6 WAIT COMPLETED SNAPSHOTSTART"

使用START BACKUP时,必须指定备份ID。

集群备份默认情况下是在每个数据节点的BACKUP子目录中创建的。这可以在config.ini文件中使用BackupDataDir配置参数来覆盖一个或多个数据节点,或者所有集群数据节点。使用给定的备份ID创建的备份文件将存储在备份目录中的子目录BACKUP-备份ID中。

取消备份。要取消正在进行的备份,请执行以下步骤:

  1. 启动管理客户端。

  2. 执行以下命令:

    ndb_mgm> ABORT BACKUP backup_id

    数字备份ID是备份的标识符,该标识符包含在管理客户端的响应中,当备份开始时(在消息Backup 备份ID started from node 管理节点ID中)。

  3. 管理客户端将确认abort请求,例如:Abort of backup 备份ID ordered

    Note

    在这个点上,管理客户端还没有从集群数据节点接收到对该请求的响应,备份还没有实际被取消。

  4. 在备份被取消后,管理客户端将以类似以下形式报告该事实:

    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。第一个完成其部分的节点报告说备份被取消的原因是用户的请求。(剩余的节点报告说备份被取消是由于内部错误。)

    Note

    没有保证集群节点将以特定的顺序响应ABORT BACKUP命令。

    消息Backup 备份ID started from node 管理节点ID has been aborted意味着备份已经终止,并且所有与该备份相关的文件都已从集群文件系统中删除。

也可以从系统shell中使用以下命令来取消备份:

$> ndb_mgm -e "ABORT BACKUP backup_id"
Note

如果在发出ABORT BACKUP命令时没有正在运行的备份具有ID 备份ID,则管理客户端不会响应,也不会在集群日志中指示无效的abort命令。