首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >码头数据安全

码头数据安全
EN

Stack Overflow用户
提问于 2017-01-24 20:00:15
回答 1查看 256关注 0票数 4

我今天有个悲伤的故事。我失去了我星期六以来所做的所有数据库更改。

我们使用mongodb (3.4.1),在这个特定的例子中,它运行在其官方的带有映射卷的对接容器中。

容器是用docker创建的,docker-compose.yml如下所示:

代码语言:javascript
复制
version: "2"
services:
        database:
            image: mongo:3.4.1
            restart: always
            container_name: cvs-db
            volumes:
              - ~/data/db:/data/db
            ports:
              - "27017:27017"

~/data/db只是很久以前创建的一个常规文件夹。

在重新启动容器(使用docker-compose up -d)之后,数据返回到两天前的状态。甚至缺失也消失了。

我们昨天清理了所有的集合,并开始用真实的数据填充它们,现在它包含了我们最近删除的所有测试数据。

因此,我的问题是: 1)如何保护mongodb数据不受这些灾害的影响? 2)有人能分辨出可能导致这些结果的确切情况吗? 3)如何恢复数据?

编辑:经过一些研究,我认为是船坞组成的错误。但这些问题仍然有效:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-24 21:28:18

查看您的撰写文件,您将源dir引用为相对~/data/db。如果系统上有多个可以访问组成文件的用户帐户(即根加上一个命名的用户帐户),那么"~/data/db"目录将根据启动容器的用户运行的不同而有所不同。也许类似的事情发生在你的环境里。

最好是使用到达主机卷的绝对路径(即/opt/data/db:/data/db),而不是根据用户或父目录上下文进行更改,以避免出现这种类型的问题。

使用标准主机目录作为数据卷不应导致数据自发回滚。如果上面提到的目录上下文没有问题,那么它可能涉及到其他一些因素,比如某个人恢复文件系统快照、恢复备份或直接更改DB。

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

https://stackoverflow.com/questions/41837893

复制
相关文章

相似问题

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