2017-06-07 9 views
1

セットアップ:
1つのプライマリー、3つのセカンダリおよび1つのアービタ(全5が実行されている。)エラー設定

私は以下のエラーを取得し、ステップダウン()主にやっていますシェル内で -

m101:PRIMARY> rs.stepDown() 
2017-06-07T15:01:21.357 E QUERY [thread1] Error: error doing query: failed: network error while attempting to run command 'replSetStepDown' on host '127.0.0.1:27018' : 
[email protected]/mongo/shell/db.js:132:1 
[email protected]/mongo/shell/db.js:150:16 
[email protected]/mongo/shell/utils.js:1261:12 
@(shell):1:1 
2017-06-07T15:01:21.360 I NETWORK [thread1] trying reconnect to 127.0.0.1:27018 (127.0.0.1) failed 
2017-06-07T15:01:21.361 I NETWORK [thread1] reconnect 127.0.0.1:27018 (127.0.0.1) ok 
m101:SECONDARY> 

最後に、セカンダリがセカンダリに変更されています。しかし、なぜ私はこのエラーが発生しています、 "失敗:ネットワークエラー"はここにありますか?

2017-06-07T15:01:22.170 I REPL  [replication-5] Restarting oplog query due to error: InterruptedDueToReplStateChange: operation was interrupted. Last fetched optime (with hash): { ts: Timestamp 1496827872000|1, t: 2 }[-3490433912114125886]. Restarts remaining: 3 
2017-06-07T15:01:22.170 I REPL  [replication-5] Scheduled new oplog query Fetcher source: localhost:27018 database: local query: { find: "oplog.rs", filter: { ts: { $gte: Timestamp 1496827872000|1 } }, tailable: true, oplogReplay: true, awaitData: true, maxTimeMS: 60000, term: 2 } query metadata: { $replData: 1, $oplogQueryData: 1, $ssm: { $secondaryOk: true } } active: 1 timeout: 65000ms shutting down?: 0 first: 1 firstCommandScheduler: RemoteCommandRetryScheduler request: RemoteCommand 159434 -- target:localhost:27018 db:local cmd:{ find: "oplog.rs", filter: { ts: { $gte: Timestamp 1496827872000|1 } }, tailable: true, oplogReplay: true, awaitData: true, maxTimeMS: 60000, term: 2 } active: 1 callbackHandle.valid: 1 callbackHandle.cancelled: 0 attempt: 1 retryPolicy: RetryPolicyImpl maxAttempts: 1 maxTimeMillis: -1ms 
2017-06-07T15:01:22.173 W REPL  [rsBackgroundSync] Fetcher stopped querying remote oplog with error: InvalidSyncSource: Sync source's last applied OpTime { ts: Timestamp 1496827872000|1, t: 2 } is not greater than our last fetched OpTime { ts: Timestamp 1496827872000|1, t: 2 }. Choosing new sync source. 
2017-06-07T15:01:22.176 I REPL  [rsBackgroundSync] could not find member to sync from 
2017-06-07T15:01:22.180 I REPL  [ReplicationExecutor] Member localhost:27018 is now in state SECONDARY 
2017-06-07T15:01:27.335 I REPL  [SyncSourceFeedback] SyncSourceFeedback error sending update to localhost:27018: InvalidSyncSource: Sync source was cleared. Was localhost:27018 
2017-06-07T15:01:29.879 I -  [conn2] end connection 127.0.0.1:59400 (5 connections now open) 
2017-06-07T15:01:30.899 I NETWORK [thread1] connection accepted from 127.0.0.1:64421 #28 (5 connections now open) 
2017-06-07T15:01:30.899 I NETWORK [conn28] received client metadata from 127.0.0.1:64421 conn28: { driver: { name: "NetworkInterfaceASIO-Replication", version: "3.4.4" }, os: { type: "Windows", name: "Microsoft Windows 8", architecture: "x86_64", version: "6.2 (build 9200)" } } 
2017-06-07T15:01:30.917 I NETWORK [thread1] connection accepted from 127.0.0.1:64425 #29 (6 connections now open) 
2017-06-07T15:01:30.920 I NETWORK [conn29] received client metadata from 127.0.0.1:64425 conn29: { driver: { name: "NetworkInterfaceASIO-Replication", version: "3.4.4" }, os: { type: "Windows", name: "Microsoft Windows 8", architecture: "x86_64", version: "6.2 (build 9200)" } } 
2017-06-07T15:01:30.927 I NETWORK [thread1] connection accepted from 127.0.0.1:64428 #30 (7 connections now open) 
2017-06-07T15:01:30.928 I NETWORK [conn30] received client metadata from 127.0.0.1:64428 conn30: { driver: { name: "NetworkInterfaceASIO-Replication", version: "3.4.4" }, os: { type: "Windows", name: "Microsoft Windows 8", architecture: "x86_64", version: "6.2 (build 9200)" } } 
2017-06-07T15:01:31.561 I REPL  [ReplicationExecutor] Starting an election, since we've seen no PRIMARY in the past 10000ms 
2017-06-07T15:01:31.562 I REPL  [ReplicationExecutor] conducting a dry run election to see if we could be elected 
2017-06-07T15:01:31.563 I REPL  [ReplicationExecutor] VoteRequester(term 2 dry run) received a no vote from localhost:27018 with reason "candidate's term is lower than mine"; response message: { term: 3, voteGranted: false, reason: "candidate's term is lower than mine", ok: 1.0 } 
2017-06-07T15:01:31.563 I REPL  [ReplicationExecutor] not running for primary, we have been superceded already 
2017-06-07T15:01:32.183 I REPL  [ReplicationExecutor] Member localhost:27019 is now in state PRIMARY 
2017-06-07T15:01:32.185 I REPL  [rsBackgroundSync] sync source candidate: localhost:27019 
2017-06-07T15:01:32.186 I ASIO  [NetworkInterfaceASIO-RS-0] Connecting to localhost:27019 
2017-06-07T15:01:33.198 I ASIO  [NetworkInterfaceASIO-RS-0] Successfully connected to localhost:27019, took 1012ms (1 connections now open to localhost:27019) 

がここで何が起こっているか理解しようとする -

以下は辞任したプライマリーのログファイルからセクションです。どんなリードも感謝します。

ありがとうございます!

答えて

4

これは予想される動作です。プライマリがダウンすると、mongoシェルのアクティブな接続を含むすべての接続が切断されます。 mongoシェルは接続を再確立します(「試行再接続」メッセージに従って)。

rs.stepDown()文書は、おそらくシェル出力の例とこの点について明確にすることができるが、関連する説明である:成功降圧時

、rs.stepDown()は、現在に接続されているすべてのクライアントを強制的に切断するデータベース。これにより、クライアントがレプリカセットの正確なビューを維持できるようになります。

コマンドを実行するために使用された接続が切断されているため、コマンドが正常に完了した場合はコマンドの戻りステータスを取得できません。つまり、エラーの場合にのみ、コマンドの戻り状況を取得することができます。スクリプトでコマンドを実行する場合、スクリプトはこの動作を考慮する必要があります。