工具 ndbxfrm 可以用来解压缩、解密和输出 NDB 集群创建的文件的信息,该文件可能被压缩、加密或两者都有。它也可以用来压缩或加密文件。
表 25.52 与程序 ndbxfrm 一起使用的命令行选项
Format | Description | Added, Deprecated, or Removed |
---|---|---|
压缩文件 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
提供文件解密密钥 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
从标准输入提供文件解密密钥 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
使用该密码解密文件 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
以安全方式从 STDIN 获取解密密码 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
在全局文件读取后读取给定文件 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
也读取带有后缀的组 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
仅从给定文件读取默认选项 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
打印文件信息,包括文件头和尾 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
输入数据块的大小,以便加密单元。用于 XTS,设置为零以使用 CBC 模式 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
加密密码:1 为 CBC,2 为 XTS |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
密钥定义中的迭代次数 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
使用该密钥加密文件 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
从标准输入提供密钥以加密文件 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
使用该密码加密文件 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
以安全方式从STDIN获取加密密码 |
(在所有基于MySQL 8.3的NDB版本中支持) |
|
|
打印使用信息 |
(在所有基于MySQL 8.3的NDB版本中支持) |
|
打印文件信息 |
(在所有基于MySQL 8.3的NDB版本中支持) |
从登录文件中读取给定的路径 |
(在所有基于MySQL 8.3的NDB版本中支持) |
|
不从登录路径文件中读取登录路径 |
(在所有基于MySQL 8.3的NDB版本中支持) |
|
不从任何选项文件中读取默认值,除了登录文件 |
(在所有基于MySQL 8.3的NDB版本中支持) |
|
打印程序参数列表并退出 |
(在所有基于MySQL 8.3的NDB版本中支持) |
|
打印使用信息;--help的同义词 |
(在所有基于MySQL 8.3的NDB版本中支持) |
|
输出版本信息 |
(在所有基于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此选项不能与
--解密密码
同时使用。 -
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
时不跟随密码。 -
Command-Line Format --defaults-extra-file=path
Type 字符串 Default Value [none]
在读取全局文件后读取给定的文件。
-
Command-Line Format --defaults-file=path
Type 字符串 Default Value [none]
仅从给定的文件中读取默认选项。
-
Command-Line Format --defaults-group-suffix=string
Type 字符串 Default Value [none]
还读取具有
CONCAT(
的组。group
,suffix
) -
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 }, }, } }
-
Command-Line Format --encrypt-block-size=#
Type 整数 Default Value 0
Minimum Value 0
Maximum Value 2147483647
输入数据块的大小,以便作为一个单元进行加密。用于 XTS 模式;设置为
0
(默认值)以使用 CBC 模式。 -
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
选项。 -
Command-Line Format --encrypt-key=key
使用提供的密钥加密文件。
Note这选项不能与
--encrypt-password
同时使用。 -
Command-Line Format --encrypt-key-from-stdin
使用从
stdin
供应的密钥加密文件。 -
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=yes
或compression=no
) -
文件是否加密 (
encryption=yes
或encryption=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
选项查看文件的头部和尾部。 -
-
Command-Line Format --login-path=路径
Type 字符串 Default Value [none]
从登录文件中读取给定的路径。
-
Command-Line Format --no-login-paths
跳过从登录路径文件中读取选项。
-
Command-Line Format --no-defaults
不从任何选项文件中读取默认选项,除了登录文件。
-
Command-Line Format --print-defaults
打印程序参数列表并退出。
-
--usage
,-?
Command-Line Format --usage
--help
的同义词。 -
--version
,-V
Command-Line Format --version
打印版本信息。
ndbxfrm 可以加密由任何版本的 NDB 集群创建的备份。备份的组成部分 .Data
、.ctl
和 .log
文件必须单独加密,每个数据节点的文件也必须单独加密。加密后的备份只能由 ndbxfrm、ndb_restore 或 ndb_print_backup 解密。
加密文件可以使用 --encrypt-password
和 --decrypt-password
选项一起重新加密新的密码,例如:
ndbxfrm --decrypt-password=old --encrypt-password=new input_file output_file
在上面的示例中,old
和 new
分别是旧密码和新密码;这两个都必须加引号。输入文件将被解密然后加密为输出文件。输入文件本身不会被更改;如果您不想使用旧密码访问它,您必须手动删除输入文件。