3

私は現在、mongosサーバー、構成サーバー、およびそれぞれ3つのmongod(マスタースレーブ)サーバーの2つのシャードを備えたmongoDBセットアップを持っています。それらをシャットダウンするときに、キューに入れられているデータが失われないように、またはサーバーが書き込み先のシャードを決定している間などに、それらがクリーンにシャットダウンされるようにしたいと思います。

MongoDBサーバーのクラスターをシャットダウンするための現在のベストプラクティスは何ですか?

シャットダウンするのに最適な順序、fsyncの発行、ロックの書き込みなど。

これを自動化して、バックアップや新しいコードのプッシュなど、データベースを一貫性のある状態にする必要があるものを簡単に作成するためのスクリプトを作成したいと思います。

4

1 に答える 1

3

これらのベストプラクティスはまだ実際に解決されています。

これがセットアップで、サーバーのメンテナンスを行う方法です。

バックアップ

各レプリカセットで非プライマリを検索します。fsync&lockを実行します。コピー、tar、バックアップ。DBのロックを解除します。

レプリカセットでこれを正常に実行できるはずです。本当に心配な場合は、fsyncとlockを実行してから、シャットダウンすることができます。

圧縮

おそらく、ある時点でデータを圧縮したいと思うでしょう。これを行う最も簡単な方法は、fsyncとlockを実行してから、db.repairDatabase()を実行することです。修復コマンドは基本的に「デフラグ/圧縮」を行います。上記のように、これはシャットダウンによってダウンすることもあります。

コードプッシュ

理想的には、コードプッシュに関して一貫している必要があるものはほとんどありません。最悪の場合、インデックスの作成/削除を管理する必要があります。ただし、開発者が本番DBにランダムにインデックスを追加するだけでは不十分なため、これは実際には個別に管理する必要があります。

モニタリング

これはかなり複雑なトピックですが、「マスター」、「各ノードの書き込みスループット」、「使用しているRAMの量」、「データの移動量」などに注意する必要があります。ノード」。現在、これを行うためのツールは限られているので、自分で作成することを期待してください。

于 2010-12-02T20:51:39.230 に答える