Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 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个字符

  • 需要用单引号或双引号括起来

当使用ENCRYPT PASSWORD='密码'时,每个数据节点写入的备份数据记录和日志文件将使用来自用户提供的密码和随机生成的盐的密钥,通过使用PBKDF2-SHA256算法来生成一个对称加密密钥,然后使用该密钥对备份数据进行AES 256 CBC inline加密,并将生成的密钥用于加密备份文件集。

key = KDF(random_salt, password)

生成的密钥然后被用来加密备份数据,使用对称加密对备份文件集进行加密(使用生成的密钥).

Note

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

可以省略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

    backup_id是该特定备份的唯一标识符。如果没有配置其他方式,这个标识符将被保存在集群日志中。node_id是协调备份与数据节点的管理服务器的标识符。在备份过程中的这个点,集群已经接收和处理了备份请求。但这并不意味着备份已经完成。以下是一个示例语句:

    Node 2: Backup 1 started from node 1
  4. 管理客户端使用以下消息指示备份已经开始:

    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

也可以从系统 shell 中执行备份,通过调用ndb_mgm命令,使用-e--execute选项,如下所示:

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

在这种情况下使用START BACKUP时,您必须指定备份 ID。

集群备份默认创建在每个数据节点的BACKUP子目录中。这可以单独为一个或多个数据节点重写,也可以在config.ini文件中使用BackupDataDir配置参数为所有集群数据节点重写。为一个备份的给定backup_id创建的备份文件存储在名为BACKUP-backup_id的子目录中。

取消备份.  要取消或中止已经在进行中的备份,请执行以下步骤:

  1. 启动管理客户端。

  2. 执行以下命令:

    ndb_mgm> ABORT BACKUP backup_id

    其中,backup_id 是备份的标识符,这个标识符来自管理客户端在开始备份时返回的响应消息(在消息中)。

  3. 管理客户端将以Abort of backup 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 backup_id 从节点 management_node_id 开始的备份已经被中止”表明该备份已经终止,并且与该备份相关的所有文件已从集群文件系统中删除。

也可以使用以下命令在系统 shell 中中止正在进行中的备份:

$> ndb_mgm -e "ABORT BACKUP backup_id"
Note

如果当发起ABORT BACKUP命令时没有运行的备份拥有 ID backup_id,管理客户端将无响应,也不会在集群日志中记录无效的中止命令发送。