RT
举报· 147 次点击
登录 注册 站外分享
9 条回复  
ryan4yin 小成 2024-8-29 10:28:27

求助, Linux 上使用 docker 部署 mongdb,使用持久化,数据在硬盘上,快满了,如何处理?

首先通过 du / df /ncdu 定位到是谁占用了存储,如果是 Mongo 数据那就得看数据能不能删除,或者机器能不能扩容了。

如果是日志太大,docker compose 有参数可以限制日志文件大小:
https://stackoferflow.com/questions/39078715/specify-max-log-json-file-size-in-docker-compose

清理日志这方面,可以停机的话就直接 docker-compose down 再 up ,停机会有问题的话可以直接 root 用户下运行这个命令把日志清空:

echo '' > /path/to/log/file
512357301 小成 2024-8-29 00:06:08

求助, Linux 上使用 docker 部署 mongdb,使用持久化,数据在硬盘上,快满了,如何处理?

@assassing 没有挂载出来也有办法,先把容器 stop ,然后把数据目录 copy 出来一份,然后新建一个容器,把数据目录挂载进去
ha1o 小成 2024-8-28 09:19:19

求助, Linux 上使用 docker 部署 mongdb,使用持久化,数据在硬盘上,快满了,如何处理?

确定是真实数据库数据太多导致磁盘满了吗?有可能是 docker 的问题:
```docker system df```看一下 RECLAIMABLE 是不是占用很大,是的话应该重启下服务这些空间就回收了
assassing 小成 2024-8-27 17:00:12

求助, Linux 上使用 docker 部署 mongdb,使用持久化,数据在硬盘上,快满了,如何处理?

有些情况下,容器内日志可以占用达到上百 GB 。

解决方法是使用 docker-compose down 命令删除容器,再使用 docker-compose up -d 启动。这样容器内所有临时文件,包括日志都会自动清除。
laminux29 小成 2024-8-27 14:53:58

求助, Linux 上使用 docker 部署 mongdb,使用持久化,数据在硬盘上,快满了,如何处理?

你这 docker 结构相当不错啊,扩容应该很简单的。

1.把以下 3 个目录,tar + zstd:
/data/databases/mongodb/mongo/db
/data/databases/mongodb/mongo/backup
/data/databases/mongodb/mongo.key

2.container 停掉

3.导出 container ,tar + zstd

4.上面有 4 个 tar + zstd ,如果数据重要,找 3 个大硬盘,给每个硬盘复制一份,复制时请打开校验选项,也就是复制后,要校验一次。这个步骤是为了满足生产数据的 3 副本的基本要求。

5.原始物理机,磁盘扩容。
生产环境,此时还应该对内存跑一个 Memtest86+
生产环境,此时还应该对所有存储介质做 3 检:寿命检查、全盘坏道检查、性能检查。

6.扩容完毕后,数据导回去就行,但记得复制时,同样需要打开校验选项。
AdamJin 小成 2024-8-27 14:43:26

求助, Linux 上使用 docker 部署 mongdb,使用持久化,数据在硬盘上,快满了,如何处理?

你可以看下容器的 logpath ,其中 log 文件大不大。
Nazz 小成 2024-8-27 13:30:55

求助, Linux 上使用 docker 部署 mongdb,使用持久化,数据在硬盘上,快满了,如何处理?

扩容, 然后新建分区挂载逻辑卷到根目录
julyclyde 小成 2024-8-27 11:58:52
什么叫“容器日志导出来“??
@Dnlyao
AoEiuV020JP 小成 2024-8-27 11:48:25
要么扩容要么删数据,还能怎么处理?
返回顶部