クラスタの復旧プログラムは個別のコマンドライン
ユーティリティ ndb_restore
として実装されており、通常は MySQL
bin
ディレクトリにあります。このプログラムはバックアップの結果生成されたファイルを読みデータベースに保存された情報を挿入します。
ndb_restore
をバックアップを作成するために使用した
START BACKUP
コマンドにより作成された各バックアップファイルに対し一度実行する必要があります。(項14.8.2. 「バックアップを作成するためのマネジメント
クライアントの使用」
参照).これはバックアップが作成された時点のクラスタのデータ
ノード数の相当します。
注:ndb_restore を使用する前に、並列で複数のデータ ノードを復旧していない限り、クラスタが単一ユーザーモードで動作させることをお勧めします。単一ユーザーモードに関する情報は、項14.7.4. 「単一ユーザーモード」 を参照してください。
このユーティリティの一般的なオプションを以下に示します。
ndb_restore [-cconnectstring
] -nnode_id
[-m] -bbackup_id
-r/path/to/backup/files
-c
オプションは
ndb_restore
にクラスタ
マネジメント
サーバーの位置を知らせる接続文字列を指定するために使用します。(接続文字列に関する情報は、項14.4.4.2. 「クラスタの 接続文字列
」
を参照してください。)このオプションを使用していない場合、ndb_restore
が localhost:1186
のマネジメント
サーバーに接続を試みます。このユーティリティは
API ノードとして機能し、クラスタ
マネジメント
サーバーに接続するにはフリー接続の
「slot」
ガ必要です。このことは少なくとも 1 つの
[API]
あるいは
[MYSQLD]
セクションがあり、クラスタの
config.ini
ファイルで使用できるということです。最低でも
1 つの空の [API]
あるいは
[MYSQLD]
セクションを
この目的のために MySQL
サーバーあるいは他のアプリケーションで使用されていない
config.ini
の持つことはいい考えです(項14.4.4.6. 「SQL および他の API ノードの定義」
参照)。
ndb_restore がクラスタに ndb_mgm マネジメント クライアントの SHOW コマンドを使用して接続されていることを検証できます。この検証を以下のシステム シェルで行うこともできます。
shell> ndb_mgm -e "SHOW"
-n
はバックアップが行われたデータ
ノードのノード ID
を指定するために使用します。
最初に ndb_restore
復旧プログラムを実行する際には、メタデータも復旧する必要があります。換言すれば、データベースのテーブルを再度作成する必要があります—
これはそれを -m
オプションで行うことで実行できます。バックアップを復旧する際にはクラスタに空のデータベースが無ければならないことを忘れないでください。(言い換えれば、復旧を行う前に
ndbd を --initial
で起動する必要があります。またデータ ノード
DataDir
にあるディスク データ
ファイルを手動で削除する必要があります。.)
-b
オプションはバックアップの ID
あるいはシーケンス番号を指定するために使用し、バックアップの完了時に
Backup
メッセージのマネジメント
クライアントに表示される番号を同じです。(項14.8.2. 「バックアップを作成するためのマネジメント
クライアントの使用」
参照。)
backup_id
completed
-r
オプションは必要で、ndb_restore
にバックアップ
ファイルのあるディレクトリの所在を知らせるために使用されます。重要クラスタのバックアップを復旧する際、同じバックアップ
ID を持つバックアップのすべてのデータ
ノードの復旧を確認する必要があります。
作成されたものとは異なる設定のデータベースにバックアップを復旧することができます。例えば、2
および 3
のノード ID を持つ 2
つのデータベース
ノードの持つクラスタで作成されたバックアップ
ID 12
を持つバックアップは、4
つのノードを持つクラスタに保存する必要があります。次に
ndb_restore 2
回実行する必要があります —
バックアップが行われたクラスタの各データベース
ノードに 1
回ずづです。しかし、ndb_restore は
MySQL の 1
つのバージョンで動作しているクラスタで作成されたバックアップを異なる
MySQL
バージョンで動作中のクラスタの常に復旧できるとは限りません。詳細については、項14.5.2. 「クラスタのアップグレードおよびダウングレードの互換性」
をご参照してください。
注:復旧を素早く行いたい場合には、十分な数のクラスタの接続が可能な場合データは並列で復旧できます。つまり、並列で複数のノードに復旧する際、各同時進行の
ndb_restore
プロセスに利用できるクラスタ
config.ini
ファイルに
[API]
あるいは
[MYSQLD]
セクションを持つ必要があります。しかし、データ
ファイルは常にログの前に適用する必要があります。
このプログラムのオプションの完全なリストを以下のテーブルに示します。
長いフォーム | 短いフォーム | Description | デフォルト値 |
--backup-id |
-b |
バックアップ シーケンス ID | 0 |
--backup_path |
該当なし | バックアップ ファイルへのパス | ./ |
--character-sets-dir |
該当なし | 文字セット情報が得られるディレクトリの指定 | 該当なし |
--connect ,
--connectstring 、あるいは
--ndb-connectstring
|
-c あるいは -C
|
接続文字列の設定
[nodeid=
フォーマット |
該当なし |
--core-file |
該当なし | エラーの場合コア ファイルを記述 | TRUE |
--debug |
-# |
デバッグ ログの出力 | d:t:O, |
--dont_ignore_systab_0 |
-f |
復旧の際システム テーブルを無視しない— 試験用で生産用ではありません | FALSE |
--help あるいは--usage
|
-? |
利用可能なオプションと現在の値を含むヘルプ メッセージの表示、そして終了 | [該当なし] |
--ndb-mgmd-host |
None | マネジメント
サーバーの接続のためのホストとポートを
フォーマットに設定。これは
--connect ,
--connectstring 、あるいは
--ndb-connectstring
と同じだが、nodeid の指定はない |
該当無し |
--ndb-nodegroup-map |
-z |
ノード グループのマップの指定 —
構文:リスト
(source_nodegroup ,
destination_nodegroup ) |
該当なし |
--ndb-nodeid |
該当なし | 次にノード ID の指定 ndb_restore プロセス | 0 |
--ndb-optimized-node-selection |
該当なし | トランザクションのノード選択の最適化 | TRUE |
--ndb-shm |
該当なし | 利用可能な場合共有メモリの使用 | FALSE |
--no-restore-disk-objects |
-d |
テーブル スペースやログ ファイル グループなどのディスク データ オブジェクトは復旧しない |
FALSE
(換言すると、このオプションが使用されない場合ディスク
データ オブジェクトを復旧する) |
--nodeid |
-n |
ノードのバックアップ ファイルを指定した ID で使用する | 0 |
--parallelism |
-p |
復旧プロセスで使用される並列トランザクションを 1 ~1024 設定する | 128 |
--print |
該当なし | データとログと次にプリントするstdout
|
FALSE |
--print_data |
該当なし | データと次のプリントするstdout
|
FALSE |
--print_log |
該当なし | ログと次にプリントするstdout
|
FALSE |
--print_meta |
該当なし | メタデータを次にプリントするstdout
|
FALSE |
--restore_data |
-r |
データとログの復旧 | FALSE |
--restore_epoch |
-e |
エポック データをステータス
テーブルに復旧する。適切な場合
ID0 を持つ
cluster.apply_status
の行に挿入あるいは更新されます。—これはレプリケーションを
MySQL Cluster レプリケーション
スレーブで開始する場合に便利です。 |
FALSE |
--restore_meta |
-m |
テーブル メタデータの復旧 | FALSE |
--version |
-V |
バージョン情報を更新して終了 | [該当なし] |
注:ndb_restore
は一時的および永久的なエラーをレポートします。一時的なエラーの場合、そのエラーから回復することができる場合があります。MySQL
5.1.12 以降では、そのような場合、Restore
successful, but encountered temporary error, please look at
configuration
のようにレポートされます。