にMongoDBのレプリカセットの名前を変更する方法

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。セカンダリ同期を待って

 

このアプローチは、再インポートデータを必要としません。

 

おすすめ

転載: www.cnblogs.com/jerryzh/p/10959320.html