首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >改名蒙戈碎片

改名蒙戈碎片
EN

Server Fault用户
提问于 2014-06-11 01:55:09
回答 1查看 4.3K关注 0票数 1

我可以,如果可以的话,我怎么能在蒙戈重命名一个碎片?

就像我想将rs0的实例更改为rep0一样:

代码语言:javascript
复制
mongos> sh.status()
--- Sharding Status --- 
  sharding version: {
    "_id" : 1,
    "version" : 4,
    "minCompatibleVersion" : 4,
    "currentVersion" : 5,
    "clusterId" : ObjectId("111111111111")
}
  shards:
    {  "_id" : "rs0",  "host" : "rs0/mongo0a:27017,mongo0b:27017" }
...

我已经考虑过删除和重新添加碎片,但我不确定如何做到这一点,而不需要排放碎片和下降dbs。

目前,0的集合已启用切分,我只是有几个标准添加为碎片。

谢谢

EN

回答 1

Server Fault用户

回答已采纳

发布于 2014-06-11 11:49:04

不,目前还没有被支持的重命名碎片的方法,尽管正如您提到的,您可以删除并重新添加。即使这样,它也不像您想象的那么简单,因为虽然您可以在添加一个碎片时指定一个名称,但它并没有就此结束--它本身就是要担心的副本集。添加时的名称规范只是_id的值,请参见下面的示例(我的副本集是rs0,与您的副本一样):

代码语言:javascript
复制
mongos> db.adminCommand({addShard : "rs0/host.example.com:27017,host.example.com:27018", name : "rep0"});

mongos> sh.status()
--- Sharding Status --- 
  sharding version: {
    "_id" : 1,
    "version" : 4,
    "minCompatibleVersion" : 4,
    "currentVersion" : 5,
    "clusterId" : ObjectId("539838845bc6bf5ee52a56ea")
}
  shards:
    {  "_id" : "rep0",  "host" : "rs0/host.example.com:27017,host.example.com:27018" }
  databases:
    {  "_id" : "admin",  "partitioned" : false,  "primary" : "config" }

注意,更改的只是碎片的_id"host"值保持不变,因为rs0是副本集的名称--如果您尝试在那里使用rep0,它将无法添加。因此,删除和重新添加会给您带来两个名称之间的不匹配。

要更改该host值,不仅必须删除/重新添加碎片,还必须在重新添加碎片之前更改副本集配置。换句话说,必须将replSet参数更改为rep0,这意味着重新初始化集合--这也不是一项容易的任务。

总的来说,它可以到达你想要的地方,但是会有大量的工作,而且它不会很快(排水,重新输入集合),特别是当你有很多数据的时候。为了更改几个字符串,我通常建议保持原样。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/604234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档