Alibaba Cloud Elasticsearch (ES) が提供する 共有 OSS リポジトリを使用すると、Elasticsearch インスタンス間でデータを復元するのに役立ちます。

このタスクについて

Elasticsearch インスタンスの共有 OSS リポジトリで自動的に作成されたスナップショットを別の Elasticsearch インスタンスに復元できます。

たとえば、2 つの Elasticsearch V6.7.0 インスタンスを作成したとします。 インスタンス ID は es-cn-a および es-cn-b です。 インスタンス es-cn-a で自動スナップショットを有効にし、スナップショットを自動的に作成しました。 インスタンス es-cn-a のスナップショットをインスタンス es-cn-b に復元するには、 共有 OSS リポジトリ を使用する必要があります。

互換性

  • 共有 OSS リポジトリを使用して Elasticsearch インスタンスで作成されたスナップショットを別の Elasticsearch インスタンスに復元するには、両方のインスタンスが同じユーザーアカウントによって作成され、同じリージョンにデプロイされていることを確認する必要があります。
  • 2 つの異なる Elasticsearch バージョンを使用する 2 つの Elasticsearch インスタンスの場合、新しいバージョンは以前のバージョンのリポジトリを使用できます。 以前のバージョンでは、新しいバージョンのリポジトリは使用できません。
    重要 新しいバージョンが以前のバージョンのリポジトリを使用する場合、以前のバージョンのデータ形式をサポートしない場合があります。 たとえば、Elasticsearch V5.5.3 インスタンスから Elasticsearch V6.7.0 インスタンスには、 1 つのドキュメントタイプのみを含むインデックスを復元できます。 ただし、Elasticsearch V5.5.3 インスタンスから Elasticsearch V6.7.0 インスタンスに複数のドキュメントタイプを含むインデックスを復元すると、復元エラーが発生する場合があります。 これは、Elasticsearch V6.7.0 が複数のドキュメントタイプを含むインデックスをサポートしていないためです。 したがって、データを復元する前にテストを実行することを推奨します。

共有 OSS リポジトリを追加する

  1. Alibaba Cloud Elasticsearch コンソールにログインし、 [インスタンス ID/名前] > [スナップショット] を選択します。
  2. [共有 OSS リポジトリ]セクションで、 [今すぐ追加] をクリックします。
    共有 OSS リポジトリを追加する
  3. [共有リポジトリの追加] ダイアログボックスで、Elasticsearch インスタンスを選択します。 次に、システムはインスタンスの共有リポジトリを作成します。
    共有リポジトリの追加ページ
    重要 選択したインスタンスバージョンは、現在のインスタンスバージョンと互換性がある必要があります。 詳細については、「互換性」をご参照ください。
  4. [OK] をクリックします。
    共有リポジトリが追加されると、現在のページにリポジトリを所有するインスタンスとリポジトリのステータスが表示されます。共有リポジトリが正常に追加されました。
    重要
    • 共有リポジトリには、 [有効][無効] の 2 つのステータスがあります。 [有効] ステータスは、リポジトリが使用可能であることを示します。 [無効] ステータスは、指定されたインスタンスまたはリポジトリが存在しないことを示します。
    • システムは、Elasticsearch インスタンスを使用して、リポジトリリストを取得します。 インスタンスの設定を更新中、インスタンスのステータスが正常でない場合、またはインスタンスのワークロードが高い場合、システムはリポジトリリストの取得に失敗する可能性があります。 このエラーが発生した場合、Kibana コンソールにログインし、 GET _snapshot リクエストを送信して、すべてのリポジトリのエンドポイントを取得できます。

インデックスを復元する

共有 OSS リポジトリは、2 つのElasticsearch インスタンス間でデータを共有するためにのみ使用されます。 データの復元には役立ちません。 インデックスデータを復元する必要がある場合は、対応する API リクエストを Kibana コンソールから送信します。

たとえば、Kibana コンソールから次のリクエストを送信して、インスタンス es-cn-a からインデックスファイル 2019-08-25 を復元します。

  1. リポジトリ内のすべてのスナップショットに関する情報を照会します。
    GET /_cat/snapshots/aliyun_auto_snapshot_from_a? v
    リクエストは、リポジトリ内のすべてのスナップショットに関する情報を返します。リポジトリ内のすべてのスナップショットに関する情報
  2. 返されたスナップショット情報に従って、スナップショットのインデックスを復元します。
    重要 インデックスを復元する前に、インデックスの復元先のノードに同じ名前のインデックスがないことを確認する必要があります。 ノードに同じ名前のインデックスがある場合は、インデックスのステータスが [close] であることを確認してください。 インデックスのステータスが  [open] の場合、ノードにインデックスを復元するとエラーが発生します。
    POST _snapshot/aliyun_snapshot_from_es-cn-a/es-cn-a_20190705220000/_restore 
     {"indices": "file-2019-08-25"}
    POST _snapshot/aliyun_snapshot_from_es-cn-a/es-cn-a_20190705220000/_restore
     {"indices": "kibana_sample_data_ecommerce,kibana_sample_data_logs"}