- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
今天我有一个悲伤的故事。我丢失了自周六以来所做的所有数据库更改。
我们使用 mongodb (3.4.1),在这种特殊情况下,它在其带有映射卷的官方 docker 容器内运行。
容器是使用 docker-compose 创建的,docker-compose.yml
如下所示:
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) 如何恢复数据?
编辑:经过一些研究,我认为这是 docker-compose 错误。但是问题仍然有效:)
最佳答案
查看您的撰写文件,您将源目录引用为相对 ~/data/db
。如果您在系统上有多个用户帐户可以访问该组合文件(即 root 加上一个指定的用户帐户),那么 "~/data/db"
目录将是不同的 取决于哪个用户运行 compose 来启动容器。也许在您的环境中发生过类似的事情。
最好使用主机卷的绝对路径(即 /opt/data/db:/data/db
),而不是可以根据用户或父目录更改的路径上下文以避免出现此类问题的可能性。
使用标准主机目录作为数据卷不应导致数据自发回滚。如果它不是上述目录上下文的问题,则可能涉及其他一些因素,例如有人恢复文件系统快照、恢复备份或直接更改数据库。
关于mongodb - Docker数据安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41837893/
我正在使用 Quickblox SDK 开发聊天应用程序。我被要求在向服务器发送请求(登录、注册、修改个人资料...)时使用 MD5 散列用户的密码。但我想知道这是否有必要,因为它可能已经在 SDK
如果任何处理器从队列中获取数据,则开始处理,此时处理器会因任何原因停机。那么特定数据会发生什么(数据丢失或安全地保留到其他队列中)? 最佳答案 嗯,NiFi 的目的是让数据尽可能安全。它的内容写入策略
目前这对我来说真的只是一个概念性问题。 在 Lisp 中,程序就是数据,数据就是程序。 REPL 正是这样做的 - 读取然后评估。 那么如何以一种安全的方式从用户那里获取输入呢?显然这是可能的 - 我
我是 MVC 的初学者。我现在对数据安全性感到好奇。不知道是不是我理解错了。 场景如下:我有一个观点要求用户输入一些数据。 (客户端)当数据传回 Controller (服务器端)时,窃听者能否拦截用
下边是我对部分内容的总结,里边偏向了T-SQL语句实现的总结,对于SQL Server Management Studio中对象管理器的操作并没有太多的总结,因为这些都有一些向导,而且,大部分都是在
有人知道 Google 是否收集提供给 Tensorflow 的数据吗?我的意思是它是开源的,但它受他们的许可。 最佳答案 您可以阅读TF的完整代码。那里没有任何东西发送任何数据,因此答案是否,没有数
我是一名优秀的程序员,十分优秀!