MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む

このページは機械翻訳したものです。

23.4.23 ndb_restore — NDB Cluster バックアップの復元

NDB Cluster リストアプログラムは、通常は MySQL bin ディレクトリにある個別のコマンド行ユーティリティー ndb_restore として実装されます。 このプログラムは、バックアップの結果として作成されたファイルを読み取り、格納されている情報をデータベースに挿入します。

注記

NDB 8.0.17 以降、このプログラムは実行の終了時に NDBT_ProgramExit: ... を出力しなくなりました。 NDB 8.0.16 以前から NDB 8.0 以降のリリースにアップグレードする場合は、この動作に依存するアプリケーションを適宜変更するようにしてください。

ndb_restore は、バックアップを作成するために使用される START BACKUP コマンド (セクション23.5.8.2「NDB Cluster 管理クライアントを使用したバックアップの作成」を参照してください) によって作成されたバックアップファイルごとに、一度実行する必要があります。 これは、バックアップが作成された時点の、クラスタ内のデータノード数と同じです。

注記

複数のデータノードを並列でリストアしている場合を除き、ndb_restore を使用する前に、クラスタをシングルユーザーモードで実行することをお勧めします。 詳細は、セクション23.5.6「NDB Cluster のシングルユーザーモード」を参照してください。

次のテーブルに、NDB Cluster ネイティブバックアップリストアプログラム ndb_restore に固有のオプションを示します。 追加説明が表のあとにあります。 ほとんどの NDB Cluster プログラム (ndb_restore を含む) に共通のオプションについては、セクション23.4.32「NDB Cluster プログラムに共通のオプション — NDB Cluster プログラムに共通のオプション」 を参照してください。

表 23.40 プログラムで使用されるコマンドライン・オプション ndb_restore

形式 説明 追加、非推奨、または削除された

--allow-pk-changes[=0|1]

テーブルの主キーを構成するカラムセットの変更を許可

追加: NDB 8.0.21

--append

タブ区切りファイルへのデータの追加

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--backup-password=string

--decrypt を使用して暗号化バックアップを復号化するためのパスワードを指定します。許可される値については、ドキュメントを参照してください

追加: NDB 8.0.22

--backup-path=dir_name

バックアップファイルディレクトリへのパス

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--backupid=#,

-b

この ID を持つバックアップからのリストア

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--connect,

-c

--connectstring のエイリアス

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--decrypt

暗号化バックアップを復号化します。--backup-password が必要です

追加: NDB 8.0.22

--disable-indexes

バックアップからのインデックスが無視されます。データのリストアに必要な時間が短縮される可能性があります

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--dont-ignore-systab-0,

-f

リストア中はシステムテーブルを無視しないでください。実験のみで、本番での使用には使用しません

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--exclude-databases=db-list

1 つ以上の除外するデータベースのリスト (指定されていないものを含めます)

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--exclude-intermediate-sql-tables[=TRUE|FALSE]

TRUE (デフォルト) の場合、ALTER TABLE 操作のコピーから残された中間テーブル (接頭辞'#sql-'が付いた名前) をリストアしません

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--exclude-missing-columns

データベースのテーブルのバージョンから欠落しているテーブルのバックアップバージョンのカラムは無視されます

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--exclude-missing-tables

データベースから欠落しているバックアップからのテーブルは無視されます

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--exclude-tables=table-list

除外する 1 つ以上のテーブルのリスト (名前のない同じデータベース内のテーブルを含む)。各テーブル参照にはデータベース名が含まれている必要があります

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--fields-enclosed-by=char

フィールドはこの文字で囲まれています

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--fields-optionally-enclosed-by

フィールドはオプションでこの文字で囲まれます

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--fields-terminated-by=char

フィールドはこの文字で終了

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--hex

バイナリタイプを 16 進形式で出力します

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--ignore-extended-pk-updates[=0|1]

現在拡張主キーに含まれているカラムの更新を含むログエントリを無視

追加: NDB 8.0.21

--include-databases=db-list

1 つ以上のリストアするデータベースのリスト (指定されていないものを除外します)

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--include-stored-grants

共有ユーザーおよび権限を ndb_sql_metadata テーブルにリストア

追加: NDB 8.0.19

--include-tables=table-list

リストアする 1 つ以上のテーブルのリスト (名前のない同じデータベース内のテーブルを除く)。各テーブル参照にはデータベース名を含める必要があります

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--lines-terminated-by=char

行はこの文字で終了

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--lossy-conversions,

-L

バックアップからデータをリストアするときに、カラム値の不可逆変換 (型の昇格または符号の変更) を許可します

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--no-binlog

mysqld が接続され、バイナリロギングを使用している場合は、復元されたデータをログに記録しません

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--no-restore-disk-objects,

-d

ディスクデータに関連するオブジェクトをリストアしません

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--no-upgrade,

-u

VAR データがまだサイズ変更されていない可変サイズ属性の配列タイプをアップグレードせず、カラム属性を変更しません

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--ndb-nodegroup-map=map,

-z

NDBCLUSTER ストレージエンジンのノードグループマップ;構文: リスト (source_nodegroup、destination_nodegroup)

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--nodeid=#,

-n

バックアップが作成されたノードの ID

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--num-slices=#

スライスごとの復元時に適用するスライスの数

追加: NDB 8.0.20

--parallelism=#,

-p

データのリストア中に使用する並列トランザクションの数

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--preserve-trailing-spaces,

-P

固定幅文字列型を可変幅型に昇格するときに、末尾の空白 (パディングを含む) を維持することを許可します

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--print

メタデータ、データおよびログを stdout に出力します (--print-meta --print-data --print-log と同等)

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--print-data

データを stdout に出力します

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--print-log

stdout へのログの出力

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--print-meta

メタデータを stdout に出力します

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--print-sql-log

SQL ログを stdout に書き込みます。デフォルトは FALSE です

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--progress-frequency=#

指定された秒数ごとに復元のステータスを出力

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--promote-attributes,

-A

バックアップからデータをリストアするときに、属性の昇格を許可します

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--rebuild-indexes

バックアップで見つかった順序付けられたインデックスをマルチスレッドで再構築します。使用されるスレッドの数は、BuildIndexThreads の設定によって決定されます

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--remap-column=[db].[tbl].[col]:[fn]:[args]

指定された関数および引数を使用して、指定されたカラムの値にオフセットを適用

追加: NDB 8.0.21

--restore-data,

-r

NDB API を使用してテーブルデータを復元し、NDB Cluster にログイン

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--restore-epoch,

-e

エポック情報をステータステーブルにリストアします。レプリカクラスタでレプリケーションを開始する場合に役立ちます。ID 0 の mysql.ndb_apply_status の行を更新または挿入

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--restore-meta,

-m

NDB API を使用した NDB Cluster へのメタデータの復元

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--restore-privilege-tables

以前 NDB に移動された MySQL 権限テーブルをリストアします

非推奨: NDB 8.0.16

--rewrite-database=olddb,newdb

別の名前のデータベースへのリストア

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--skip-broken-objects

バックアップファイルで欠落している BLOB テーブルを無視

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--skip-table-check,

-s

リストア中にテーブル構造チェックをスキップ

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--skip-unknown-objects

新しい NDB バージョンから古いバージョンにバックアップを復元するときに、ndb_restore で認識されないスキーマオブジェクトを無視

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--slice-id=#

スライス ID(スライス別に復元する場合)

追加: NDB 8.0.20

--tab=dir_name,

-T dir_name

指定されたパスのテーブルごとにタブ区切りの .txt ファイルを作成

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--verbose=#

出力の冗長性レベル

(MySQLに基づくすべてのNDBリリースでサポート 8.0)


このユーティリティーの一般的なオプションを次に示します。

ndb_restore [-c connection_string] -n node_id -b backup_id \
      [-m] -r --backup-path=/path/to/backup/files

通常、NDB Cluster バックアップから復元する場合、ndb_restore には少なくとも --nodeid (短い形式) が必要です: -n)、--backupid (短い形式: -b)、および --backup-path のオプション。

NDB 8.0.19 より前では、ndb_restore を使用して一意のインデックスを含むテーブルを復元した場合、--disable-indexes または --rebuild-indexes を含める必要がありました。 NDB 8.0.19 以降では、自動メタデータ同期が有効になっている場合、これは必要なくなりました。

-c オプションは、クラスタ管理サーバーの場所を ndb_restore に指示する接続文字列を指定するために使用します (セクション23.3.3.3「NDB Cluster 接続文字列」 を参照)。 このオプションを使用しない場合、ndb_restorelocalhost:1186 の管理サーバーに接続を試みます。 このユーティリティーはクラスタ API ノードとして動作するため、クラスタ管理サーバーに接続するための空き接続スロットが必要となります。 これは、クラスタ config.ini ファイル内にそれが使用できる [api] セクションまたは [mysqld] セクションが少なくとも 1 つ存在する必要があることを意味します。 このため、MySQL サーバーまたはほかのアプリケーションに使用されていない空の [api] セクションまたは [mysqld] セクションを、config.ini 内に少なくとも 1 つ用意することをお勧めします (セクション23.3.3.7「NDB Cluster での SQL およびその他の API ノードの定義」を参照してください)。

NDB 8.0.22 以降では、ndb_restore--decrypt および --backup-password を使用して暗号化バックアップを復号化できます。 復号化を実行するには、両方のオプションを指定する必要があります。 暗号化バックアップの作成の詳細は、START BACKUP 管理クライアントコマンドのドキュメントを参照してください。

ndb_restore がクラスタに接続されていることを確認するには、ndb_mgm 管理クライアントで SHOW コマンドを使用します。 システムシェルで次のようにすることでこれを実現することもできます。

shell> ndb_mgm -e "SHOW"

ndb_restore で使用されるすべてのオプションの詳細は、次のリストを参照してください:

エラー報告.  ndb_restore は一時的および永続的エラーの両方を報告します。 一時エラーの場合は、それらからリカバリできる場合があり、そのようなときには「Restore successful, but encountered temporary error, please look at configuration」と報告されます。

重要

ndb_restore を使用して循環レプリケーションで使用する NDB Cluster を初期化したあと、レプリカとして機能する SQL ノード上のバイナリログは自動的に作成されないため、手動で作成する必要があります。 バイナリログを作成させるには、START SLAVE を実行する前に、その SQL ノードで SHOW TABLES ステートメントを発行します。 これは NDB Cluster の既知の問題です。