文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  ndb_blob_tool — 檢查與修復 NDB Cluster 表格的 BLOB 和 TEXT 欄位

25.5.6 ndb_blob_tool — 檢查與修復 NDB Cluster 表格的 BLOB 和 TEXT 欄位

此工具可用於檢查並移除 NDB 表格中孤立的 BLOB 欄位部分,以及產生列出任何孤立部分的文件。它在診斷和修復包含 BLOBTEXT 欄位的損毀或損壞的 NDB 表格時,有時很有用。

此處顯示 ndb_blob_tool 的基本語法

ndb_blob_tool [options] table [column, ...]

除非您使用 --help 選項,否則您必須指定要執行的動作,方法是包含一或多個選項 --check-orphans--delete-orphans--dump-file。這些選項會導致 ndb_blob_tool 分別檢查孤立的 BLOB 部分、移除任何孤立的 BLOB 部分,以及產生列出孤立 BLOB 部分的轉儲檔案,並在本節稍後進行更詳細的說明。

在調用 ndb_blob_tool 時,您還必須指定表格的名稱。此外,您可以選擇性地在表格名稱後加上該表格中一或多個 BLOBTEXT 欄位的名稱(以逗號分隔)。如果未列出任何欄位,則該工具會處理表格的所有 BLOBTEXT 欄位。如果您需要指定資料庫,請使用 --database (-d) 選項。

--verbose 選項會在輸出中提供有關工具進度的其他資訊。

下表顯示可與 ndb_mgmd 搭配使用的所有選項。下表之後提供其他說明。

  • --add-missing

    命令列格式 --add-missing

    對於 NDB Cluster 表格中沒有對應 BLOB 部分的每個內嵌部分,寫入由空格組成的所需長度虛擬 BLOB 部分。

  • --character-sets-dir

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

    包含字元集的目錄。

  • --check-missing

    命令列格式 --check-missing

    檢查 NDB Cluster 表格中沒有對應 BLOB 部分的內嵌部分。

  • --check-orphans

    命令列格式 --check-orphans

    檢查 NDB Cluster 表格中沒有對應內嵌部分的 BLOB 部分。

  • --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

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

  • --database=db_name, -d

    命令列格式 --database=名稱
    類型 字串
    預設值 [無]

    指定要在其中尋找表格的資料庫。

  • --defaults-extra-file

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

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

  • --defaults-file

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

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

  • --defaults-group-suffix

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

    也讀取具有 concat(群組、後綴) 的群組。

  • --delete-orphans

    命令列格式 --delete-orphans

    從 NDB Cluster 表格中移除沒有對應內嵌部分的 BLOB 部分。

  • --dump-file=file

    命令列格式 --dump-file=檔案
    類型 檔案名稱
    預設值 [無]

    將孤立的 BLOB 欄位部分清單寫入至 file。寫入檔案的資訊包含每個孤立 BLOB 部分的表格索引鍵和 BLOB 部分編號。

  • --help

    命令列格式 --help

    顯示說明文字並結束。

  • --login-path

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

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

  • --no-login-paths

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

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

  • --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-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

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

  • --print-defaults

    命令列格式 --print-defaults

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

  • --usage

    命令列格式 --usage

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

  • --verbose

    命令列格式 --verbose

    在工具輸出中提供有關其進度的額外資訊。

  • --version

    命令列格式 --version

    顯示版本資訊並結束。

範例

首先,我們在 test 資料庫中建立一個 NDB 表格,使用此處顯示的 CREATE TABLE 陳述式

USE test;

CREATE TABLE btest (
    c0 BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    c1 TEXT,
    c2 BLOB
)   ENGINE=NDB;

然後,我們使用一系列類似於此陳述式的陳述式,在此表格中插入一些列

INSERT INTO btest VALUES (NULL, 'x', REPEAT('x', 1000));

當使用 --check-orphans 對此表格執行時,ndb_blob_tool 會產生以下輸出

$> ndb_blob_tool --check-orphans --verbose -d test btest
connected
processing 2 blobs
processing blob #0 c1 NDB$BLOB_19_1
NDB$BLOB_19_1: nextResult: res=1
total parts: 0
orphan parts: 0
processing blob #1 c2 NDB$BLOB_19_2
NDB$BLOB_19_2: nextResult: res=0
NDB$BLOB_19_2: nextResult: res=0
NDB$BLOB_19_2: nextResult: res=0
NDB$BLOB_19_2: nextResult: res=0
NDB$BLOB_19_2: nextResult: res=0
NDB$BLOB_19_2: nextResult: res=0
NDB$BLOB_19_2: nextResult: res=0
NDB$BLOB_19_2: nextResult: res=0
NDB$BLOB_19_2: nextResult: res=0
NDB$BLOB_19_2: nextResult: res=0
NDB$BLOB_19_2: nextResult: res=1
total parts: 10
orphan parts: 0
disconnected

該工具回報說,即使 c1 是一個 TEXT 欄位,也沒有與欄位 c1 相關聯的 NDB BLOB 欄位部分。這是由於在 NDB 表格中,只有 BLOBTEXT 欄位值的前 256 個位元組會內嵌儲存,而超出部分(如果有)則會分開儲存;因此,如果給定類型欄位中沒有任何值超過 256 個位元組,則 NDB 不會為此欄位建立 BLOB 欄位部分。有關更多資訊,請參閱 第 13.7 節,"資料類型儲存需求"