5

マスターとスレーブの2 つのサーバーでsolr 3.6 レプリケーションを使用しており、現在、クリーン バックアップを行う方法を探しています。

ウィキがそう言っているように、HTTP コマンドを使用して、次のようにマスターのスナップショットを作成できます。http://myMasterHost/solr/replication?command=backup

しかし、まだいくつか質問があります。

  • backupインデックス ファイルをコピーする従来のシェル スクリプトでのコマンドの利点は何ですか?

  • このコマンドはインデックスのみをバックアップします。spellcheckerフォルダもコピーできますか?それは必要ですか?

  • アプリケーションの実行中、つまり潜在的なインデックスの更新がある間にスナップショットを作成できますか?

  • サーバーをバックアップから復元する必要がある場合、スレーブで何をする必要がありますか?
    • スナップショットをインデックス フォルダーにコピーし、replication.propertiesファイルを削除する (または削除しない) だけですか?
    • HTTP コマンドで fetchindex を要求しますhttp://mySlave/solr/replication?command=fetchindexか?
    • マスターからの完全なレプリケーションを強制するために、スレーブ インデックス フォルダーを空にするだけですか?
4

1 に答える 1

3

ReplicationHandlerbackupが提供するコマンドを使用できます。これは非同期操作であり、インデックスが大きい場合は時間がかかります。このようにして、Solrをシャットダウンする必要はありません。次に、インデックスディレクトリ内に、バックアップ日付という名前の新しいディレクトリがあります。保持する古いバックアップの数を構成することもできます。backup.yyyymmddHHMMSS

もちろん、その後はバックアップを安全な場所、おそらく別のサーバーに移動する方がよいでしょう。

スペルチェッカーをバックアップすることは不可能だと思いますが、完全にはわかりません。

もちろん、コマンドはアプリケーションの実行中に実行されることを意図しています。唯一の問題は、バックアップ自体を開始した後にコミットしたドキュメントがバックアップで失われる可能性があることです。

luceneCheckIndexツールもご覧ください。インデックスをバックアップしたら、インデックスに問題がないかどうかを確認できます。

マスターに適切なインデックスがすでにある場合は、バックアップを個人的に使用してスレーブのインデックスを復元することはありません。インデックスのコピーは、標準のレプリケーションプロセス(実際にはインデックスセグメントのコピー)を使用して自動的に行われます。バックアップにマスターよりも優れたデータが含まれていない限り、手動でコピーする必要はありません。

于 2012-08-30T08:04:28.283 に答える