操作 MongoDB renameCollection 不同版本中的危险与影响 中的 深化解析

  • 电脑网络维修
  • 2024-11-15

在 MongoDB 中,renameCollection 操作用于将一个汇合重命名为另一个称号。只管这看起来是一个便捷的操作,但在不同版本的 MongoDB 中,renameCollection 有一些严重的变动和留意事项。本文将深化讨论在不同版本的 MongoDB 中口头 renameCollection 操作时须要思考的方面。

MongoDB 3.4 版本

renameCollection is suitable for production environments; however:

renameCollection 适宜消费 环境:

留意事项:

MongoDB 3.6 版本

Sharded Collections

renameCollection is not compatible with sharded collections.

Existing Target Collection

renameCollection fails if is the name of an existing collection and you do not specify .targetdropTarget: true

Performance

Changed in version 3.6.

renameCollection has different performance implications depending on the target namespace.

If the target>If the target>

留意事项:

db.adminCommand( { renameCollection: "db1.orders", to: "db1.orders2014" } )

db.adminCommand( { renameCollection: "db1.orders", to: "db2.orders2014" } )

MongoDB 4.2 版本

Sharded Collections

renameCollection is not compatible with sharded collections.

Existing Target Collection

renameCollection fails if is the name of an existing collection and you do not specify .targetdropTarget: true

Performance

Changed in version 3.6.

renameCollection has different performance implications depending on the target namespace.

If the target>If the target>Resource Locking

Changed in version 4.2.

If renaming a collection within the same>Prior to MongoDB 4.2, renaming a collection within the same>If renaming a collection between different>For MongoDB 4.2.2 and later, renameCollection obtains an exclusive (W) lock on the target>For MongoDB 4.2.1 and earlier, renameCollection obtains an exclusive (W) global lock. Subsequent operations on the mongod must wait until renameCollection releases the global lock.

For more information on locking in MongoDB, see FAQ: Concurrency.

1、分片汇合不兼容:

renameCollection 操作不兼容于分片汇合。这象征着不可间接对分片汇合经常使用 renameCollection 来重命名。

2、现有指标汇合:

假设要重命名的指标汇合称号曾经存在,并且没有指定 .targetdrop: true 参数,renameCollection 操作将失败。这是为了防止异常笼罩已存在的汇合。在口头 renameCollection 操作时,须要明白指定能否要删除已存在的指标汇合以便重命名成功。

3、性能:

在 MongoDB 3.6 及更高版本中,renameCollection 操作的性能取决于指标命名空间的不同状况:

4、资源锁定:

在 MongoDB 4.2 版本中,renameCollection 操作的资源锁定行为出现了变动:

留意事项:

db.adminCommand( { renameCollection: "db1.orders", to: "db1.orders2014" } )

db.adminCommand( { renameCollection: "db1.orders", to: "db2.orders2014" } )

MongoDB 5.0 版本

Sharded Collections

Starting in MongoDB 5.0, you can use the renameCollection command to change the name of a sharded collection. The target>Unsharded Collections

You can use renameCollection to rename an unsharded collection in a sharded cluster as long as the source and target>Existing Target Collection

renameCollection fails if target is the name of an existing collection and you do not specify dropTarget: true.

Performance

Changed in version 3.6.

renameCollection has different performance implications depending on the target namespace.

If the target>If the target>Resource Locking in Sharded Clusters

Changed in version 5.0.

When renaming a sharded or unsharded collection in a sharded cluster, the source and target collections are exclusively locked on every shard. Subsequent operations on the source and target collections must wait until the rename operation completes.

For more information on locking in MongoDB, see FAQ: Concurrency.

Resource Locking in Replica Sets

If renaming a collection within the same>If renaming a collection between different>For more information on locking in MongoDB, see FAQ: Concurrency.

1、行为

2、性能:

3、资源锁定:

留意事项:

db.adminCommand( { renameCollection: "db1.orders", to: "db1.orders2014" } )

db.adminCommand( { renameCollection: "db1.orders", to: "db2.orders2014" } )

跨库重命名相当于是一个copy操作,假设汇合数据量较大,口头特意耗时。指标数据库上失掉独占锁(W),在源数据库上失掉动向共享锁(r),在源汇合上失掉共享锁(S)。后续对指标数据库的操作必定期待renameCollection监禁独占数据库锁阻塞操作,线上慎用。

MongoDB6.0、7.0版本版本renameCollection未做变卦

论断:

在启动 renameCollection 操作时,请务必审慎操作。这个操作或者会对线上系统发生严重影响,因此倡导在非高峰时段启动,并且提早备份数据以防万一。审慎的操作是确保系统稳固性和数据完整性的关键步骤,咱们一直努力于提供最佳的服务和处置打算,以确保您的业务顺利运转。再次感谢您对咱们的信赖和支持。

  • 关注微信

本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载联系作者并注明出处:https://duobeib.com/diannaowangluoweixiu/7049.html

猜你喜欢

热门标签

洗手盆如何疏浚梗塞 洗手盆为何梗塞 iPhone提价霸占4G市场等于原价8折 明码箱怎样设置明码锁 苏泊尔电饭锅保修多久 长城画龙G8253YN彩电输入指令画面变暗疑问检修 彩星彩电解除童锁方法大全 三星笔记本培修点上海 液晶显示器花屏培修视频 燃气热水器不热水要素 热水器不上班经常出现3种处置方法 无氟空调跟有氟空调有什么区别 norltz燃气热水器售后电话 大连站和大连北站哪个离周水子机场近 热水器显示屏亮显示温度不加热 铁猫牌保险箱高效开锁技巧 科技助力安保无忧 创维8R80 汽修 a1265和c3182是什么管 为什么电热水器不能即热 标致空调为什么不冷 神舟培修笔记本培修 dell1420内存更新 青岛自来水公司培修热线电话 包头美的洗衣机全国各市售后服务预定热线号码2024年修缮点降级 创维42k08rd更新 空调为什么运转异响 热水器为何会漏水 该如何处置 什么是可以自己处置的 重庆华帝售后电话 波轮洗衣机荡涤价格 鼎新热水器 留意了!不是水平疑问! 马桶产生了这5个现象 方便 极速 邢台空调移机电话上门服务 扬子空调缺点代码e4是什么疑问 宏基4736zG可以装置W11吗 奥克斯空调培修官方 为什么突然空调滴水很多 乐视s40air刷机包 未联络视的提高方向 官网培修 格力空调售后电话 皇明太阳能电话 看尚X55液晶电视进入工厂形式和软件更新方法 燃气热水器缺点代码

热门资讯

关注我们

微信公众号