stateStrが突如「RECOVERING」のまま動かないとか
「STARTUP2」のまま何も始まらない
というときにとりあえず同じデータのまま再度レプリカセット構成でサービスを再開したい
というどうしようもないときには使えそうなのでメモしておきます
「STARTUP2」のまま何も始まらない
というときにとりあえず同じデータのまま再度レプリカセット構成でサービスを再開したい
というどうしようもないときには使えそうなのでメモしておきます
■環境
CentOS 6.3
mongo 2.4.5
※2台構成(host001, host002)の5ノード構成(20001から20005)で1台がスレーブ1台がバックアップ用途とする
mongo 2.4.5
※2台構成(host001, host002)の5ノード構成(20001から20005)で1台がスレーブ1台がバックアップ用途とする
■手順
- レプリカセットとして動作しているノードを全て停止 kill or db.shutdownServer()で停止します
- PRIMARYとして動作させたいノード配下のデータ以外すべて削除する(ノード用の空ディレクトリだけ残しておく) EX) node01はデータあり、node02,03,04,05は空ディレクトリだけ用意
- PRIMARY用のノードディレクトリ配下のlocal.*をすべて削除する EX) node01配下のlocal.*ファイルを削除する(もしくは避ける)
- 全ノード起動(この時点でreplicaset構成が解消されている)
- mongo --port 20001 PRIMARYにしたいノードに対してmongoコマンドで対話形式になる
- cfg={ "_id":"rs1", "version":1, "members":[ { "_id":1, "host":"host001:20001" }, { "_id":2, "host":"host001:20002" }, { "_id":3, "host":"host001:20003" }, { "_id":4, "host":"host002:20004", "votes":0, "priority":0, "slaveDelay":3600 }, { "_id":5, "host":"host002:20005", "votes":0, "priority":0 } ] } cfgを作成
- rs.initiate(cfg) レプリカセットを再構成する
もうどうすることもできなくなったらやってみてください
0 件のコメント:
コメントを投稿