当前位置: 首页 > 编程笔记 >

浅谈MongoDB的备份方式

谢俊英
2023-03-14
本文向大家介绍浅谈MongoDB的备份方式,包括了浅谈MongoDB的备份方式的使用技巧和注意事项,需要的朋友参考一下

简要说一下MongoDB的备份方式:

1. mogodump / mongorestore

这2命令将mongodb的数据dump为BSON格式,需要的时候可以恢复。
这种方式作为小的数据库还适用。但如果是sharding或者几百G数据以上的话
就几乎不可用了。因为BSON及其占用空间。

2. Slave Replication

这是最适合和可靠的,适合生产环境。MongoDb支持master+多个slave。因此可以很方便的起一个slave来进行备份。
但是需要注意的是如果数据量很大的话,如果是新建的slave,速度又没有保证的话,一定要调高 oplogSize 的大小,对于一个300G的数据库,
可以调到60G以上。这样避免同步到中间出现oplogSize不足等异常。

3. 关于增量热备份

对于某些热衷单独文件备份的同志,也可以考虑使用“增量热”备份的方式作为最后的屏障。
做法就是,最开始将某个slave暂时shutdown,然后将数据库文件复制到另一个目录作为增量备份的起点。

每次备份的时候,在这个目录上起一个slave, 使用–fastsync参数,同步完毕即可tar这个目录就可以了。

这种方式的一个缺点就是如果备份周期的过长的话,空间浪费会非常大,尤其是频繁删除的情况下,
目前1.6以前的版本对于删除的空间回收机制有bug。这个问题应该在1.6版本发布时候解决。

要想回收这些空间需要repairDatabase,速度比较慢,不如直接从头clone一个新的db了。(其实Repair的过程也就是先clone然后copy回来)。

综上所述, 最靠谱和安全的备份方式就是用mongodb自身的同步复制机制.
最经典也最小的生产环境是:
1 master + 2 slaves

以上所述就是本文关于MongoDB的备份方式的全部内容了,希望大家能够喜欢。

 类似资料:
  • 本文向大家介绍浅谈MySQL数据库的备份与恢复,包括了浅谈MySQL数据库的备份与恢复的使用技巧和注意事项,需要的朋友参考一下 一、MySQL 常见的备份方式 1. 直接拷贝数据库文件(物理拷贝) 2. 使用 mysqldump 工具备份 3. 使用 mysqlhotcopy 工具备份 4. 使用 mysql 的主从同步复制,实现数据实时同步备份 二、MySQL 物理数据文件结构介绍 1. 日志文

  • 本文向大家介绍浅谈mysqldump使用方法(MySQL数据库的备份与恢复),包括了浅谈mysqldump使用方法(MySQL数据库的备份与恢复)的使用技巧和注意事项,需要的朋友参考一下 #mysqldump --help 1.mysqldump的几种常用方法: (1)导出整个数据库(包括数据库中的数据) mysqldump -u username -p dbname > dbname.sql  

  • 本文向大家介绍浅谈mysql 针对单张表的备份与还原,包括了浅谈mysql 针对单张表的备份与还原的使用技巧和注意事项,需要的朋友参考一下 A、MySQL 备份工具xtrabackup 的安装 1. percona 官方xtrabackup 的二进制版本;二进制版本解压就能用了。 2. 解压xtrabackup & 创建连接 tar -xzvf percona-xtrabackup-2.3.4-L

  • 主要内容:数据备份,恢复数据本节我们来介绍一下 MongoDB 中如何对数据进行备份与恢复。 数据备份 在 MongoDB 中我们可以使用 mongodump 命令来对 MongoDB 进行数据备份,该命令可以导出所有数据到指定目录中,也可以通过参数将导出数据转存的服务器。其语法格式如下: mongodump -h dbhost -d dbname -o dbdirectory 参数说明如下: -h:MongDB 所在服务器

  • 本文向大家介绍浅谈Vue.nextTick 的实现方法,包括了浅谈Vue.nextTick 的实现方法的使用技巧和注意事项,需要的朋友参考一下 这是一篇继event loop和MicroTask 后的vue.nextTick API实现的源码解析。 预热,写一个sleep函数 解释下sleep函数 async 函数进行await PromiseFn()时函数执行是暂停的,我们也知道现在这个Prom

  • 本文向大家介绍浅谈Java HttpURLConnection请求方式,包括了浅谈Java HttpURLConnection请求方式的使用技巧和注意事项,需要的朋友参考一下 一)URL代理请求 ​ 该方式请求有两种代理方式。 方式一:使用该方式代理之后,之后的所有接口都会使用代理请求 方式二:适用于只有部分接口需要代理请求场景 二)无参数GET请求 方法解析: HttpGetUtils.doGe