読者です 読者をやめる 読者になる 読者になる

shardingェ…

MongoDB

shardingしてるcollectionのshardingを解除する方法がdropしかないみたいなのでやむを得ず試してみました。


drop前はdb.printShardingStatus()で表示されます。

> db.printShardingStatus()
(略)
                test2.table01 chunks:
                                set01   1
                        { "name" : { $minKey : 1 } } -->> { "name" : { $maxKey : 1 } } on : set01 { "t" : 1000, "i" : 0 }


dropしてみます。

> db.table01.drop()
true

db.printShardingStatus()でも表示されなくなりました。


よしおっけー問題なしと思ってこの作業の前にやってたテストデータのsaveをforで回しつつchunkの状態を確認してたら何故かshardingが上手くいってない。
mongosのログを確認してみます。

Mon May 16 22:19:43 [conn1] warning: could have autosplit on collection: test2.table02 but: splitVector command failed: { errmsg: "exception: [test2.table02] shard version not ok in Client::Conte...", code: 13388, ok: 0.0 }

なんぞ…。
なんかshardのバージョンおかしいぞコラと怒られてます。


insertされたshardのログも見てみる。

Mon May 16 22:19:43 [conn101] Assertion: 13388:[test2.table02] shard version not ok in Client::Context: client in sharded mode, but doesn't have version set for this collection: test2.table02 myVersion: 25|1

後半省略されてないのが表示されました。


その後もとりあえずテストデータをぶちこみ続けましたが、変動があるはずのchunksの値が全然変わらない。
それでも性懲りずにぶち込み続けたところ、急にchunksの値が変わり、migrationが始まりました。
何がトリガーになってるんだろう…。

スポンサーリンク