MySQL 8.0 リファレンスマニュアル


MySQL 8.0 リファレンスマニュアル  /  ...  /  ibd2sdi — InnoDB テーブルスペース SDI 抽出ユーティリティ

4.6.1 ibd2sdi — InnoDB テーブルスペース SDI 抽出ユーティリティ

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 では、次のオプションがサポートされます:

  • --help, -h

    コマンドラインヘルプを表示します。

    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
  • --version, -v

    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 リリースバイナリは、このオプションを使用して構築されません。

  • --dump-file=, -d

    シリアル化されたディクショナリ情報 (SDI) を指定されたダンプファイルにダンプします。 ダンプファイルが指定されていない場合、テーブルスペース SDI は stdout にダンプされます。

    shell> ibd2sdi --dump-file=file_name ../data/test/t1.ibd
  • --skip-data, -s

    シリアライズされたディクショナリ情報 (SDI) からの data フィールド値の取得をスキップし、SDI レコードの主キーである id および type フィールド値のみを取得します。

    shell> ibd2sdi --skip-data ../data/test/t1.ibd
    ["ibd2sdi"
    ,
    {
    	"type": 1,
    	"id": 330
    }
    ,
    {
    	"type": 2,
    	"id": 7
    }
    ]
  • --id=#, -i #

    指定されたテーブルまたはテーブルスペースオブジェクト 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;"
                }
            ]
        }
    }
    }
    ]
  • --type=#, -t #

    指定されたオブジェクト型に一致するシリアライズディクショナリ情報 (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;"
                }
            ]
        }
    }
    }
    ]
  • --strict-check, -c

    読み取られるページのチェックサムを検証するための厳密なチェックサムアルゴリズムを指定します。 オプションには、innodbcrc32 および none があります。

    この例では、厳密なバージョンの innodb チェックサムアルゴリズムが指定されています:

    shell> ibd2sdi --strict-check=innodb ../data/test/t1.ibd

    この例では、厳密なバージョンの crc32 チェックサムアルゴリズムが指定されています:

    shell> ibd2sdi -c crc32 ../data/test/t1.ibd

    --strict-check オプションを指定しない場合、非厳密な innodbcrc32 および none チェックサムに対して検証が実行されます。

  • --no-check, -n

    読み取られるページのチェックサム検証をスキップします。

    shell> ibd2sdi --no-check ../data/test/t1.ibd
  • --pretty, -p

    SDI データを JSON プリティ印刷形式で出力します。 デフォルトで有効。 無効にすると、SDI は人間が読めるようになりませんが、サイズは小さくなります。 --skip-pretty を使用して無効にします。

    shell> ibd2sdi --skip-pretty ../data/test/t1.ibd

関連キーワード:  sdi, テーブル, SDI, スペース, プログラム, version, サーバー, shell, type, InnoDB