このツールは、孤立した BLOB
カラムパーツをチェックして
NDB
テーブルから削除するため、および孤立したパーツを一覧したファイルを生成するために使用できます。
これは、BLOB
または
TEXT
カラムが含まれている破損または損傷した
NDB
テーブルを診断および修復する場合に役に立つことがあります。
ndb_blob_tool の基本的な構文を次に示します。
ndb_blob_tool [options] table [column, ...]
--help
オプションを使用する場合を除き、1
つ以上のオプション
(--check-orphans
、--delete-orphans
、または
--dump-file
)
を含めることによって、実行するアクションを指定する必要があります。
これらのオプションを指定すると、ndb_blob_tool
がそれぞれ孤立した BLOB
パーツをチェックしたり、孤立した BLOB
パーツを削除したり、孤立した BLOB
パーツを一覧するダンプファイルを生成したりします。これについての詳細は、このセクションで後述します。
ndb_blob_tool
を呼び出すときは、テーブルの名前も指定する必要があります。
また、必要に応じて、テーブル名の後ろに、(カンマで区切った)
そのテーブルの 1 つ以上の
BLOB
または
TEXT
カラムの名前を続けることができます。
カラムをリストしない場合、このツールはテーブルのすべての
BLOB
および
TEXT
カラムを処理します。
データベースを指定する必要がある場合は、--database
(-d
) オプションを使用します。
--verbose
オプションは、ツールの進行状況に関する追加の情報を出力します。
次の表には、ndb_blob_tool に固有のオプションが含まれています。 追加説明が表のあとにあります。 ほとんどの NDB Cluster プログラム (ndb_blob_tool を含む) に共通のオプションについては、セクション23.4.32「NDB Cluster プログラムに共通のオプション — NDB Cluster プログラムに共通のオプション」 を参照してください。
表 23.28 プログラムで使用されるコマンドライン・オプション ndb_blob_tool
形式 | 説明 | 追加、非推奨、または削除された |
---|---|---|
欠落しているものを実行するダミー BLOB パーツを書き込みます | 追加: NDB 8.0.20 |
|
インラインパーツを持つがパーツテーブルに 1 つまたは複数のパーツがない BLOB をチェック | 追加: NDB 8.0.20 |
|
対応するインラインパーツがない BLOB パーツをチェック | (MySQLに基づくすべてのNDBリリースでサポート 8.0) |
|
テーブルを探すデータベース | (MySQLに基づくすべてのNDBリリースでサポート 8.0) |
|
対応するインラインパーツがない BLOB パーツの削除 | (MySQLに基づくすべてのNDBリリースでサポート 8.0) |
|
指定したファイルに孤立したキーを書き込みます | (MySQLに基づくすべてのNDBリリースでサポート 8.0) |
|
冗長出力 | (MySQLに基づくすべてのNDBリリースでサポート 8.0) |
-
コマンド行形式 --add-missing
導入 8.0.20-ndb-8.0.20 型 Boolean デフォルト値 FALSE
対応する BLOB 部分がない「NDB Cluster」テーブルのインライン部分ごとに、空白で構成される必要な長さのダミー BLOB 部分を記述します。
-
コマンド行形式 --check-missing
導入 8.0.20-ndb-8.0.20 型 Boolean デフォルト値 FALSE
対応する BLOB 部分がない「NDB Cluster」テーブルのインライン部分を確認します。
-
コマンド行形式 --check-orphans
型 Boolean デフォルト値 FALSE
対応するインライン部分がない「NDB Cluster」テーブルの BLOB 部分を確認します。
-
コマンド行形式 --database=db_name
型 文字列 デフォルト値 [none]
テーブルを探すデータベースを指定します。
-
コマンド行形式 --delete-orphans
型 Boolean デフォルト値 FALSE
対応するインライン部分がない BLOB 部分を「NDB Cluster」テーブルから削除します。
-
コマンド行形式 --dump-file=file
型 ファイル名 デフォルト値 [none]
孤立した BLOB カラムパーツのリストを
file
に書き込みます。 ファイルに書き込まれる情報には、各孤立した BLOB パーツのテーブルキーおよび BLOB パーツ番号が含まれます。 -
コマンド行形式 --verbose
型 Boolean デフォルト値 FALSE
進行状況に関する追加情報をツールの出力に書き込みます。
例
最初に、次に示す CREATE
TABLE
ステートメントを使用して、test
データベースに NDB
テーブルを作成します。
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
を実行すると、次の出力が生成されます。
shell> 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
NDBT_ProgramExit: 0 - OK
c1
は TEXT
カラムですが、カラム c1
に関連付けられている NDB
BLOB
カラムパーツはないことをこのツールは報告しています。
これは、NDB
テーブルでは、BLOB
または TEXT
カラム値の最初の 256
バイトのみがインラインで格納され、それを超過する部分
(ある場合)
のみが別個に格納されるためです。したがって、これらのタイプのいずれかのカラムに
256 バイトを超える値がない場合、このカラムの
BLOB
カラムパーツは
NDB
によって作成されません。
詳細は、セクション11.7「データ型のストレージ要件」を参照してください。