ibd2sdi は、InnoDB
テーブルスペースファイルから serialized dictionary information (SDI) を抽出するためのユーティリティです。 SDI データは、すべての永続 InnoDB
テーブルスペースファイルに存在します。
ibd2sdi は、file-per-table テーブルスペースファイル (*.ibd
ファイル)、general tablespace ファイル (*.ibd
ファイル)、system tablespace ファイル (ibdata*
ファイル) およびデータディクショナリテーブルスペース (mysql.ibd
) で実行できます。 一時テーブルスペースまたは undo テーブルスペースでの使用はサポートされていません。
ibd2sdi は、実行時またはサーバーのオフライン中に使用できます。 SDI に関連する DDL 操作、ROLLBACK
操作および undo ログのパージ操作中に、ibd2sdi がテーブルスペースに格納されている SDI データの読取りに失敗する短い間隔がある場合があります。
ibd2sdi は、指定されたテーブルスペースから SDI のコミットされていない読取りを実行します。 redo ログおよび undo ログはアクセスされません。
次のように ibd2sdi ユーティリティを起動します:
shell> ibd2sdi [options] file_name1 [file_name2 file_name3 ...]
ibd2sdi は、InnoDB
システムテーブルスペースのような複数ファイルのテーブルスペースをサポートしていますが、一度に複数のテーブルスペースで実行することはできません。 複数ファイルテーブルスペースの場合は、各ファイルを指定します:
shell> ibd2sdi ibdata1 ibdata2
複数ファイルテーブルスペースのファイルは、ページ番号の昇順で指定する必要があります。 2 つの連続するファイルのスペース ID が同じ場合、後のファイルは前のファイルの最後のページ番号 + 1 で始まる必要があります。
ibd2sdi は、SDI (id、type および data フィールドを含む) を JSON
形式で出力します。
ibd2sdi オプション
ibd2sdi では、次のオプションがサポートされます:
-
コマンドラインヘルプを表示します。
shell> ibd2sdi --help Usage: ./ibd2sdi [-v] [-c <strict-check>] [-d <dump file name>] [-n] filename1 [filenames] See http://dev.mysql.com/doc/refman/8.0/en/ibd2sdi.html for usage hints. -h, --help Display this help and exit. -v, --version Display version information and exit. -#, --debug[=name] Output debug log. See http://dev.mysql.com/doc/refman/8.0/en/dbug-package.html -d, --dump-file=name Dump the tablespace SDI into the file passed by user. Without the filename, it will default to stdout -s, --skip-data Skip retrieving data from SDI records. Retrieve only id and type. -i, --id=# Retrieve the SDI record matching the id passed by user. -t, --type=# Retrieve the SDI records matching the type passed by user. -c, --strict-check=name Specify the strict checksum algorithm by the user. Allowed values are innodb, crc32, none. -n, --no-check Ignore the checksum verification. -p, --pretty Pretty format the SDI output.If false, SDI would be not human readable but it will be of less size (Defaults to on; use --skip-pretty to disable.) Variables (--variable-name=value) and boolean options {FALSE|TRUE} Value (after reading options) --------------------------------- ---------------------------------------- debug (No default value) dump-file (No default value) skip-data FALSE id 0 type 0 strict-check crc32 no-check FALSE pretty TRUE
-
MySQL のバージョン情報を表示します。
shell> ibd2sdi --version ibd2sdi Ver 8.0.3-dmr for Linux on x86_64 (Source distribution)
-
--debug[=
,debug_options
]-# [
debug_options
]デバッグログを出力します。 デバッグオプションについては、セクション5.9.4「DBUG パッケージ」 を参照してください。
shell> ibd2sdi --debug=d:t /tmp/ibd2sdi.trace
このオプションは、MySQL が
WITH_DEBUG
を使用して構築された場合にのみ使用できます。 Oracle によって提供される MySQL リリースバイナリは、このオプションを使用して構築されません。 -
シリアル化されたディクショナリ情報 (SDI) を指定されたダンプファイルにダンプします。 ダンプファイルが指定されていない場合、テーブルスペース SDI は
stdout
にダンプされます。shell> ibd2sdi --dump-file=file_name ../data/test/t1.ibd
-
シリアライズされたディクショナリ情報 (SDI) からの
data
フィールド値の取得をスキップし、SDI レコードの主キーであるid
およびtype
フィールド値のみを取得します。shell> ibd2sdi --skip-data ../data/test/t1.ibd ["ibd2sdi" , { "type": 1, "id": 330 } , { "type": 2, "id": 7 } ]
-
指定されたテーブルまたはテーブルスペースオブジェクト ID に一致するシリアライズディクショナリ情報 (SDI) を取得します。 オブジェクト ID はオブジェクトタイプに対して一意です。 テーブルおよびテーブルスペースのオブジェクト ID は、
mysql.tables
およびmysql.tablespace
データディクショナリテーブルのid
カラムにもあります。 データディクショナリテーブルの詳細は、セクション14.1「データディクショナリスキーマ」 を参照してください。shell> ibd2sdi --id=7 ../data/test/t1.ibd ["ibd2sdi" , { "type": 2, "id": 7, "object": { "mysqld_version_id": 80003, "dd_version": 80003, "sdi_version": 1, "dd_object_type": "Tablespace", "dd_object": { "name": "test/t1", "comment": "", "options": "", "se_private_data": "flags=16417;id=2;server_version=80003;space_version=1;", "engine": "InnoDB", "files": [ { "ordinal_position": 1, "filename": "./test/t1.ibd", "se_private_data": "id=2;" } ] } } } ]
-
指定されたオブジェクト型に一致するシリアライズディクショナリ情報 (SDI) を取得します。 SDI は、テーブル (タイプ = 1) およびテーブルスペース (タイプ = 2) オブジェクトに提供されます。
shell> ibd2sdi --type=2 ../data/test/t1.ibd ["ibd2sdi" , { "type": 2, "id": 7, "object": { "mysqld_version_id": 80003, "dd_version": 80003, "sdi_version": 1, "dd_object_type": "Tablespace", "dd_object": { "name": "test/t1", "comment": "", "options": "", "se_private_data": "flags=16417;id=2;server_version=80003;space_version=1;", "engine": "InnoDB", "files": [ { "ordinal_position": 1, "filename": "./test/t1.ibd", "se_private_data": "id=2;" } ] } } } ]
-
読み取られるページのチェックサムを検証するための厳密なチェックサムアルゴリズムを指定します。 オプションには、
innodb
、crc32
およびnone
があります。この例では、厳密なバージョンの
innodb
チェックサムアルゴリズムが指定されています:shell> ibd2sdi --strict-check=innodb ../data/test/t1.ibd
この例では、厳密なバージョンの
crc32
チェックサムアルゴリズムが指定されています:shell> ibd2sdi -c crc32 ../data/test/t1.ibd
--strict-check
オプションを指定しない場合、非厳密なinnodb
、crc32
およびnone
チェックサムに対して検証が実行されます。 -
読み取られるページのチェックサム検証をスキップします。
shell> ibd2sdi --no-check ../data/test/t1.ibd
-
SDI データを JSON プリティ印刷形式で出力します。 デフォルトで有効。 無効にすると、SDI は人間が読めるようになりませんが、サイズは小さくなります。
--skip-pretty
を使用して無効にします。shell> ibd2sdi --skip-pretty ../data/test/t1.ibd