問題タブ [wiredtiger]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mongodb - MongoDB の「repairDatabase」と「compact」コマンドをレプリカ セットで動作させるにはどうすればよいですか? ダウンタイムもOK
MongoDB スペースの一部を解放する必要があり、コレクションから安全に削除できる 100Gb 以上のドキュメントを特定しました。
したがって、この設定を持つテスト環境からそれらを削除しました。
- mongodb バージョン 3.0.1
- シャーディングなし
- 1 ノード、レプリカなし
- ワイヤードタイガーエンジン
完了すると、ディスク上のスペースがまだ使用されており、再利用する必要があることがわかりました。この投稿を見つけて助けてくれました:両方を実行した後
と
100Gb +を解放しました。
次に、レプリカ ノードが 1 つあったため、設定が異なっていたことを忘れて、本番環境に進みました。
- mongodb バージョン 3.0.1
- シャーディングなし
- 1 つのプライマリ ノード、1 つのレプリカ ノード
- ワイヤードタイガーエンジン
ドキュメントを削除した後、実行します
OKメッセージを受け取りました(しばらくすると、10分+)。走ってみました
このエラーが発生しました:
これは低速のブロッキング操作であるため、アクティブなレプリカ セット プライマリではコンパクトを実行しません。force:true を使用して強制します
だから私たちは走る
OKメッセージを(ほぼ瞬時に)受け取りましたが、スペース上のディスクはまだ使用されており、解放されていません。
repairDatabase
我々は、レプリカ セットでandコマンドを実行するための解決策を探しましcompact
たが、アドバイスはダウンタイムを回避することに重点を置いており、それが唯一の問題であるかのように見えました。ただし、ダウンタイムをスケジュールすることはできますが、スペースが実際に再利用されないため、コマンドが期待どおりに機能しないという問題があります。
私たちは何を間違えましたか?