特定時点へのバックアップの復元
特定時点の復元では、コミット・ログ・アーカイブを使用し、OpsCenterを使用してバックアップから特定の日時のデータを復元します。
特定時点の復元の場合、OpsCenterは、クラスターを復元する日時に基づいて、どのスナップショットとコミット・ログから復元するかをインテリジェントに選択します。スナップショットとコミット・ログの使用可能な組み合わせが見つからない場合、復元は失敗します。詳細なエラー・メッセージがOpsCenter UIの[Activity]セクションに表示されます。
- システム・キースペースのみを含むスナップショットを復元することはできません。復元するスナップショットには、システムと非システム・キースペースの両方が含まれているか、非システム・キースペースのみが含まれている必要があります。
- テーブル定義を含まないスナップショットを復元することはできません。
- スナップショットを十分なディスク領域がない場所に復元すると失敗します。復元レポートには、十分な領域がないノードと、復元を正常に行うために必要な領域が表示されます。予防措置の詳細とヒントについては、「バックアップを復元するための十分なディスク領域の監視」を参照してください。
- OpsCenterは、インデックスのバックアップを行いません。そのため、復元後に、DSEでインデックスを再計算する必要があります。
dse-env.sh
dse-env.shファイルのデフォルトの場所は、インストールのタイプによって異なります。パッケージ・インストール | /etc/dse/dse-env.sh |
tarボール・インストール | installation_location/bin/dse-env.sh |
始める前に
特定時点の復元を行うには、コミットログ・バックアップを有効にし、復元する日時の前に少なくとも1つのスナップショット・バックアップを完了している必要があります。
既知の制限事項
- 実際の特定時点の復元の期間中にテーブルが再作成されると、特定時点の復元は失敗します。
手順
- をクリックします。
- Backup Service(バックアップ・サービス)の[Details]リンクをクリックします。
-
[Restore Backup]をクリックします。
[Restore from Backup]ダイアログの[Step 1 of 2: Select Backup]が表示されます。
-
[Point In Time]タブをクリックします。
-
以下の選択を行います。
-
[Keyspaces and Graphs]で、復元するテーブルまたはグラフを選択します。
- すべてのキースペースまたはすべてのグラフを復元するには、[All Keyspaces]または[All Graphs]をクリックします。
- キースペース内のすべてのテーブルまたはすべてのグラフを含めるには、キースペース名またはグラフ名をクリックします。
- 特定のテーブルまたはグラフを選択するには、キースペース名またはグラフ名を展開し、バックアップする特定のテーブルまたはグラフ名を選択します。
注: DSE 6.0.0~6.0.4については、[Use sstableloader]を選択しないでDSE Graphをバックアップする場合、すべてのデータを使用できるように、DSEを再起動する必要があります。 -
[Location]で、復元するデータのターゲット・クラスターを選択します。
- [Location]リストは、複数のクラスターがあり、両方のクラスターが同じOpsCenterインスタンスで管理されている場合にのみ表示されます。
- バックアップしたクラスターとは異なるクラスターを選択すると、選択したクラスターにデータが複製されます。「クラスター・データの複製」を参照してください。
注: 暗号化キーが同一でない限り(通常は同一ではない)、暗号化されたテーブルを別のクラスターに復元しても正しく動作しません。 - オプション:
データを復元する前に既存のキースペース・データを削除するには、[Truncate/delete existing data before restore]を選択します。これによって、復元するキースペースに対し、クラスター内の更新データが完全に削除されます。
注: 既存データのトランケートまたは削除をしないオプションは、復元にsstableloaderを使用する場合にのみ、選択できます。sstableloaderを使用しない場合は、既存のデータをトランケートまたは削除するオプションがデフォルトで選択されます。
-
ネットワークの過負荷を防ぐには、[Throttle DSE stream throughput at ____ MB]オプションを選択し、復元の最大転送速度を設定します。
注: このオプションに値を入力するには、[Use sstableloader]を選択する必要があります。そうでない場合、転送速度の値は無視されます。
- オプション:
外部データをクラスターに一括して読み込むには、[Use sstableloader]を選択します。
注: Sstableloaderを使用すると、元のトポロジーにかかわらず、データがクラスターに復元されます。 速度およびパフォーマンスは低下します。階層化ストレージを使用するクラスターに復元するには、sstableloaderを使用する必要があります。詳細については、「sstableloader」を参照してください。
バックアップから復元するとき、復元が失敗した場合でも成功したとOpsCenterで報告される可能性があります。この動作は、新しいデータ・ディレクトリーにSSTableをコピーし、その後に
nodetool refresh
を実行する場合に発生する可能性があります。復元が失敗したかどうかを判断するには、DataStax エージェント・ログで、"Error copying sstables to data dir:"
を示す文字列を検索します。この問題に関係あるのは、OpsCenter 6.7.0のみです。 - オプション:
必要に応じて、address.yamlの
backup_staging_directory
構成オプションを設定し、ステージング・ディレクトリーを変更します。 - オプション: ローリング再起動の設定を調整するには、[Edit Restart Settings]リンクをクリックします。デフォルトでは、各ノードの復元後、60秒間停止します。特定時点の復元では、すべてのノードのローリング再起動が必要になります。
- [Restore Backup]をクリックします。
- 必須:
[Restore Backup]をクリックします。
[Confirm Restore]ダイアログが表示されます。
警告: ストリーム出力をスロットルするための値を設定していない場合、スロットルされていない復元の影響を示す警告メッセージが表示されます。以下のいずれかのアクションを実行します。- [Cancel]をクリックして[Restore from Backup]ダイアログでスロットル値を設定します。
- cassandra.yaml(
stream_throughput_outbound_megabits_per_sec
およびinter_dc_stream_throughput_outbound_megabits_per_sec
)の値を設定します。 - ネットワークのボトルネック発生のリスクを承知した上で続行します。
- プロンプトが表示されたら確認し、[Start Restore]をクリックします。
タスクの結果
OpsCenterはバックアップ・データを取得し、そのデータをクラスター内のノードに送信します。通常のスナップショットの復元と同じプロセスに従って、スナップショットの復元が最初に完了します。スナップショットの復元が正常に完了すると、OpsCenterはすべてのエージェントに並列処理で必要なコミット・ログをダウンロードし、その後にクラスター全体でコミット・ログのリプレイをローリングするよう指示します。各ノードはリプレイ用に構成され、前のノードが正常に終了した後に再起動されます。
テーブルのサブセットに対する特定時点の復元中にエラーが発生した場合は、一部のクラスター・ノードに行った変更を手動で戻す必要がある場合があります。ノードをクリーンアップするには、dse-env.sh を編集し、JVM_OPTS
を指定する最後の行を削除します。例を次に示します。
export JVM_OPTS="$JVM_OPTS -Dcassandra.replayList=Keyspace1.Standard1"