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  /  ...  /  ndbxfrm — Compress, Decompress, Encrypt, and Decrypt Files Created by NDB Cluster

25.5.32 ndbxfrm — 文件压缩、解压缩、加密和解密 NDB 集群创建的文件

工具 ndbxfrm 可以用来解压缩、解密和输出 NDB 集群创建的文件的信息,该文件可能被压缩、加密或两者都有。它也可以用来压缩或加密文件。

表 25.52 与程序 ndbxfrm 一起使用的命令行选项

Format Description Added, Deprecated, or Removed

--compress,

-c

压缩文件

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--decrypt-key=key

提供文件解密密钥

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--decrypt-key-from-stdin

从标准输入提供文件解密密钥

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--decrypt-password=password

使用该密码解密文件

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--decrypt-password-from-stdin

以安全方式从 STDIN 获取解密密码

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--defaults-extra-file=path

在全局文件读取后读取给定文件

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--defaults-group-suffix=string

也读取带有后缀的组

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--defaults-file=path

仅从给定文件读取默认选项

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--encrypt-block-size=#

打印文件信息,包括文件头和尾

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--encrypt-block-size=#

输入数据块的大小,以便加密单元。用于 XTS,设置为零以使用 CBC 模式

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--encrypt-cipher=#

加密密码:1 为 CBC,2 为 XTS

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--encrypt-kdf-iter-count=#,

-k #

密钥定义中的迭代次数

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--encrypt-key=key

使用该密钥加密文件

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--encrypt-key-from-stdin

从标准输入提供密钥以加密文件

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--encrypt-password=password

使用该密码加密文件

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--从STDIN获取加密密码

以安全方式从STDIN获取加密密码

(在所有基于MySQL 8.3的NDB版本中支持)

--帮助,

-?

打印使用信息

(在所有基于MySQL 8.3的NDB版本中支持)

--信息,

-i

打印文件信息

(在所有基于MySQL 8.3的NDB版本中支持)

--登录路径=path

从登录文件中读取给定的路径

(在所有基于MySQL 8.3的NDB版本中支持)

--不使用登录路径

不从登录路径文件中读取登录路径

(在所有基于MySQL 8.3的NDB版本中支持)

--不使用默认值

不从任何选项文件中读取默认值,除了登录文件

(在所有基于MySQL 8.3的NDB版本中支持)

--打印默认值

打印程序参数列表并退出

(在所有基于MySQL 8.3的NDB版本中支持)

--使用信息,

-?

打印使用信息;--help的同义词

(在所有基于MySQL 8.3的NDB版本中支持)

--版本信息,

-V

输出版本信息

(在所有基于MySQL 8.3的NDB版本中支持)


使用

ndbxfrm --info file[ file ...]

ndbxfrm --compress input_file output_file

ndbxfrm --decrypt-password=password input_file output_file

ndbxfrm [--encrypt-ldf-iter-count=#] --encrypt-password=password input_file output_file

输入文件输出文件 不能是同一个文件。

选项

  • --压缩, -c

    Command-Line Format --压缩

    使用与NDB Cluster备份相同的压缩方法压缩输入文件,并将输出写入输出文件。要解压缩未加密的NDB备份文件,只需使用ndbxfrm,指定压缩文件和输出文件的名称(无需其他选项)。

  • --解密密钥=密钥, -K 密钥

    Command-Line Format --解密密钥=密钥

    使用提供的密钥解密由NDB加密的文件。

    Note

    此选项不能与--解密密码同时使用。

  • --从STDIN获取解密密钥

    Command-Line Format --从STDIN获取解密密钥

    使用从STDIN提供的密钥解密由NDB加密的文件。

  • --解密密码=密码

    Command-Line Format --解密密码=密码
    Type 字符串
    Default Value [none]

    使用提供的密码解密由NDB加密的文件。

    Note

    这选项不能与--decrypt-key同时使用。

  • --decrypt-password-from-stdin[=TRUE|FALSE]

    Command-Line Format --decrypt-password-from-stdin

    使用从标准输入提供的密码来解密由 NDB 加密的文件。这类似于在调用 mysql --password 时不跟随密码。

  • --defaults-extra-file

    Command-Line Format --defaults-extra-file=path
    Type 字符串
    Default Value [none]

    在读取全局文件后读取给定的文件。

  • --defaults-file

    Command-Line Format --defaults-file=path
    Type 字符串
    Default Value [none]

    仅从给定的文件中读取默认选项。

  • --defaults-group-suffix

    Command-Line Format --defaults-group-suffix=string
    Type 字符串
    Default Value [none]

    还读取具有 CONCAT(group, suffix) 的组。

  • --detailed-info

    Command-Line Format --encrypt-block-size=#
    Type 布尔值
    Default Value FALSE

    打印文件信息,如 --info,但包括文件的头部和尾部。

    示例:

    $> ndbxfrm --detailed-info S0.sysfile
    File=/var/lib/cluster-data/ndb_7_fs/D1/NDBCNTR/S0.sysfile, compression=no, encryption=yes
    header: {
      fixed_header: {
        magic: {
          magic: { 78, 68, 66, 88, 70, 82, 77, 49 },
          endian: 18364758544493064720,
          header_size: 32768,
          fixed_header_size: 160,
          zeros: { 0, 0 }
        },
        flags: 73728,
        flag_extended: 0,
        flag_zeros: 0,
        flag_file_checksum: 0,
        flag_data_checksum: 0,
        flag_compress: 0,
        flag_compress_method: 0,
        flag_compress_padding: 0,
        flag_encrypt: 18,
        flag_encrypt_cipher: 2,
        flag_encrypt_krm: 1,
        flag_encrypt_padding: 0,
        flag_encrypt_key_selection_mode: 0,
        dbg_writer_ndb_version: 524320,
        octets_size: 32,
        file_block_size: 32768,
        trailer_max_size: 80,
        file_checksum: { 0, 0, 0, 0 },
        data_checksum: { 0, 0, 0, 0 },
        zeros01: { 0 },
        compress_dbg_writer_header_version: { ... },
        compress_dbg_writer_library_version: { ... },
        encrypt_dbg_writer_header_version: { ... },
        encrypt_dbg_writer_library_version: { ... },
        encrypt_key_definition_iterator_count: 100000,
        encrypt_krm_keying_material_size: 32,
        encrypt_krm_keying_material_count: 1,
        encrypt_key_data_unit_size: 32768,
        encrypt_krm_keying_material_position_in_octets: 0,
      },
      octets: {
         102, 68, 56, 125, 78, 217, 110, 94, 145, 121, 203, 234, 26, 164, 137, 180,
         100, 224, 7, 88, 173, 123, 209, 110, 185, 227, 85, 174, 109, 123, 96, 156,
      }
    }
    trailer: {
      fixed_trailer: {
        flags: 48,
        flag_extended: 0,
        flag_zeros: 0,
        flag_file_checksum: 0,
        flag_data_checksum: 3,
        data_size: 512,
        file_checksum: { 0, 0, 0, 0 },
        data_checksum: { 226, 223, 102, 207 },
        magic: {
          zeros: { 0, 0 }
          fixed_trailer_size: 56,
          trailer_size: 32256,
          endian: 18364758544493064720,
          magic: { 78, 68, 66, 88, 70, 82, 77, 49 },
        },
      }
    }
  • --encrypt-block-size=#

    Command-Line Format --encrypt-block-size=#
    Type 整数
    Default Value 0
    Minimum Value 0
    Maximum Value 2147483647

    输入数据块的大小,以便作为一个单元进行加密。用于 XTS 模式;设置为 0(默认值)以使用 CBC 模式。

  • --encrypt-cipher=#

    Command-Line Format --encrypt-cipher=#
    Type 整数
    Default Value 1
    Minimum Value 0
    Maximum Value 2147483647

    用于加密的密码。设置为 1 以使用 CBC 模式(默认值),或设置为 2 以使用 XTS 模式。

  • --encrypt-kdf-iter-count=#, -k #

    Command-Line Format --encrypt-kdf-iter-count=#
    Type 整数
    Default Value 0
    Minimum Value 0
    Maximum Value 2147483647

    在加密文件时,指定用于加密密钥的迭代次数。需要 --encrypt-password 选项。

  • --encrypt-key=key

    Command-Line Format --encrypt-key=key

    使用提供的密钥加密文件。

    Note

    这选项不能与 --encrypt-password 同时使用。

  • --encrypt-key-from-stdin

    Command-Line Format --encrypt-key-from-stdin

    使用从 stdin 供应的密钥加密文件。

  • --encrypt-password=密码

    Command-Line Format --encrypt-password=密码
    Type 字符串
    Default Value [none]

    使用提供的密码加密备份文件。密码必须满足以下要求:

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

    • 长度不超过 256 个字符

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

    Note

    此选项不能与 --encrypt-key 一起使用。

  • --encrypt-password-from-stdin[=TRUE|FALSE]

    Command-Line Format --encrypt-password-from-stdin

    使用从标准输入供应的密码加密文件。这类似于在输入 mysql --password 选项时没有跟随密码。

  • --help, -?

    Command-Line Format --help

    打印程序的使用信息。

  • --info, -i

    Command-Line Format --info

    打印一个或多个输入文件的以下信息:

    • 文件名

    • 文件是否压缩 (compression=yescompression=no)

    • 文件是否加密 (encryption=yesencryption=no)

    示例:

    $> ndbxfrm -i BACKUP-10-0.5.Data BACKUP-10.5.ctl BACKUP-10.5.log
    File=BACKUP-10-0.5.Data, compression=no, encryption=yes
    File=BACKUP-10.5.ctl, compression=no, encryption=yes
    File=BACKUP-10.5.log, compression=no, encryption=yes

    您也可以使用 --detailed-info 选项查看文件的头部和尾部。

  • --login-path

    Command-Line Format --login-path=路径
    Type 字符串
    Default Value [none]

    从登录文件中读取给定的路径。

  • --no-login-paths

    Command-Line Format --no-login-paths

    跳过从登录路径文件中读取选项。

  • --no-defaults

    Command-Line Format --no-defaults

    不从任何选项文件中读取默认选项,除了登录文件。

  • --print-defaults

    Command-Line Format --print-defaults

    打印程序参数列表并退出。

  • --usage, -?

    Command-Line Format --usage

    --help 的同义词。

  • --version, -V

    Command-Line Format --version

    打印版本信息。

ndbxfrm 可以加密由任何版本的 NDB 集群创建的备份。备份的组成部分 .Data.ctl.log 文件必须单独加密,每个数据节点的文件也必须单独加密。加密后的备份只能由 ndbxfrmndb_restorendb_print_backup 解密。

加密文件可以使用 --encrypt-password--decrypt-password 选项一起重新加密新的密码,例如:

ndbxfrm --decrypt-password=old --encrypt-password=new input_file output_file

在上面的示例中,oldnew 分别是旧密码和新密码;这两个都必须加引号。输入文件将被解密然后加密为输出文件。输入文件本身不会被更改;如果您不想使用旧密码访问它,您必须手动删除输入文件。