文件首頁
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 參考手冊  /  ...  /  ndb_restore — 還原 NDB Cluster 備份

25.5.23 ndb_restore — 還原 NDB Cluster 備份

NDB Cluster 還原程式是以獨立的命令列公用程式 ndb_restore 實作,通常可以在 MySQL bin 目錄中找到。此程式會讀取備份產生的檔案,並將儲存的資訊插入資料庫中。

對於 ndb_restore,必須針對由用來建立備份的 START BACKUP 命令建立的每個備份檔案執行一次(請參閱 章節 25.6.8.2,「使用 NDB Cluster 管理用戶端建立備份」)。這等於在建立備份時叢集中資料節點的數量。

注意

在使用 ndb_restore 之前,建議叢集在單一使用者模式下執行,除非您要平行還原多個資料節點。請參閱 章節 25.6.6,「NDB Cluster 單一使用者模式」,以取得更多資訊。

下表顯示可與 ndb_restore 搭配使用的選項。其他說明在表格之後。

  • --allow-pk-changes

    命令列格式 --allow-pk-changes[=0|1]
    類型 整數
    預設值 0
    最小值 0
    最大值 1

    當此選項設為 1 時,ndb_restore 允許表格定義中的主索引鍵與備份中相同表格的主索引鍵不同。當在不同結構描述版本之間備份和還原,且一個或多個表格的主索引鍵變更時,這可能是理想的,而且使用 ndb_restore 執行還原作業似乎比在還原表格結構描述和資料之後發出許多 ALTER TABLE 陳述式更簡單或更有效率。

    --allow-pk-changes 支援以下主索引鍵定義的變更

    • 延伸主索引鍵:備份中表格結構描述中存在的不可為 Null 的資料行會成為資料庫中表格主索引鍵的一部分。

      重要

      在延伸表格的主索引鍵時,在備份進行期間,任何成為主索引鍵一部分的資料行都不得更新;ndb_restore 發現的任何此類更新都會導致還原作業失敗,即使沒有發生值變更也是如此。在某些情況下,可能會使用 --ignore-extended-pk-updates 選項來覆寫此行為;如需更多資訊,請參閱此選項的說明。

    • 縮減主索引鍵 (1):備份結構描述中已屬於表格主索引鍵一部分的資料行不再屬於主索引鍵的一部分,但仍保留在表格中。

    • 縮減主索引鍵 (2):備份結構描述中已屬於表格主索引鍵一部分的資料行會從表格中完全移除。

    這些差異可以與 ndb_restore 支援的其他結構描述差異結合,包括需要使用暫存表格的 Blob 和文字資料行的變更。

    以下列出使用主索引鍵結構描述變更之典型案例中的基本步驟

    1. 使用 ndb_restore --restore-meta 還原表格結構描述

    2. 將結構描述變更為所需結構描述,或建立結構描述

    3. 備份所需的結構描述

    4. 使用上一步的備份執行 ndb_restore --disable-indexes,以捨棄索引和限制

    5. 執行 ndb_restore --allow-pk-changes(可能與 --ignore-extended-pk-updates--disable-indexes 以及可能其他所需的選項一起),以還原所有資料

    6. 使用所需結構描述製作的備份執行 ndb_restore --rebuild-indexes,以重建索引和限制

    在延伸主索引鍵時,ndb_restore 可能需要在還原作業期間使用暫時性的次要唯一索引,以將舊的主索引鍵對應到新的主索引鍵。只有在需要將備份記錄中的事件套用至具有延伸主索引鍵的表格時,才會建立此類索引。此索引名為 NDB$RESTORE_PK_MAPPING,且會針對每個需要它的表格建立;如有需要,可以讓平行執行的多個 ndb_restore 執行個體共用。(在還原程序結束時執行 ndb_restore --rebuild-indexes 會導致捨棄此索引。)

  • --append

    命令列格式 --append

    --tab--print-data 選項搭配使用時,這會導致資料附加到任何具有相同名稱的現有檔案。

  • --backup-path=dir_name

    命令列格式 --backup-path=路徑
    類型 目錄名稱
    預設值 ./

    備份目錄的路徑是必要的;這是使用 --backup-path 選項提供給 ndb_restore,且必須包含對應於要還原之備份的 ID 備份的子目錄。例如,如果資料節點的 DataDir/var/lib/mysql-cluster,則備份目錄為 /var/lib/mysql-cluster/BACKUP,而 ID 為 3 的備份的備份檔案可以在 /var/lib/mysql-cluster/BACKUP/BACKUP-3 中找到。此路徑可以是絕對路徑或相對於 ndb_restore 可執行檔所在之目錄的路徑,並且可以選擇性地以 backup-path= 作為前置詞。

    可以將備份還原到與建立時配置不同的資料庫。例如,假設在具有節點 ID 23 的兩個儲存節點的叢集中建立的備份,其備份 ID 為 12,要還原到具有四個節點的叢集。那麼,必須執行兩次 ndb_restore,每次針對備份建立時的叢集中的每個儲存節點執行一次。但是,ndb_restore 並非總是能將從執行某個 MySQL 版本的叢集所建立的備份還原到執行不同 MySQL 版本的叢集。請參閱第 25.3.7 節,「升級和降級 NDB Cluster」,以取得更多資訊。

    重要

    無法使用較舊版本的 ndb_restore 來還原從較新版本的 NDB Cluster 所建立的備份。您可以將從較新版本的 MySQL 所建立的備份還原到較舊的叢集,但是您必須使用來自較新 NDB Cluster 版本的 ndb_restore 副本來執行此操作。

    例如,若要將從執行 NDB Cluster 8.4.0 的叢集所建立的叢集備份還原到執行 NDB Cluster 8.0.38 的叢集,您必須使用 NDB Cluster 8.0.38 發行版隨附的 ndb_restore

    為了更快速地還原,如果可用叢集連線的數量足夠,可以平行還原資料。也就是說,當平行還原到多個節點時,您必須在叢集 config.ini 檔案中針對每個並行的 ndb_restore 程序提供 [api][mysqld] 區段。但是,資料檔案必須始終在記錄之前套用。

  • --backup-password=密碼

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

    此選項指定使用 --decrypt 選項解密加密備份時要使用的密碼。這必須是加密備份時所使用的相同密碼。

    密碼長度必須為 1 到 256 個字元,並且必須以單引號或雙引號括住。它可以包含字元碼為 32、35、38、40-91、93、95 和 97-126 的任何 ASCII 字元;換句話說,它可以使用除了 !'"$%\^ 之外的任何可列印 ASCII 字元。

    可以省略密碼,在這種情況下,ndb_restore 會等待從 stdin 提供密碼,就像使用 --backup-password-from-stdin 時一樣。

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

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

    當取代 --backup-password 時,此選項可以從系統 Shell (stdin) 輸入備份密碼,類似於在使用 mysql 時,當未使用在命令列上提供密碼的情況下使用 --password 時以互動方式提供密碼的方式。

  • --backupid=#, -b

    命令列格式 --backupid=#
    類型 數值
    預設值

    此選項是必要的;它用於指定備份的 ID 或序號,並且與管理用戶端在備份完成時顯示的 Backup 備份_id completed 訊息中所顯示的相同數字。(請參閱第 25.6.8.2 節,「使用 NDB Cluster 管理用戶端建立備份」。)

    重要

    還原叢集備份時,您必須確保從具有相同備份 ID 的備份還原所有資料節點。使用來自不同備份的檔案充其量會導致將叢集還原為不一致的狀態,並且很可能完全失敗。

  • --character-sets-dir

    命令列格式 --character-sets-dir=路徑

    包含字元集的目錄。

  • --connect, -c

    命令列格式 --connect=連線字串
    類型 字串
    預設值 localhost:1186

    --ndb-connectstring 的別名。

  • --connect-retries

    命令列格式 --connect-retries=#
    類型 整數
    預設值 12
    最小值 0
    最大值 12

    在放棄之前重試連線的次數。

  • --connect-retry-delay

    命令列格式 --connect-retry-delay=#
    類型 整數
    預設值 5
    最小值 0
    最大值 5

    嘗試連線管理伺服器之間等待的秒數。

  • --connect-string

    命令列格式 --connect-string=連線字串
    類型 字串
    預設值 [無]

    --ndb-connectstring 相同。

  • --core-file

    命令列格式 --core-file

    發生錯誤時寫入核心檔案;用於偵錯。

  • --decrypt

    命令列格式 --decrypt

    使用 --backup-password 選項提供的密碼解密加密備份。

  • --defaults-extra-file

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

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

  • --defaults-file

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

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

  • --defaults-group-suffix

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

    也讀取具有 concat(group, suffix) 的群組。

  • --disable-indexes

    命令列格式 --disable-indexes

    在還原來自原生 NDB 備份的資料期間,停用索引的還原。之後,您可以使用 --rebuild-indexes,利用索引的多執行緒建置來一次還原所有資料表的索引,這應該比同時重建非常大的資料表的索引更快。

    此選項也會捨棄在備份中指定的任何外來索引鍵。

    MySQL 可以開啟找不到一個或多個索引的 NDB 資料表,前提是查詢未使用任何受影響的索引;否則,查詢會因為 ER_NOT_KEYFILE 而遭到拒絕。在後者的情況下,您可以執行如下的 ALTER TABLE 陳述式來暫時解決此問題

    ALTER TABLE tbl ALTER INDEX idx INVISIBLE;

    這會導致 MySQL 忽略資料表 tbl 上的索引 idx。請參閱主要索引鍵和索引,以取得更多資訊,以及第 10.3.12 節,「隱形索引」

  • --dont-ignore-systab-0, -f

    命令列格式 --dont-ignore-systab-0

    通常,在還原資料表資料和中繼資料時,ndb_restore 會忽略備份中存在的 NDB 系統資料表的複本。--dont-ignore-systab-0 會導致還原系統資料表。此選項僅適用於實驗和開發用途,不建議在生產環境中使用

  • --exclude-databases=資料庫清單

    命令列格式 --exclude-databases=清單
    類型 字串
    預設值

    不應還原的一或多個資料庫的逗號分隔清單。

    此選項通常與 --exclude-tables 搭配使用;請參閱該選項的說明以取得更多資訊和範例。

  • --exclude-intermediate-sql-tables[=TRUE|FALSE]

    命令列格式 --exclude-intermediate-sql-tables[=TRUE|FALSE]
    類型 布林值
    預設值 TRUE

    在執行複製 ALTER TABLE 操作時,mysqld 會建立中間資料表(其名稱以 #sql- 為前綴)。當 TRUE 時,--exclude-intermediate-sql-tables 選項會阻止 ndb_restore 還原可能從這些操作中遺留下來的此類資料表。預設情況下,此選項為 TRUE

  • --exclude-missing-columns

    命令列格式 --exclude-missing-columns

    可以使用此選項僅還原選定的資料表欄位,這會導致 ndb_restore 忽略與備份中找到的資料表版本相比,正在還原的資料表中遺失的任何欄位。此選項適用於所有正在還原的資料表。如果您希望僅將此選項應用於選定的資料表或資料庫,您可以將其與本節中其他地方描述的一個或多個 --include-*--exclude-* 選項結合使用,然後使用一組互補的這些選項將資料還原到其餘的資料表。

  • --exclude-missing-tables

    命令列格式 --exclude-missing-tables

    可以使用此選項僅還原選定的資料表,這會導致 ndb_restore 忽略目標資料庫中找不到的備份中的任何資料表。

  • --exclude-tables=資料表清單

    命令列格式 --exclude-tables=清單
    類型 字串
    預設值

    要排除的一個或多個資料表清單;每個資料表參照必須包含資料庫名稱。通常與 --exclude-databases 一起使用。

    當使用 --exclude-databases--exclude-tables 時,只會排除該選項指定的資料庫或資料表;所有其他資料庫和資料表都會由 ndb_restore 還原。

    此表格顯示了使用 --exclude-* 選項的 ndb_restore 的幾個呼叫(為了清楚起見,省略了其他可能需要的選項),以及這些選項對從 NDB Cluster 備份還原的影響

    表 25.23:使用 --exclude-* 選項的 ndb_restore 的幾個呼叫,以及這些選項對從 NDB Cluster 備份還原的影響。

    選項 結果
    --exclude-databases=db1 還原除了 db1 之外的所有資料庫中的所有資料表;不還原 db1 中的任何資料表
    --exclude-databases=db1,db2 (或 --exclude-databases=db1 --exclude-databases=db2) 還原除了 db1db2 之外的所有資料庫中的所有資料表;不還原 db1db2 中的任何資料表
    --exclude-tables=db1.t1 還原資料庫 db1 中除了 t1 之外的所有資料表;還原 db1 中的所有其他資料表;還原所有其他資料庫中的所有資料表
    --exclude-tables=db1.t2,db2.t1 (或 --exclude-tables=db1.t2 --exclude-tables=db2.t1) 還原資料庫 db1 中除了 t2 之外的所有資料表,以及資料庫 db2 中除了資料表 t1 之外的所有資料表;不還原 db1db2 中的其他資料表;還原所有其他資料庫中的所有資料表

    您可以將這兩個選項一起使用。例如,以下命令會導致還原所有資料庫中 除了 資料庫 db1db2 以及資料庫 db3 中的資料表 t1t2 之外的所有資料表

    $> ndb_restore [...] --exclude-databases=db1,db2 --exclude-tables=db3.t1,db3.t2

    (再次說明,為了清楚和簡潔起見,我們在剛才顯示的範例中省略了其他可能需要的選項。)

    您可以將 --include-*--exclude-* 選項一起使用,但須遵守以下規則

    • 所有 --include-*--exclude-* 選項的作用是累積的。

    • 所有 --include-*--exclude-* 選項都按照傳遞給 ndb_restore 的順序從右到左進行評估。

    • 如果選項發生衝突,則第一個(最右邊的)選項優先。換句話說,與給定的資料庫或資料表匹配的第一個選項(從右到左)獲勝

    例如,以下選項集會導致 ndb_restore 還原資料庫 db1 中的所有資料表,但 db1.t1 除外,同時不還原任何其他資料庫中的其他資料表

    --include-databases=db1 --exclude-tables=db1.t1

    但是,反轉剛才給出的選項順序只會導致還原資料庫 db1 中的所有資料表(包括 db1.t1,但不包括任何其他資料庫中的資料表),因為 --include-databases 選項位於最右側,是與資料庫 db1 匹配的第一個選項,因此優先於任何其他與 db1db1 中的任何資料表匹配的選項

    --exclude-tables=db1.t1 --include-databases=db1
  • --fields-enclosed-by=字元

    命令列格式 --fields-enclosed-by=字元
    類型 字串
    預設值

    每個欄位值都由傳遞給此選項的字串括起來(無論資料類型為何;請參閱 --fields-optionally-enclosed-by 的說明)。

  • --fields-optionally-enclosed-by

    命令列格式 --fields-optionally-enclosed-by
    類型 字串
    預設值

    傳遞給此選項的字串用於括住包含字元資料的欄位值(例如 CHARVARCHARBINARYTEXTENUM)。

  • --fields-terminated-by=字元

    命令列格式 --fields-terminated-by=字元
    類型 字串
    預設值 \t (跳格符號)

    傳遞給此選項的字串用於分隔欄位值。預設值為跳格符號 (\t)。

  • --help

    命令列格式 --help

    顯示說明文字並結束。

  • --hex

    命令列格式 --hex

    如果使用此選項,則所有二進位值都將以十六進位格式輸出。

  • --ignore-extended-pk-updates

    命令列格式 --ignore-extended-pk-updates[=0|1]
    類型 整數
    預設值 0
    最小值 0
    最大值 1

    當使用 --allow-pk-changes 時,成為資料表主鍵一部分的欄位在擷取備份時不得更新;此類欄位應從將值插入其中時起,直到包含這些值的列被刪除時,都保持相同的值。如果 ndb_restore 在還原備份時遇到對這些欄位的更新,則還原將失敗。由於某些應用程式在更新列時可能會為所有欄位設定值,即使某些欄位值未更改,備份也可能包含看似更新了實際上未修改的欄位的記錄事件。在這種情況下,您可以將 --ignore-extended-pk-updates 設定為 1,強制 ndb_restore 忽略此類更新。

    重要

    當導致忽略這些更新時,使用者有責任確保不會對成為主鍵一部分的任何欄位的值進行更新。

    如需更多資訊,請參閱 --allow-pk-changes 的說明。

  • --include-databases=db-list

    命令列格式 --include-databases=清單
    類型 字串
    預設值

    要還原的一個或多個資料庫的逗號分隔清單。通常與 --include-tables 一起使用;有關詳細資訊和範例,請參閱該選項的描述。

  • --include-stored-grants

    命令列格式 --include-stored-grants

    ndb_restore 預設不會將共用使用者和權限(請參閱第 25.6.13 節,「權限同步和 NDB_STORED_USER」)還原到 ndb_sql_metadata 資料表。指定此選項會使其執行此操作。

  • --include-tables=table-list

    命令列格式 --include-tables=清單
    類型 字串
    預設值

    要還原的資料表的逗號分隔清單;每個資料表參考必須包含資料庫名稱。

    當使用 --include-databases--include-tables 時,只會還原選項指定的那些資料庫或資料表;所有其他資料庫和資料表都會被 ndb_restore 排除,並且不會還原。

    下表顯示了 ndb_restore 使用 --include-* 選項的幾個調用(為了清楚起見,省略了其他可能需要的選項),以及這些選項對從 NDB Cluster 備份還原的影響

    表 25.24:使用 --include-* 選項調用 ndb_restore 的幾個範例,以及它們對從 NDB Cluster 備份還原的影響。

    選項 結果
    --include-databases=db1 僅還原資料庫 db1 中的資料表;所有其他資料庫中的所有資料表都會被忽略
    --include-databases=db1,db2(或 --include-databases=db1 --include-databases=db2 僅還原資料庫 db1db2 中的資料表;所有其他資料庫中的所有資料表都會被忽略
    --include-tables=db1.t1 僅還原資料庫 db1 中的資料表 t1db1 或任何其他資料庫中的其他資料表都不會還原
    --include-tables=db1.t2,db2.t1(或 --include-tables=db1.t2 --include-tables=db2.t1 僅還原資料庫 db1 中的資料表 t2 和資料庫 db2 中的資料表 t1db1db2 或任何其他資料庫中的其他資料表都不會還原

    您也可以一起使用這兩個選項。例如,以下操作會導致還原資料庫 db1db2 中的所有資料表,以及資料庫 db3 中的資料表 t1t2(以及沒有其他資料庫或資料表)

    $> ndb_restore [...] --include-databases=db1,db2 --include-tables=db3.t1,db3.t2

    (同樣,我們在剛剛顯示的範例中省略了其他可能需要的選項。)

    也可以僅還原選定的資料庫,或從單一資料庫中選定的資料表,而無需任何 --include-*(或 --exclude-*)選項,使用此處顯示的語法

    ndb_restore other_options db_name,[db_name[,...] | tbl_name[,tbl_name][,...]]

    換句話說,您可以指定以下任一項進行還原

    • 一個或多個資料庫中的所有資料表

    • 單一資料庫中的一個或多個資料表

  • --lines-terminated-by=char

    命令列格式 --lines-terminated-by=字元
    類型 字串
    預設值 \n (換行符號)

    指定用於結束每行輸出的字串。預設值為換行符號 (\n)。

  • --login-path

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

    從登入檔讀取給定路徑。

  • --no-login-paths

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

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

  • --lossy-conversions, -L

    命令列格式 --lossy-conversions

    此選項旨在補充 --promote-attributes 選項。使用 --lossy-conversions 允許在從備份還原資料時對欄位值進行有損轉換(類型降級或符號變更)。除了某些例外情況外,控制降級的規則與 MySQL 複寫的規則相同;請參閱第 19.5.1.9.2 節,「具有不同資料類型的欄位複寫」,以取得有關目前屬性降級支援的特定類型轉換的資訊。

    此選項還可讓您將 NULL 欄位還原為 NOT NULL。該欄位不得包含任何 NULL 項目;否則,ndb_restore 將會停止並顯示錯誤。

    ndb_restore 會針對它在有損轉換期間執行的任何資料截斷,每個屬性和欄位報告一次。

  • --no-binlog

    命令列格式 --no-binlog

    此選項會防止任何已連線的 SQL 節點將 ndb_restore 還原的資料寫入其二進位日誌。

  • --no-restore-disk-objects, -d

    命令列格式 --no-restore-disk-objects

    此選項會阻止 ndb_restore 還原任何 NDB Cluster 磁碟資料物件,例如資料表空間和記錄檔群組;請參閱 第 25.6.11 節,「NDB Cluster 磁碟資料表」,以取得有關這些的更多資訊。

  • --no-upgrade, -u

    命令列格式 --no-upgrade

    當使用 ndb_restore 還原備份時,使用舊的固定格式建立的 VARCHAR 欄位會調整大小,並使用現在使用的變寬格式重新建立。可以透過指定 --no-upgrade 來覆寫此行為。

  • --ndb-connectstring

    命令列格式 --ndb-connectstring=連線字串
    類型 字串
    預設值 [無]

    設定用於連線至 ndb_mgmd 的連線字串。語法:[nodeid=id;][host=]hostname[:port]。覆寫 NDB_CONNECTSTRINGmy.cnf 中的項目。

  • --ndb-mgm-tls

    命令列格式 --ndb-mgm-tls=層級
    類型 列舉
    預設值 寬鬆
    有效值

    寬鬆

    嚴格

    設定連線至管理伺服器所需的 TLS 支援層級;寬鬆嚴格 之一。寬鬆(預設值)表示會嘗試 TLS 連線,但不需要成功;嚴格 表示需要 TLS 連線。

  • --ndb-mgmd-host

    命令列格式 --ndb-mgmd-host=連線字串
    類型 字串
    預設值 [無]

    --ndb-connectstring 相同。

  • --ndb-nodegroup-map=map, -z

    命令列格式 --ndb-nodegroup-map=對應

    針對此選項設定的任何值都會被忽略,而且該選項本身不會執行任何操作。

  • --ndb-nodeid

    命令列格式 --ndb-nodeid=#
    類型 整數
    預設值 [無]

    設定此節點的節點 ID,覆寫 --ndb-connectstring 設定的任何 ID。

  • --ndb-optimized-node-selection

    命令列格式 --ndb-optimized-node-selection

    啟用交易節點選取的最佳化。預設為啟用;使用 --skip-ndb-optimized-node-selection 來停用。

  • --ndb-tls-search-path

    命令列格式 --ndb-tls-search-path=清單
    類型 路徑名稱
    預設值 (Unix) $HOME/ndb-tls
    預設值 (Windows) $HOMEDIR/ndb-tls

    指定要搜尋 CA 檔案的目錄清單。在 Unix 平台上,目錄名稱以冒號 (:) 分隔;在 Windows 系統上,分號字元 (;) 用作分隔符號。目錄參考可以是相對或絕對的;它可以包含一個或多個環境變數,每個環境變數都以美元符號 ($) 開頭,並在使用前展開。

    搜尋從最左邊的具名目錄開始,並從左到右進行,直到找到檔案為止。空字串表示空的搜尋路徑,這會導致所有搜尋失敗。由單一點號 (.) 組成的字串表示搜尋路徑僅限於目前的工作目錄。

    如果沒有提供搜尋路徑,則會使用編譯時內建的預設值。此值取決於所使用的平台:在 Windows 上,此值為 \ndb-tls;在其他平台(包括 Linux)上,此值為 $HOME/ndb-tls。可以使用 -DWITH_NDB_TLS_SEARCH_PATH 編譯 NDB Cluster 來覆寫此值。

  • --no-defaults

    命令列格式 --no-defaults

    不從登入檔以外的任何選項檔案讀取預設選項。

  • --nodeid=#, -n

    命令列格式 --nodeid=#
    類型 數值
    預設值

    指定進行備份的資料節點的節點 ID;這是必要的。

    當還原到與進行備份的叢集具有不同資料節點數量的叢集時,此資訊有助於識別要還原到給定節點的正確檔案集合。(在這種情況下,通常需要將多個檔案還原到單一資料節點。)請參閱還原到不同數量的資料節點,以取得其他資訊和範例。

  • --num-slices=#

    命令列格式 --num-slices=#
    類型 整數
    預設值 1
    最小值 1
    最大值 1024

    當按區塊還原備份時,此選項設定要將備份分割成的區塊數。這允許 ndb_restore 的多個執行個體平行還原不相交的子集,這可能會減少執行還原操作所需的時間。

    區塊是給定備份中的資料子集;也就是說,它是具有相同區塊 ID 的片段集合,使用 --slice-id 選項指定。這兩個選項必須始終一起使用,且 --slice-id 設定的值必須始終小於區塊數。

    ndb_restore 會遇到片段,並為每個片段指派一個片段計數器。當按區塊還原時,會為每個片段指派一個區塊 ID;此區塊 ID 的範圍為 0 到小於區塊數 1。對於非 BLOB 資料表的資料表,給定片段所屬的區塊是使用此處顯示的公式判定的

    [slice_ID] = [fragment_counter] % [number_of_slices]

    對於 BLOB 資料表,不使用片段計數器;而是使用片段編號以及 BLOB 資料表的主資料表 ID(回想一下,NDB 會在內部將 BLOB 值儲存在個別的資料表中)。在這種情況下,給定片段的區塊 ID 計算方式如下所示

    [slice_ID] =
    ([main_table_ID] + [fragment_ID]) % [number_of_slices]

    因此,按 N 個區塊還原表示執行 Nndb_restore 執行個體,所有執行個體都帶有 --num-slices=N(以及任何其他必要的選項),且每個執行個體都分別帶有 --slice-id=1--slice-id=2--slice-id=3,依此類推,直到 slice-id=N-1

    範例。假設您想要將名為 BACKUP-1 的備份還原,此備份可在每個資料節點的節點檔案系統上預設目錄 /var/lib/mysql-cluster/BACKUP/BACKUP-3 中找到,並還原到具有節點 ID 1、2、3 和 4 的四個資料節點的叢集。若要使用五個區塊執行此操作,請執行下列清單中顯示的命令集

    1. 使用 ndb_restore 還原叢集的中繼資料,如下所示

      $> ndb_restore -b 1 -n 1 -m --disable-indexes --backup-path=/home/ndbuser/backups
    2. 將叢集資料還原到資料節點,如下所示叫用 ndb_restore

      $> ndb_restore -b 1 -n 1 -r --num-slices=5 --slice-id=0 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      $> ndb_restore -b 1 -n 1 -r --num-slices=5 --slice-id=1 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      $> ndb_restore -b 1 -n 1 -r --num-slices=5 --slice-id=2 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      $> ndb_restore -b 1 -n 1 -r --num-slices=5 --slice-id=3 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      $> ndb_restore -b 1 -n 1 -r --num-slices=5 --slice-id=4 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      
      $> ndb_restore -b 1 -n 2 -r --num-slices=5 --slice-id=0 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      $> ndb_restore -b 1 -n 2 -r --num-slices=5 --slice-id=1 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      $> ndb_restore -b 1 -n 2 -r --num-slices=5 --slice-id=2 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      $> ndb_restore -b 1 -n 2 -r --num-slices=5 --slice-id=3 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      $> ndb_restore -b 1 -n 2 -r --num-slices=5 --slice-id=4 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      
      $> ndb_restore -b 1 -n 3 -r --num-slices=5 --slice-id=0 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      $> ndb_restore -b 1 -n 3 -r --num-slices=5 --slice-id=1 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      $> ndb_restore -b 1 -n 3 -r --num-slices=5 --slice-id=2 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      $> ndb_restore -b 1 -n 3 -r --num-slices=5 --slice-id=3 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      $> ndb_restore -b 1 -n 3 -r --num-slices=5 --slice-id=4 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      
      $> ndb_restore -b 1 -n 4 -r --num-slices=5 --slice-id=0 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      $> ndb_restore -b 1 -n 4 -r --num-slices=5 --slice-id=1 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      $> ndb_restore -b 1 -n 4 -r --num-slices=5 --slice-id=2 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      $> ndb_restore -b 1 -n 4 -r --num-slices=5 --slice-id=3 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
      $> ndb_restore -b 1 -n 4 -r --num-slices=5 --slice-id=4 --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1

      只要有足夠的叢集連線插槽,此步驟中剛才顯示的所有命令都可以平行執行(請參閱 --backup-path 選項的說明)。

    3. 照常還原索引,如下所示

      $> ndb_restore -b 1 -n 1 --rebuild-indexes --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1
    4. 最後,使用此處顯示的命令還原 epoch

      $> ndb_restore -b 1 -n 1 --restore-epoch --backup-path=/var/lib/mysql-cluster/BACKUP/BACKUP-1

    您應該只使用區塊來還原叢集資料;還原中繼資料、索引或 epoch 資訊時,不需要使用 --num-slices--slice-id。如果將其中一個或兩個選項與控制還原的 ndb_restore 選項一起使用,程式會忽略它們。

    使用 --parallelism 選項對還原速度的影響與使用多個 ndb_restore 執行個體進行區塊或平行還原所產生的影響無關(--parallelism 指定單一 ndb_restore 執行緒執行的平行交易數),但它可以與其中一個或兩個一起使用。您應該知道增加 --parallelism 會導致 ndb_restore 對叢集施加更大的負載;如果系統可以處理此負載,還原應該會更快完成。

    --num-slices 的值不直接取決於與硬體相關的值,例如 CPU 數量或 CPU 核心數、RAM 量等等,也不取決於 LDM 的數量。

    可以在相同還原的一部分中,在不同的資料節點上使用此選項的不同值;這樣做本身不應產生任何不良影響。

  • --parallelism=#, -p

    命令列格式 --parallelism=#
    類型 數值
    預設值 128
    最小值 1
    最大值 1024

    ndb_restore 使用單列交易來同時套用許多列。此參數決定 ndb_restore 的執行個體嘗試使用的平行交易(同時列)數量。預設值為 128;最小值為 1,最大值為 1024。

    執行插入的工作會跨所涉及的資料節點中的執行緒平行處理。此機制用於從 .Data 檔案還原大量資料,也就是資料的模糊快照;它不用於建置或重建索引。變更記錄會循序套用;索引捨棄和建置是 DDL 操作,並且單獨處理。還原的用戶端端沒有執行緒層級的平行處理。

  • --preserve-trailing-spaces, -P

    命令列格式 --preserve-trailing-spaces

    導致在將固定寬度字元資料類型升級到其可變寬度等效類型時保留尾隨空格,也就是在將 CHAR 資料行值升級到 VARCHAR,或將 BINARY 資料行值升級到 VARBINARY 時。否則,當將此類資料行值插入到新的資料行時,會從中捨棄任何尾隨空格。

    注意

    雖然您可以將 CHAR 資料行升級到 VARCHAR,並將 BINARY 資料行升級到 VARBINARY,但您不能將 VARCHAR 資料行升級到 CHAR,或將 VARBINARY 資料行升級到 BINARY

  • --print

    命令列格式 --print

    導致 ndb_restore 將所有資料、中繼資料和記錄列印到 stdout。相當於一起使用 --print-data--print-meta--print-log 選項。

    注意

    使用 --print 或任何 --print_* 選項實際上是在執行試執行。包括其中一個或多個選項會導致任何輸出重新導向至 stdout;在這種情況下,ndb_restore 不會嘗試將資料或中繼資料還原到 NDB 叢集。

  • --print-data

    命令列格式 --print-data

    導致 ndb_restore 將其輸出導向至 stdout。通常與以下一個或多個選項一起使用:--tab--fields-enclosed-by--fields-optionally-enclosed-by--fields-terminated-by--hex--append

    TEXTBLOB 資料行值始終會被截斷。此類值會在輸出中截斷為前 256 個位元組。使用 --print-data 時,目前無法覆寫此行為。

  • --print-defaults

    命令列格式 --print-defaults

    列印程式引數列表並結束。

  • --print-log

    命令列格式 --print-log

    使 ndb_restore 將其日誌輸出到 stdout

  • --print-meta

    命令列格式 --print-meta

    將所有中繼資料列印到 stdout

  • print-sql-log

    命令列格式 --print-sql-log

    將 SQL 陳述式記錄到 stdout。使用此選項啟用;通常此行為會停用。此選項會在嘗試記錄之前檢查要還原的所有表格是否已明確定義主索引鍵;在僅由 NDB 實作隱藏主索引鍵的表格上的查詢無法轉換為有效的 SQL。

    此選項不適用於具有 BLOB 資料行的表格。

  • --progress-frequency=N

    命令列格式 --progress-frequency=#
    類型 數值
    預設值 0
    最小值 0
    最大值 65535

    在備份進行期間,每 N 秒列印一次狀態報告。0(預設值)表示不列印任何狀態報告。最大值為 65535。

  • --promote-attributes-A

    命令列格式 --promote-attributes

    ndb_restore 支援有限的屬性提升,其方式與 MySQL 複寫支援的方式非常相似;也就是說,從指定類型資料行備份的資料通常可以還原到使用較大、相似類型的資料行。例如,來自 CHAR(20) 資料行的資料可以還原到宣告為 VARCHAR(20)VARCHAR(30)CHAR(30) 的資料行;來自 MEDIUMINT 資料行的資料可以還原到類型為 INTBIGINT 的資料行。請參閱 第 19.5.1.9.2 節「複寫具有不同資料類型的資料行」,以取得目前屬性提升支援的類型轉換表格。

    此選項也可以將 NOT NULL 資料行還原為 NULL

    ndb_restore 的屬性提升必須明確啟用,如下所示

    1. 準備要還原備份的表格。ndb_restore 無法用於重新建立與原始定義不同的表格;這表示您必須手動建立表格,或在還原表格中繼資料之後但在還原資料之前,使用 ALTER TABLE 變更您想要提升的資料行。

    2. 在還原表格資料時,使用 --promote-attributes 選項(簡短形式 -A)叫用 ndb_restore。如果未使用此選項,則不會發生屬性提升;而是還原作業會失敗並顯示錯誤。

    在字元資料類型和 TEXTBLOB 之間轉換時,只能同時執行字元類型(CHARVARCHAR)和二進位類型(BINARYVARBINARY)之間的轉換。例如,您無法在同一次叫用 ndb_restore 時,將 INT 資料行提升為 BIGINT,同時將 VARCHAR 資料行提升為 TEXT

    不支援使用不同字元集在 TEXT 資料行之間進行轉換,且明確禁止此動作。

    使用 ndb_restore 將字元或二進位類型轉換為 TEXTBLOB 時,您可能會注意到它會建立並使用一個或多個名為 table_name$STnode_id 的暫存表格。這些表格之後不需要,通常會在成功還原後由 ndb_restore 刪除。

  • --rebuild-indexes

    命令列格式 --rebuild-indexes

    啟用多執行緒重建已排序的索引,同時還原原生 NDB 備份。使用此選項時,ndb_restore 用於建立已排序索引的執行緒數由 BuildIndexThreads 資料節點組態參數和 LDM 數量控制。

    只有在第一次執行 ndb_restore 時才需要使用此選項;這會導致重建所有已排序的索引,而無需在還原後續節點時再次使用 --rebuild-indexes。您應該在將新列插入資料庫之前使用此選項;否則,可能會插入一個列,該列之後在嘗試重建索引時導致唯一性限制違規。

    預設情況下,已排序的索引的建立會與 LDM 的數量平行處理。可以使用 BuildIndexThreads 資料節點組態參數來加速在節點和系統重新啟動期間執行的離線索引建立;此參數對 ndb_restore 執行線上的索引捨棄和重建沒有影響。

    重建唯一索引會使用磁碟寫入頻寬來進行重做記錄和本機檢查點。此頻寬不足可能會導致重做緩衝區溢位或記錄溢位錯誤。在這種情況下,您可以再次執行 ndb_restore --rebuild-indexes;此程序會從發生錯誤的位置繼續。您也可以在遇到暫時性錯誤時執行此操作。您可以無限期地重複執行 ndb_restore --rebuild-indexes;您可以透過減少 --parallelism 的值來停止此類錯誤。如果問題是空間不足,您可以增加重做記錄的大小(FragmentLogFileSize 節點組態參數),或者您可以加快執行 LCP 的速度(MaxDiskWriteSpeed 和相關參數),以便更快釋放空間。

  • --remap-column=db.tbl.col:fn:args

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

    當與 --restore-data 一起使用時,此選項會將函式套用至指示資料行的值。引數字串中的值在此處列出

    • db:資料庫名稱,遵循 --rewrite-database 執行的任何重新命名。

    • tbl:表格名稱。

    • col:要更新的資料行名稱。此資料行的類型必須是 INTBIGINT。資料行也可以是但並非必須是 UNSIGNED

    • fn:函式名稱;目前,唯一支援的名稱是 offset

    • args:傳遞給函式的引數。目前僅支援單一引數,即 offset 函式要增加的偏移量大小。支援負值。引數的大小不能超過欄位型別的帶符號變體的大小;例如,如果 colINT 欄位,則傳遞給 offset 函式的引數允許的範圍是 -21474836482147483647(請參閱第 13.1.2 節「整數類型(精確值)- INTEGER、INT、SMALLINT、TINYINT、MEDIUMINT、BIGINT」)。

      如果將偏移值套用至欄位會導致溢位或下溢,則還原操作會失敗。舉例來說,如果欄位是 BIGINT,且選項嘗試在欄位值為 4294967291 的列上套用偏移值 8,就會發生這種情況,因為 4294967291 + 8 = 4294967299 > 4294967295

    當您希望將儲存在多個 NDB Cluster 來源執行個體(全部使用相同結構描述)中的資料合併到單一目的地 NDB Cluster 時,此選項非常有用,方法是使用 NDB 原生備份(請參閱第 25.6.8.2 節「使用 NDB Cluster 管理用戶端建立備份」)和 ndb_restore 來合併資料,其中來源叢集之間的主要和唯一索引鍵值重疊,並且在程序中必須將這些值重新對應至不重疊的範圍。可能也需要保留表格之間的其他關係。為了滿足這些需求,可以在同一次 ndb_restore 的叫用中多次使用此選項,以重新對應不同表格的欄位,如下所示

    $> ndb_restore --restore-data --remap-column=hr.employee.id:offset:1000 \
        --remap-column=hr.manager.id:offset:1000 --remap-column=hr.firstaiders.id:offset:1000

    (此處未顯示其他選項。)

    --remap-column 也可用於更新同一個表格的多個欄位。可以組合使用多個表格和欄位。同一個表格的不同欄位也可以使用不同的偏移值,如下所示

    $> ndb_restore --restore-data --remap-column=hr.employee.salary:offset:10000 \
        --remap-column=hr.employee.hours:offset:-10

    當來源備份包含不應合併的重複表格時,您可以使用 --exclude-tables--exclude-databases,或在您的應用程式中使用其他方式來處理。

    可以使用 SHOW CREATE TABLEndb_desc 工具;以及 MAX()MIN()LAST_INSERT_ID() 和其他 MySQL 函式來取得要合併的表格的結構和其他特性相關資訊。

    不支援在不同的 NDB Cluster 執行個體中,將變更從已合併表格複寫到未合併表格,或從未合併表格複寫到已合併表格。

  • --restore-data-r

    命令列格式 --restore-data

    輸出 NDB 表格資料和日誌。

  • --restore-epoch-e

    命令列格式 --restore-epoch

    將 (或還原) Epoch 資訊新增至叢集複寫狀態表格。這對於在 NDB Cluster 複本上啟動複寫很有用。使用此選項時,如果 mysql.ndb_apply_status 中的列的 id 欄位中已存在 0,則會更新該列;如果不存在,則會插入此類列。(請參閱第 25.7.9 節「使用 NDB Cluster 複寫的 NDB Cluster 備份」。)

  • --restore-meta-m

    命令列格式 --restore-meta

    此選項會讓 ndb_restore 列印 NDB 表格中繼資料。

    第一次執行 ndb_restore 還原程式時,您也需要還原中繼資料。換句話說,您必須重新建立資料庫表格,這可以藉由使用 --restore-meta (-m) 選項執行來完成。還原中繼資料只需要在單一資料節點上執行;這足以將其還原到整個叢集。

    ndb_restore 使用目標叢集的預設分割數,除非本機資料管理員執行緒的數量也從原始叢集中資料節點的數量變更。

    使用此選項時,建議停用自動同步,方法是將 ndb_metadata_check=OFF,直到 ndb_restore 完成還原中繼資料後,才能再次開啟以同步 NDB 字典中新建立的物件。

    注意

    當開始還原備份時,叢集應該具有空的資料庫。(換句話說,您應該先使用 --initial 啟動資料節點,然後再執行還原。)

  • --restore-privilege-tables

    命令列格式 --restore-privilege-tables
    已過時

    不再使用。

  • --rewrite-database=olddb,newdb

    命令列格式 --rewrite-database=字串
    類型 字串
    預設值

    此選項可讓您還原至資料庫的名稱與備份中使用的名稱不同。例如,如果備份的資料庫名稱為 products,您可以使用此選項將其中包含的資料還原至名為 inventory 的資料庫,如下所示(省略任何可能需要的其他選項)

    $> ndb_restore --rewrite-database=product,inventory

    此選項可以在單次 ndb_restore 的叫用中多次使用。因此,可以使用 --rewrite-database=db1,db2 --rewrite-database=db3,db4 同時從名為 db1 的資料庫還原到名為 db2 的資料庫,並從名為 db3 的資料庫還原到名為 db4 的資料庫。可以在多個 --rewrite-database 出現之間使用其他 ndb_restore 選項。

    如果多個 --rewrite-database 選項之間發生衝突,則從左到右讀取,最後使用的 --rewrite-database 選項會生效。例如,如果使用 --rewrite-database=db1,db2 --rewrite-database=db1,db3,則只會採用 --rewrite-database=db1,db3,而會忽略 --rewrite-database=db1,db2。也可以從多個資料庫還原至單一資料庫,因此 --rewrite-database=db1,db3 --rewrite-database=db2,db3 會將所有表格和資料從資料庫 db1db2 還原到資料庫 db3

    重要

    當使用 --rewrite-database 從多個備份資料庫還原至單一目標資料庫時,不會檢查表格或其他物件名稱之間是否有衝突,並且不保證還原列的順序。這表示在這種情況下,可能會覆寫列並遺失更新。

  • --skip-broken-objects

    命令列格式 --skip-broken-objects

    此選項會讓 ndb_restore 在讀取原生 NDB 備份時忽略損毀的表格,並繼續還原任何剩餘的表格(未損毀的表格)。目前,--skip-broken-objects 選項僅在遺失 Blob 部分表格的情況下有效。

  • --skip-table-check-s

    命令列格式 --skip-table-check

    可以還原資料而不還原表格中繼資料。預設情況下,執行此操作時,如果表格資料和表格結構描述之間發現不符,ndb_restore 會失敗並顯示錯誤;此選項會覆寫該行為。

    使用 ndb_restore 還原資料時,放寬了對欄定義不符的一些限制;當遇到其中一種不符類型時,ndb_restore 不會像之前那樣停止並顯示錯誤,而是接受資料並將其插入目標表格,同時向使用者發出警告,告知正在執行此操作。無論是否使用 --skip-table-check--promote-attributes 選項,都會發生這種行為。這些欄定義的差異類型如下:

    • 不同的 COLUMN_FORMAT 設定(FIXEDDYNAMICDEFAULT

    • 不同的 STORAGE 設定(MEMORYDISK

    • 不同的預設值

    • 不同的分佈索引鍵設定

  • --skip-unknown-objects

    命令列格式 --skip-unknown-objects

    此選項會使 ndb_restore 在讀取原生 NDB 備份時,忽略任何無法辨識的綱要物件。這可以用於將從執行(例如)NDB 7.6 的叢集建立的備份還原到執行 NDB 叢集 7.5 的叢集。

  • --slice-id=#

    命令列格式 --slice-id=#
    類型 整數
    預設值 0
    最小值 0
    最大值 1023

    當按切片還原時,這是要還原的切片的 ID。此選項總是與 --num-slices 一起使用,而且其值必須始終小於 --num-slices 的值。

    有關更多資訊,請參閱本節其他地方的 --num-slices 的說明。

  • --tab=dir_name, -T dir_name

    命令列格式 --tab=路徑
    類型 目錄名稱

    使 --print-data 建立傾印檔案,每個表格一個,每個檔案名為 tbl_name.txt。它需要將檔案儲存的目錄路徑作為其引數;使用 . 表示目前目錄。

  • --timestamp-printouts

    命令列格式 --timestamp-printouts{=true|false}
    類型 布林值
    預設值 true

    使 info、錯誤和偵錯日誌訊息加上時間戳記前綴。

    預設會啟用此選項。使用 --timestamp-printouts=false 停用它。

  • --usage

    命令列格式 --usage

    顯示說明文字並結束;與 --help 相同。

  • --verbose=#

    命令列格式 --verbose=#
    類型 數值
    預設值 1
    最小值 0
    最大值 255

    設定輸出的詳細程度。最小值為 0;最大值為 255。預設值為 1。

  • --version

    命令列格式 --version

    顯示版本資訊並結束。

  • --with-apply-status

    命令列格式 --with-apply-status

    從備份的 ndb_apply_status 表格還原所有列(但具有 server_id = 0 的列除外,該列是使用 --restore-epoch 產生的)。此選項要求也必須使用 --restore-data

    如果備份中的 ndb_apply_status 表格已包含具有 server_id = 0 的列,則 ndb_restore --with-apply-status 會刪除它。因此,我們建議您在使用 --with-apply-status 選項叫用 ndb_restore 之後,使用 ndb_restore --restore-epoch。您也可以在用於還原叢集的任何最後一個 ndb_restore --with-apply-status 叫用時,同時使用 --restore-epoch

    有關更多資訊,請參閱 ndb_apply_status 表格

此公用程式的典型選項如下所示:

ndb_restore [-c connection_string] -n node_id -b backup_id \
      [-m] -r --backup-path=/path/to/backup/files

通常,從 NDB 叢集備份還原時,ndb_restore 至少需要 --nodeid(簡寫形式:-n)、--backupid(簡寫形式:-b)和 --backup-path 選項。

-c 選項用於指定連線字串,該字串會告知 ndb_restore 管理伺服器的位置(請參閱 第 25.4.3.3 節, 「NDB 叢集連線字串」)。如果未使用此選項,則 ndb_restore 會嘗試連線到 localhost:1186 上的管理伺服器。此公用程式充當叢集 API 節點,因此需要空閒的連線插槽才能連線到叢集管理伺服器。這表示在叢集的 config.ini 檔案中,必須至少有一個 [api][mysqld] 區段可供其使用。因此,最好在 config.ini 中保留至少一個空的 [api][mysqld] 區段,該區段未用於 MySQL 伺服器或其他應用程式(請參閱 第 25.4.3.7 節, 「在 NDB 叢集中定義 SQL 和其他 API 節點」)。

ndb_restore 可以使用 --decrypt--backup-password 解密加密的備份。必須指定這兩個選項才能執行解密。請參閱 START BACKUP 管理用戶端命令的文件,以瞭解有關建立加密備份的資訊。

您可以藉由在 ndb_mgm 管理用戶端中使用 SHOW 命令來驗證 ndb_restore 是否已連線到叢集。您也可以從系統 Shell 完成此動作,如下所示:

$> ndb_mgm -e "SHOW"

錯誤報告。 ndb_restore 會報告暫時性和永久性錯誤。如果發生暫時性錯誤,它可能會從中復原,並在這種情況下報告 還原成功,但遇到暫時性錯誤,請查看組態

重要

在使用 ndb_restore 初始化用於循環複寫的 NDB 叢集之後,不會自動建立充當複寫項的 SQL 節點上的二進位日誌,而且您必須手動使其建立。若要使建立二進位日誌,請在執行 START REPLICA 之前,在該 SQL 節點上發出 SHOW TABLES 陳述式。這是 NDB 叢集中的已知問題。