はじめに
前回の記事で Collection API を使ってインデックスのバックアップを取る方法を説明しました。この記事ではバックアップからのリストアの方法を説明します。
リストアの実行
リストアは以下のように実行します。
$ curl 'http://localhost:8983/solr/admin/collections?action=RESTORE&name=backup1&collection=backup_test2&location=/tmp/solr_backup'
基本パラメータ
| パラメータ | 説明 |
| action | リストアコマンドとして”RESTORE”を指定 |
| name | バックアップの名前 |
| collection | リストア先のコレクション名 |
| location | バックアップ出力先ディレクトリ |
name と location はバックアップのときと同じものを指定します。
設定上書き用のパラメータ
| パラメータ | 説明 |
| collection.configName | configsetを変更 |
| replicationFactor | シャードあたりのレプリカ数を変更 |
| ntrReplicas,tlogReplicas | それぞれの種類のレプリカ数を変更 |
| maxShardsPerNode | ノードあたりの最大シャード数を変更 |
| autoAddReplicas | レプリカの自動追加を許可するかどうかを変更 |
バックアップ/リストアに備えた運用
リストアが実行されると、バックアップ元とは異なるコレクション名で新しいコレクションが作成されます。コレクション名が変更されると外部で参照している箇所にも影響が出てしまうので、Solr のリファレンスではエイリアスの利用を推奨しています。
外部から参照するコレクション名を mycollection とすると、実際のコレクション名を mycollection20190915 という風に付けてエイリアスを mycollection とします。バックアップ→リストアによって新しく mycollection20190920 が作られたら mycollection の実体をそちらに切り替える、という形で運用します。