MongoDBのクラスタ内のすべての仮想マシンが再起動--replSet RS2パラメータを使用して停止した後。ステータスを表示するためのmongoシェルは後でも行き、
RS1:その他> rs.status() { "operationTime":タイムスタンプ(1559293558、1)、 "OK":0、 "ERRMSG": "我々のレプリカセットの設定が無効であるか、我々はそれのメンバーではありません"、 「コード":93、 "コードネーム": "InvalidReplicaSetConfig"、 "$ clusterTime":{ "clusterTime":タイムスタンプ(1559293558、1)、 "署名":{ "ハッシュ":BINDATA(0、" AAAAAAAAAAAAAAAAAAAAAAAAAAA = ")、 " KEYID ":NumberLong(0) } } }
初期化-REか、rs.status()は同じです
rs.initiate({ _id: "RS2"、 メンバー:[ {_id:0、ホスト: "ローカルホスト:51001"}、 {_id:1、ホスト: "ローカルホスト:51002"}、 {_id:2、ホスト: "ローカルホスト:51003" } ] })
また、通常のコンフィギュレーション情報を見ます
RS1:その他> rs.conf() { "_id": "RS1"、 "バージョン":1、 "はprotocolVersion":NumberLong(1)、 "writeConcernMajorityJournalDefault":真、 "メンバー":[ { "_id":0 、 "ホスト": "ローカルホスト:51001"、 "arbiterOnly":偽、 "buildIndexes":真、 "隠された":偽、 "優先度":1、 "タグ":{ }、 "slaveDelay":NumberLong(0) "投票":1 }、 { "_id":1、 "ホスト": "はlocalhost:51002"、 "arbiterOnly":偽、 "buildIndexes":真、 "隠された":偽、 "優先度":1、 "タグ":{ }、 "slaveDelay":NumberLong(0)、 "投票":1 }、 { "_id":2、 "ホスト":"ローカルホスト:51003"、 "arbiterOnly":偽、 "buildIndexes":真、 "隠された":偽、 "優先度":1、 "タグ":{ }、 "slaveDelay":NumberLong(0)、 "投票":1 } ]、 "設定":{ "chainingAllowed" :真 、"heartbeatIntervalMillis":2000、 "heartbeatTimeoutSecs":10、 "electionTimeoutMillis":10000、 "catchUpTimeoutMillis":-1、 "catchUpTakeoverDelayMillis":30000、 "getLastErrorModes":{ { }、 "getLastErrorDefaults":{ "W":1、 "wtimeout":0 }、 "replicaSetId":のObjectId( "5cf0d661fb9b2ca10d607eca") } }
ログを見て、これは言っています
2019-06-01T11:03:17.078 + 0800 W REPL [replexec-0] ローカルレプリカセットの構成ドキュメントのレポートは、RS1の名前を設定しますが、コマンドラインはRS2を報告します。再構成またはリモートハートビートを待っています
2019-06-01T11:03:17.078 + 0800 I REPL [replexec-0]使用中の新しいレプリカセットの設定:{_id: "RS1"、バージョン:1、はprotocolVersion:1、writeConcernMajorityJournalDefault:真、メンバー:[{_id: 0、ホスト: "ローカルホスト:51001"、arbiterOnly:偽、buildIndexes:真、隠された:偽、優先度:1.0、タグ:{}、slaveDelay:0、投票:1}、{_id:1、ホスト:「ローカルホスト: 51002" 、arbiterOnly:偽、buildIndexes:真、隠された:偽、優先度:1.0、タグ:{}、slaveDelay:0、投票:1}、{_id:2、ホスト: "ローカルホスト:51003"、arbiterOnly:偽、 buildIndexes:真、隠された:偽、優先度:1.0、タグ:{}、slaveDelay:0、投票:1}]、設定:{chainingAllowed:真、heartbeatIntervalMillis:2000、heartbeatTimeoutSecs:10、electionTimeoutMillis:10000、catchUpTimeoutMillis:-1 、catchUpTakeoverDelayMillis:30000、getLastErrorModes:{}、getLastErrorDefaults:{W:1、wtimeout:0}、replicaSetId:のObjectId( '5cf0d661fb9b2ca10d607eca')}}
03:2019-06-01T11 + 0800 17.078 I REPL [replexec-0]このノードは、設定のメンバーではない
2019-06-01T11:03:17.078 + 0800 I REPL STARTUPから除去する[replexec-0]遷移
2019-06-01T11:03:17.078 + 0800 I REPL [replexec-0]複製ストレージスレッドを起動します
RS1また、密接プロンプトでシェルを探してください。奇妙
それはそれの名の下に変更しました
https://stackoverflow.com/questions/33400607/how-do-i-rename-a-mongodb-replica-set
1.停止し、すべてのインスタンスは、非複製モードの使用が有効化されます
再起動し、--replSetパラメータを削除
2. [ローカルキャッシュデータベースのレプリケーション設定情報
サーバーに接続されているのmongoシェルを使用して、次のコマンドは、3つの例です
ローカル使用 )(db.dropDatabaseを
3.有効にし、すべてのインスタンスを停止し、コピーモードを使用します
再起動は、新しいレプリケーション・セットの名前を指定する--replSetパラメータを使用します
4.複製セットを初期化します
。新しいプライマリとなるつのインスタンスに接続Mongoのシェルを使用して
B。)(rs.initiateを実行します。パラメータを指定しない場合、またはエラーになります。他の構成パラメータは、その後の使用rs.reconfig()メソッドで提供することができます
。レプリケーションに設定さ:Cは、それぞれ二次のために、(「51002ローカルホスト」)を用いてrs.add
D。セカンダリ同期を待って
このアプローチは、再インポートデータを必要としません。