Alibaba Cloud Elasticsearch では、クラスターの共有オブジェクトストレージサービス(OSS)リポジトリを構成できます。このようにして、リポジトリに保存されている自動スナップショットからクラスターにデータを復元できます。たとえば、2 つの Elasticsearch V6.7.0 クラスター es-cn-a と es-cn-b があるとします。 es-cn-a クラスターでは自動スナップショット機能が有効になっており、クラスターの自動スナップショットが作成されます。スナップショット内のデータを es-cn-b クラスターに復元する場合、スナップショットを保存する OSS リポジトリを es-cn-b クラスターの共有 OSS リポジトリとして構成できます。
背景情報
Alibaba Cloud Elasticsearch クラスターのデータのバックアップと復元は、elasticsearch-repository-oss プラグインに依存します。このプラグインは、Alibaba Cloud Elasticsearch クラスターにデフォルトでインストールされており、削除することはできません。このプラグインの詳細については、elasticsearch-repository-oss をご参照ください。
前提条件
ソースとデスティネーションの Elasticsearch クラスターは、次の要件を満たしている必要があります。
クラスターは同じリージョンに存在します。
クラスターは同じ Alibaba Cloud アカウントに属しています。
ソースクラスターのバージョンは、デスティネーションクラスターのバージョンと同じかそれ以前です。
ソースクラスターとデスティネーションクラスターのバージョンがどちらも Standard Edition の V6.7.0 の場合、クラスターには最新のカーネルを使用する必要があります。または、デスティネーションクラスターのカーネルバージョンがソースクラスターのカーネルバージョンよりも後である必要があります。
重要Elasticsearch クラスターは、同じバージョンまたはそれ以前のバージョンの Elasticsearch クラスターのリポジトリのみを使用できます。
クラスターが以前のバージョンのクラスターのリポジトリを使用する場合、クラスターは以前のバージョンのクラスターのデータ形式と互換性がない可能性があります。たとえば、1 つのドキュメントタイプのみを持つインデックスを、Elasticsearch V5.5.3 クラスターのリポジトリのスナップショットから Elasticsearch V6.7.0 クラスターに復元できます。ただし、複数のドキュメントタイプを持つインデックスを Elasticsearch V5.5.3 クラスターのリポジトリのスナップショットから Elasticsearch V6.7.0 クラスターに復元すると、エラーが発生する可能性があります。これは、Elasticsearch V6.7.0 クラスターが複数のドキュメントタイプを持つインデックスをサポートしていないためです。
共有 OSS リポジトリを追加する
Alibaba Cloud Elasticsearch コンソール にログインします。
左側のナビゲーションペインで、[elasticsearch クラスター] をクリックします。
目的のクラスターに移動します。
上部のナビゲーションバーで、クラスターが属するリソースグループとクラスターが存在するリージョンを選択します。
[elasticsearch クラスター] ページで、クラスターを見つけて ID をクリックします。
表示されるページの左側のナビゲーションペインで、[データバックアップ] をクリックします。
[共有 OSS リポジトリ] セクションで、[今すぐ作成] をクリックします。
説明共有 OSS リポジトリを初めて追加する場合以外は、[共有リポジトリの作成] をクリックします。
[共有リポジトリの作成] ダイアログボックスで、Elasticsearch クラスターを選択します。
重要選択したクラスターは、上記の要件を満たしている必要があります。
[OK] をクリックします。
共有リポジトリが追加されると、現在のページに、リポジトリを所有するクラスターとリポジトリの状態が表示されます。
重要システムは、選択した Elasticsearch クラスターに基づいてリポジトリリストを取得します。クラスターが構成を更新している場合、異常な状態である場合、または負荷が高い場合は、システムがリポジトリリストの取得に失敗する可能性があります。このエラーが発生した場合は、クラスターの Kibana コンソールにログインし、
GET _snapshot
コマンドを実行して、すべてのリポジトリのエンドポイントを取得できます。インデックスを復元します。
共有 OSS リポジトリは、Elasticsearch クラスター間でデータを共有するためにのみ使用されます。システムは、共有 OSS リポジトリからクラスターにデータを直接復元することはできません。 Elasticsearch クラスターにインデックスを復元する場合は、クラスターの Kibana コンソールで関連コマンドを実行します。たとえば、file-2019-08-25 インデックスを es-cn-a クラスターから復元するには、次の手順を実行します。
インデックスを復元する Elasticsearch クラスターの Kibana コンソールにログインします。
詳細については、「Kibana コンソールにログインする」をご参照ください。
説明この例では、Elasticsearch V6.7.0 クラスターを使用しています。他のバージョンのクラスターでの操作は異なる場合があります。コンソールでの実際の操作が優先されます。
左側のナビゲーションペインで、[dev Tools] をクリックします。
表示されるページの [コンソール] タブで、次のコマンドを実行して、es-cn-a クラスターのリポジトリにあるすべてのスナップショットの情報をクエリします。
GET /_cat/snapshots/aliyun_snapshot_from_es-cn-a?v
コマンドは、リポジトリ内のすべてのスナップショットに関する情報を返します。
説明aliyun_snapshot_from_es-cn-a は、「共有 OSS リポジトリを追加する」で追加された共有リポジトリの名前です。
返された情報に基づいて、スナップショットからインデックスを復元します。
重要インデックスを復元する前に、デスティネーションクラスターに同じ名前のインデックスがないことを確認してください。デスティネーションクラスターに同じ名前のインデックスがある場合は、そのインデックスが無効になっていることを確認してください。インデックスが有効になっていると、インデックスの復元中にエラーが発生します。
ピリオド(
.
)で始まる名前のインデックスはシステムインデックスです。これらのインデックスは復元しないことをお勧めします。これらのインデックスを復元すると、Kibana コンソールにアクセスできなくなる可能性があります。
単一のインデックスを復元する
POST _snapshot/aliyun_snapshot_from_es-cn-a/es-cn-a_20190705220000/_restore // 単一のインデックスを復元するためのコマンド
複数のインデックスを復元する
POST _snapshot/aliyun_snapshot_from_es-cn-a/es-cn-a_20190705220000/_restore // 複数のインデックスを復元するためのコマンド
ピリオド(
.
)で始まる名前のインデックス以外のすべてのインデックスを復元するPOST _snapshot/aliyun_snapshot_from_es-cn-a/es-cn-a_20190705220000/_restore // システムインデックス以外のすべてのインデックスを復元するためのコマンド