2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

mongoDB のレプリカセットをスタンドアローンに戻す方法

Last updated at Posted at 2019-07-01

スタンドアローンのサーバをレプリカセットに登録する方法はドキュメントに書いてあったんですが、その逆のレプリカセットの設定を削除する方法が載っていなかったので、ここにまとめておこうと思います。

mongod.conf からレプリカセットの設定を削除

レプリカセットを構築する時に書いた replication.replSetName の項目を削除します。また、もし net.bindIp をフルオープンにしていた場合(本当はちゃんと制限した方がよいです)、その設定も元に戻しましょう。コメントアウトしてる場合もあると思うので、その場合はコメントアウトを外しましょう。

$ sudo vim /etc/mongod.conf
net:
  # bindIp: 127.0.0.1  # Listen to local interface only, comment to listen on all interfaces.

replication:
  replSetName: "hoge"

ここで sudo service mongod restart をして mongo を実行すると以下のような警告が出ます。

** WARNING: mongod started without --replSet yet 1 documents are present in local.system.replset
**          Restart with --replSet unless you are doing maintenance and  no other clients are connected.
**          The TTL collection monitor will not start because of this.

これは local というデータベースの中にレプリカセットの設定が残っているのが原因です。なので、 local をふっとばしましょう。

local を db.dropDatabase()

> use local;
> db.dropDatabase();
{ "dropped" : "local", "ok" : 1 }

これで OK です(こわ)。

mongod を再起動

最後に mongod を再起動して終了です。

$ sudo service mongod restart
Stopping mongod:                                           [  OK  ]
Starting mongod:                                           [  OK  ]

再起動を含むので本番環境でこれをやるのは避けたいところです。メンテモードに移行してから実行した方が安全ですね。不要になった SECONDARY や ARBITER のサーバを落としておくのも忘れないようにしたいです。

参考文献

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?