DBAtlas · データベース運用アトラス

メンバーをゼロから再同期する

MongoDBレプリカセット

コマンド

// On the SECONDARY to be resynced (NEVER on the PRIMARY):
db.getSiblingDB("admin").shutdownServer()
// At the OS level: empty the dbPath contents (or move them elsewhere as a backup)
// and restart mongod with the same configuration; the member starts an initial sync automatically.
// Monitor progress (stateStr: STARTUP2 -> SECONDARY):
rs.status()

概要

MongoDB には独立した resync コマンドはない。セカンダリを停止し、データディレクトリを空にして再起動すると、プライマリ (または同期ソース) からの新しい初期同期が開始される。

使用する場面

メンバーが大きく遅れて oplog ウィンドウの外に出た場合 (RECOVERING / too stale)、またはデータに不整合が生じた場合。

注意

メンバー上のすべてのローカルデータが削除されて再取得されるため、セカンダリでのみ実施し、過半数が稼働し続けることを確認する。同期時間とネットワーク / ディスク負荷は大きい。非常に大きなデータセットでは、正常なメンバーのファイルシステムスナップショットからシードする方が速い。

DBAtlas で開く →

関連項目