特定時点へのバックアップの復元

特定時点の復元では、コミット・ログ・アーカイブを使用し、OpsCenterを使用してバックアップから特定の日時のデータを復元します。

特定時点の復元の場合、OpsCenterは、クラスターを復元する日時に基づいて、どのスナップショットとコミット・ログから復元するかをインテリジェントに選択します。スナップショットとコミット・ログの使用可能な組み合わせが見つからない場合、復元は失敗します。詳細なエラー・メッセージがOpsCenter UIの[Activity]セクションに表示されます。

重要: Backup Service(バックアップ・サービス)は、デスティネーションの場所のデータと構造を制御する必要があります。バックアップ・デスティネーションは、OpsCenterのみが使用するものとします。これらのデスティネーションに他のディレクトリーやファイルを追加すると、Backup Service(バックアップ・サービス)がバックアップ操作または復元操作を適切に実行できなくなる可能性があります。
注: バックアップの作成と復元を行う場合、以下の点に注意してください。
  • システム・キースペースのみを含むスナップショットを復元することはできません。復元するスナップショットには、システムと非システム・キースペースの両方が含まれているか、非システム・キースペースのみが含まれている必要があります。
  • テーブル定義を含まないスナップショットを復元することはできません。
  • スナップショットを十分なディスク領域がない場所に復元すると失敗します。復元レポートには、十分な領域がないノードと、復元を正常に行うために必要な領域が表示されます。予防措置の詳細とヒントについては、「バックアップを復元するための十分なディスク領域の監視」を参照してください。
  • OpsCenterは、インデックスのバックアップを行いません。そのため、復元後に、DSEでインデックスを再計算する必要があります。

dse-env.sh

dse-env.shファイルのデフォルトの場所は、インストールのタイプによって異なります。
パッケージ・インストール /etc/dse/dse-env.sh
tarボール・インストール installation_location/bin/dse-env.sh

始める前に

特定時点の復元を行うには、コミットログ・バックアップを有効にし、復元する日時の前に少なくとも1つのスナップショット・バックアップを完了している必要があります。

重要: 特定時点の復元を実行する場合、バックアップ後にクラスター・トポロジーを変更しないでください。トポロジーが変更されたクラスターで特定時点の復元を実行しようとすると、失敗します。クラスター・トポロジーを変更する前に、スナップショット・バックアップを実行することを推奨します。その場合、そのバックアップに基づいてクラスターを復元できます。

既知の制限事項

  • 実際の特定時点の復元の期間中にテーブルが再作成されると、特定時点の復元は失敗します。

手順

  1. クラスター名 > [Services]をクリックします。
  2. Backup Service(バックアップ・サービス)の[Details]リンクをクリックします。
  3. [Restore Backup]をクリックします。
    [Restore from Backup]ダイアログの[Step 1 of 2: Select Backup]が表示されます。
  4. [Point In Time]タブをクリックします。

  5. 以下の選択を行います。
    1. 必須: 特定時点:データを復元する日時を設定します。
    2. 必須: コミット・ログの場所:コミット・ログの場所を、サーバー内、ローカル・ファイル・システム、またはサポートされているクラウドのいずれかから選択します。コミット・ログの場所は、コミット・ログ・バックアップが有効になっている場合に構成します。
    3. 必須: バックアップ場所:スナップショットの場所を、サーバー内、ローカル・ファイル・システム、またはサポートされているクラウドのいずれかから選択します。別の場所を追加するには、[+場所の追加]リンクをクリックします。
    4. [Next]をクリックします。
      [Restore from Backup]ダイアログの[Step 2 of 2: Configure and Restore]が表示されます。

      Step 2 of 2: Configure and Restore(PIT)、[Restore from Backup]ダイアログ、使用不能な場所

  6. [Keyspaces and Graphs]で、復元するテーブルまたはグラフを選択します。
    • すべてのキースペースまたはすべてのグラフを復元するには、[All Keyspaces]または[All Graphs]をクリックします。
    • キースペース内のすべてのテーブルまたはすべてのグラフを含めるには、キースペース名またはグラフ名をクリックします。
    • 特定のテーブルまたはグラフを選択するには、キースペース名またはグラフ名を展開し、バックアップする特定のテーブルまたはグラフ名を選択します。
    注: DSE 6.0.0~6.0.4については、[Use sstableloader]を選択しないでDSE Graphをバックアップする場合、すべてのデータを使用できるように、DSEを再起動する必要があります。
  7. [Location]で、復元するデータのターゲット・クラスターを選択します。
    • [Location]リストは、複数のクラスターがあり、両方のクラスターが同じOpsCenterインスタンスで管理されている場合にのみ表示されます。
    • バックアップしたクラスターとは異なるクラスターを選択すると、選択したクラスターにデータが複製されます。「クラスター・データの複製」を参照してください。
    注: 暗号化キーが同一でない限り(通常は同一ではない)、暗号化されたテーブルを別のクラスターに復元しても正しく動作しません。
  8. オプション: データを復元する前に既存のキースペース・データを削除するには、[Truncate/delete existing data before restore]を選択します。これによって、復元するキースペースに対し、クラスター内の更新データが完全に削除されます。
    注: 既存データのトランケートまたは削除をしないオプションは、復元にsstableloaderを使用する場合にのみ、選択できます。sstableloaderを使用しない場合は、既存のデータをトランケートまたは削除するオプションがデフォルトで選択されます。
  9. ネットワークの過負荷を防ぐには、[Throttle DSE stream throughput at ____ MB]オプションを選択し、復元の最大転送速度を設定します。
    注: このオプションに値を入力するには、[Use sstableloader]を選択する必要があります。そうでない場合、転送速度の値は無視されます。
  10. オプション: 外部データをクラスターに一括して読み込むには、[Use sstableloader]を選択します。
    注: Sstableloaderを使用すると、元のトポロジーにかかわらず、データがクラスターに復元されます。 速度およびパフォーマンスは低下します。階層化ストレージを使用するクラスターに復元するには、sstableloaderを使用する必要があります。詳細については、「sstableloader」を参照してください。

    バックアップから復元するとき、復元が失敗した場合でも成功したとOpsCenterで報告される可能性があります。この動作は、新しいデータ・ディレクトリーにSSTableをコピーし、その後にnodetool refreshを実行する場合に発生する可能性があります。復元が失敗したかどうかを判断するには、DataStax エージェント・ログで、"Error copying sstables to data dir:"を示す文字列を検索します。この問題に関係あるのは、OpsCenter 6.7.0のみです。

  11. オプション: 必要に応じて、address.yamlbackup_staging_directory構成オプションを設定し、ステージング・ディレクトリーを変更します。
  12. オプション: ローリング再起動の設定を調整するには、[Edit Restart Settings]リンクをクリックします。デフォルトでは、各ノードの復元後、60秒間停止します。特定時点の復元では、すべてのノードのローリング再起動が必要になります。
  13. [Restore Backup]をクリックします。
  14. 必須: [Restore Backup]をクリックします。

    [Confirm Restore]ダイアログが表示されます。

    [Confirm restore operation]ダイアログ
    警告: ストリーム出力をスロットルするための値を設定していない場合、スロットルされていない復元の影響を示す警告メッセージが表示されます。以下のいずれかのアクションを実行します。
    • [Cancel]をクリックして[Restore from Backup]ダイアログでスロットル値を設定します。
    • cassandra.yamlstream_throughput_outbound_megabits_per_secおよびinter_dc_stream_throughput_outbound_megabits_per_sec)の値を設定します。
    • ネットワークのボトルネック発生のリスクを承知した上で続行します。
    ヒント: LCMを使用してDSEクラスター構成を管理している場合は、そのクラスターの構成プロファイルcassandra.yamlのクラスター通信設定を更新して、構成ジョブを実行します。ストリーム・スループット(データ・センター間ではない)は、LCMのデフォルトで200に設定されています。

    LCMのスロットル・オプションの更新

  15. プロンプトが表示されたら確認し、[Start Restore]をクリックします。

タスクの結果

OpsCenterはバックアップ・データを取得し、そのデータをクラスター内のノードに送信します。通常のスナップショットの復元と同じプロセスに従って、スナップショットの復元が最初に完了します。スナップショットの復元が正常に完了すると、OpsCenterはすべてのエージェントに並列処理で必要なコミット・ログをダウンロードし、その後にクラスター全体でコミット・ログのリプレイをローリングするよう指示します。各ノードはリプレイ用に構成され、前のノードが正常に終了した後に再起動されます。

テーブルのサブセットに対する特定時点の復元中にエラーが発生した場合は、一部のクラスター・ノードに行った変更を手動で戻す必要がある場合があります。ノードをクリーンアップするには、dse-env.sh を編集し、JVM_OPTSを指定する最後の行を削除します。例を次に示します。

export JVM_OPTS="$JVM_OPTS -Dcassandra.replayList=Keyspace1.Standard1"