前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【最佳实践】巡检项:云数据库(MongoDB)存储容量

【最佳实践】巡检项:云数据库(MongoDB)存储容量

原创
作者头像
ivesjiang@DBA
修改2022-04-13 18:09:50
1.5K0
修改2022-04-13 18:09:50
举报
文章被收录于专栏:腾讯云顾问

问题描述

检查腾讯云数据库 MongoDB 实例的磁盘使用情况,如果磁盘使用率过高,则短时间内可能会写满磁盘,导致后续的数据无法写入,影响业务。

解决方案

1、建议对无效数据进行清理,释放空间。

一:使用db.dropDatabase()db.collection.drop()指令删除对应的数据库和集合文件,该类指令执行后会立即释放空间。

二:使用db.collection.remove()命令删除文件。

说明:执行db.collection.remove()命令了删除文件,但是文件的物理空间不会被回收。如果执行remove命令删除了大量的文档,当新写入的数据大小满足碎片空间大小时,该碎片空间就会被重复利用,如果后续写入较小,可执行compact命令回收空闲的物理空间。

可以执行db.stats()命令查看碎片整理前后数据库占用的磁盘空间。

预估campact操作能回收多少空间,可以通过下面命令进行查询:

代码语言:javascript
复制
 db.coll.stats().wiredTiger["block-manager"]["file bytes available for reuse"]

执行以下命令,对某个集合进行碎片整理。

代码语言:javascript
复制
db.runCommand({compact:"<collection_name>",force:true})

2、如果确认数据都需要保留,可以调整 MongoDB 实例规格,扩容云数据库的存储空间

注意事项

1、在调整配置过程中,如果本地宿主机磁盘空间不足以支持新扩容后的配置,可能会进行数据迁移,期间实例访问不受影响;迁移完成后会进行切换,会有秒级别闪断,请确保业务程序具备重连机制。

2、compact 一个集合,会加集合所在DB的互斥写锁,会导致该DB上所有的读写请求都阻塞;因为 compact 执行的时间可能很长,跟集合的数据量相关,所以强烈建议在业务低峰期执行,避免影响业务。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题描述
  • 解决方案
  • 注意事项
相关产品与服务
云顾问
云顾问(Tencent Cloud Smart Advisor)是一款提供可视化云架构IDE和多个ITOM领域垂直应用的云上治理平台,以“一个平台,多个应用”为产品理念,依托腾讯云海量运维专家经验,助您打造卓越架构,实现便捷、灵活的一站式云上治理。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档