ndbxfrm 公用程式可用於解壓縮、解密和輸出有關 NDB Cluster 建立之壓縮、加密或兩者皆有的檔案的資訊。它也可用於壓縮或加密檔案。
使用方式
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
input_file
和 output_file
不能是同一個檔案。
選項
--compress
,-c
命令列格式 --compress
壓縮輸入檔,使用與壓縮 NDB Cluster 備份相同的壓縮方法,並將輸出寫入輸出檔。若要解壓縮未加密的壓縮
NDB
備份檔案,只需要使用壓縮檔案的名稱和輸出檔案的名稱 (不需要任何選項) 來叫用 ndbxfrm 即可。--decrypt-key=
,key
-K
key
命令列格式 --decrypt-key=key
使用提供的金鑰解密
NDB
加密的檔案。注意此選項不能與
--decrypt-password
一起使用。-
命令列格式 --decrypt-key-from-stdin
使用從
stdin
提供的金鑰解密NDB
加密的檔案。 -
命令列格式 --decrypt-password=password
類型 字串 預設值 [無]
使用提供的密碼解密
NDB
加密的檔案。注意此選項不能與
--decrypt-key
一起使用。 --decrypt-password-from-stdin[=TRUE|FALSE]
命令列格式 --decrypt-password-from-stdin
使用從標準輸入提供的密碼來解密
NDB
加密的檔案。這類似於在叫用 mysql--password
但選項後方沒有密碼時輸入密碼。-
命令列格式 --defaults-extra-file=path
類型 字串 預設值 [無]
在讀取全域檔案之後讀取給定的檔案。
-
命令列格式 --defaults-file=path
類型 字串 預設值 [無]
僅從給定的檔案讀取預設選項。
-
命令列格式 --defaults-group-suffix=string
類型 字串 預設值 [無]
也讀取帶有
CONCAT(
的群組。group
,suffix
) -
命令列格式 --encrypt-block-size=#
類型 布林值 預設值 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=#
類型 整數 預設值 0
最小值 0
最大值 2147483647
作為單位加密的輸入資料區塊大小。與 XTS 搭配使用;對於 CBC 模式,設定為
0
(預設值)。 -
命令列格式 --encrypt-cipher=#
類型 整數 預設值 1
最小值 0
最大值 2147483647
用於加密的密碼。對於 CBC 模式,設定為
1
(預設值),或對於 XTS 設定為2
。 --encrypt-kdf-iter-count=
,#
-k
#
命令列格式 --encrypt-kdf-iter-count=#
類型 整數 預設值 0
最小值 0
最大值 2147483647
加密檔案時,指定用於加密金鑰的迭代次數。需要
--encrypt-password
選項。-
命令列格式 --encrypt-key=key
使用提供的金鑰加密檔案。
注意此選項不能與
--encrypt-password
一起使用。 -
命令列格式 --encrypt-key-from-stdin
使用從
stdin
提供的金鑰加密檔案。 -
命令列格式 --encrypt-password=password
類型 字串 預設值 [無]
使用選項提供的密碼加密備份檔案。密碼必須符合此處列出的需求
使用任何可列印的 ASCII 字元,但
!
、'
、"
、$
、%
、\
、`
和^
除外長度不超過 256 個字元
以單引號或雙引號括住
注意此選項不能與
--encrypt-key
一起使用。 --encrypt-password-from-stdin[=TRUE|FALSE]
命令列格式 --encrypt-password-from-stdin
使用從標準輸入提供的密碼加密檔案。這類似於在叫用 mysql
--password
但選項後方沒有密碼時輸入密碼。--help
,-?
命令列格式 --help
列印程式的使用資訊。
--info
,-i
命令列格式 --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
選項來查看檔案的標頭和尾端。-
命令列格式 --login-path=path
類型 字串 預設值 [無]
從登入檔讀取給定的路徑。
-
命令列格式 --no-login-paths
略過從登入路徑檔案讀取選項。
-
命令列格式 --no-defaults
除了登入檔以外,不要從任何選項檔案讀取預設選項。
-
命令列格式 --print-defaults
列印程式引數清單並結束。
--usage
,-?
命令列格式 --usage
是
--help
的同義詞。--version
,-V
命令列格式 --version
列印版本資訊。
ndbxfrm 可以加密任何版本 NDB Cluster 建立的備份。構成備份的 .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
分別是舊密碼和新密碼;這兩個都必須加上引號。輸入檔案會被解密,然後加密為輸出檔案。輸入檔案本身不會變更;如果您不希望使用舊密碼存取它,您必須手動移除輸入檔案。