文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  ndbxfrm — 壓縮、解壓縮、加密和解密 NDB Cluster 建立的檔案

25.5.32 ndbxfrm — 壓縮、解壓縮、加密和解密 NDB Cluster 建立的檔案

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_fileoutput_file 不能是同一個檔案。

選項

  • --compress, -c

    命令列格式 --compress

    壓縮輸入檔,使用與壓縮 NDB Cluster 備份相同的壓縮方法,並將輸出寫入輸出檔。若要解壓縮未加密的壓縮 NDB 備份檔案,只需要使用壓縮檔案的名稱和輸出檔案的名稱 (不需要任何選項) 來叫用 ndbxfrm 即可。

  • --decrypt-key=key, -K key

    命令列格式 --decrypt-key=key

    使用提供的金鑰解密 NDB 加密的檔案。

    注意

    此選項不能與 --decrypt-password 一起使用。

  • --decrypt-key-from-stdin

    命令列格式 --decrypt-key-from-stdin

    使用從 stdin 提供的金鑰解密 NDB 加密的檔案。

  • --decrypt-password=password

    命令列格式 --decrypt-password=password
    類型 字串
    預設值 [無]

    使用提供的密碼解密 NDB 加密的檔案。

    注意

    此選項不能與 --decrypt-key 一起使用。

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

    命令列格式 --decrypt-password-from-stdin

    使用從標準輸入提供的密碼來解密 NDB 加密的檔案。這類似於在叫用 mysql --password 但選項後方沒有密碼時輸入密碼。

  • --defaults-extra-file

    命令列格式 --defaults-extra-file=path
    類型 字串
    預設值 [無]

    在讀取全域檔案之後讀取給定的檔案。

  • --defaults-file

    命令列格式 --defaults-file=path
    類型 字串
    預設值 [無]

    僅從給定的檔案讀取預設選項。

  • --defaults-group-suffix

    命令列格式 --defaults-group-suffix=string
    類型 字串
    預設值 [無]

    也讀取帶有 CONCAT(group, suffix) 的群組。

  • --detailed-info

    命令列格式 --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=#

    命令列格式 --encrypt-block-size=#
    類型 整數
    預設值 0
    最小值 0
    最大值 2147483647

    作為單位加密的輸入資料區塊大小。與 XTS 搭配使用;對於 CBC 模式,設定為 0 (預設值)。

  • --encrypt-cipher=#

    命令列格式 --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-key=key

    使用提供的金鑰加密檔案。

    注意

    此選項不能與 --encrypt-password 一起使用。

  • --encrypt-key-from-stdin

    命令列格式 --encrypt-key-from-stdin

    使用從 stdin 提供的金鑰加密檔案。

  • --encrypt-password=password

    命令列格式 --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=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

    命令列格式 --login-path=path
    類型 字串
    預設值 [無]

    從登入檔讀取給定的路徑。

  • --no-login-paths

    命令列格式 --no-login-paths

    略過從登入路徑檔案讀取選項。

  • --no-defaults

    命令列格式 --no-defaults

    除了登入檔以外,不要從任何選項檔案讀取預設選項。

  • --print-defaults

    命令列格式 --print-defaults

    列印程式引數清單並結束。

  • --usage, -?

    命令列格式 --usage

    --help 的同義詞。

  • --version, -V

    命令列格式 --version

    列印版本資訊。

ndbxfrm 可以加密任何版本 NDB Cluster 建立的備份。構成備份的 .Data.ctl.log 檔案必須個別加密,而且每個資料節點的這些檔案必須個別加密。加密後,此類備份只能由 ndbxfrmndb_restorendb_print_backup 解密。

使用 --encrypt-password--decrypt-password 選項一起使用,可以使用新密碼重新加密加密檔案,如下所示:

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

在剛剛顯示的範例中,oldnew 分別是舊密碼和新密碼;這兩個都必須加上引號。輸入檔案會被解密,然後加密為輸出檔案。輸入檔案本身不會變更;如果您不希望使用舊密碼存取它,您必須手動移除輸入檔案。