このツールは、孤立した 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 に固有のオプションが含まれています。追加説明が表のあとにあります。ほとんどの MySQL Cluster プログラム (ndb_blob_tool を含む) に共通するオプションについては、セクション18.4.27「MySQL Cluster プログラムに共通するオプション — MySQL Cluster プログラムに共通するオプション」を参照してください。
表 18.81 この表は、ndb_blob_tool プログラムのコマンド行オプションについて説明しています
形式 | 説明 | 追加または削除 |
---|---|---|
孤立した BLOB パーツをチェックします |
すべての MySQL 5.6 ベースリリース |
|
テーブルを探すデータベース。 |
すべての MySQL 5.6 ベースリリース |
|
孤立した BLOB パーツを削除します |
すべての MySQL 5.6 ベースリリース |
|
指定したファイルに孤立したキーを書き込みます |
すべての MySQL 5.6 ベースリリース |
|
冗長出力 |
すべての MySQL 5.6 ベースリリース |
-
コマンド行形式 --check-orphans
型 ブール デフォルト FALSE
MySQL Cluster テーブルの孤立した BLOB パーツをチェックします。
-
コマンド行形式 --database=db_name
型 文字列 デフォルト [none]
テーブルを探すデータベースを指定します。
-
コマンド行形式 --delete-orphans
型 ブール デフォルト FALSE
MySQL Cluster テーブルから孤立した BLOB パーツを削除します。
-
コマンド行形式 --dump-file=file
型 ファイル名 デフォルト [none]
孤立した BLOB カラムパーツのリストを
file
に書き込みます。ファイルに書き込まれる情報には、各孤立した BLOB パーツのテーブルキーおよび BLOB パーツ番号が含まれます。 -
コマンド行形式 --verbose
型 ブール デフォルト 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「データ型のストレージ要件」を参照してください。