• MongoDB学习总结(六) —— 数据库备份和恢复


     

     我们都知道数据库数据经常备份是多么的重要,MongoDB作为一个数据库系统,自然提供了完善,丰富而且好用的备份与恢复机制。

     以下介绍三种数据库备份和恢复的方式

    > 数据目录直接拷贝

     数据库目录直接拷贝意思就是将--dbpath指定的数据库目录复制一份。

     要注意的是这种方式在服务器运行状态中复制,无法保证数据的完整性,所以如果使用这种方式,最好是暂时关闭服务器,拷贝完成后再重新启动。

    > 利用 mongodumpmongorestore

     mongodump命令和mongorestore命令能够在服务器运行的状态下进行备份和恢复。

    下面来看看他们的基本用法。

     备份(mongodump

     参数说明:-d 指定要导出的数据库,-o指定导出路径

     

     

     我们看到数据成功备份到指定目录中。

     

     恢复mongorestore

     参数说明:-d指定要恢复的数据库,--drop指名如果有同名集合先将其删除再导入,如果不用该选项,会进行合并。

     

     虽然使mongodump可以不用停机备份,但其也有一个缺点,就是无法备份实时数据,尤其当数据库服务在进行大量的写操作时

     

    > fsync + lock

     通过fsync+lock可以在服务器运行时,安全有效地使用复制数据目录的方式进行备份

     fsync命令会强制服务器将所有缓冲区内容写入到磁盘通过 lock上锁的方式阻止数据库的进行写入

     注意此命令需要在admin数据库下进行。

     

     这时候我们使用复制数据目录的方式进行备份,备份后我们需要进行解锁。

     

     通过fsync和写入锁的使用,不用停止数据库服务,可以非常安全地备份实时数据。但其弊端就是,在备份期间,数据库的写操作请求会阻塞。

     

     

  • 相关阅读:
    Github上fork的项目如何merge原Git项目
    【转】OS | 从一道面试题谈 Linux 下 fork 的运行机制
    鸡汤文 | 23 考研不想成为炮灰,应该努力到什么程度呢?
    OS | 文件系统总结
    OS | 银行家算法C语言实现
    Linux操作系统(七):BASH与Shell
    使用github action发布hexo博客到云服务器
    gozero单体服务使用泛型简化注册Handler路由
    用go把博客园博客下载到本地Hexo目录下
    oracle删除超过N天数据脚本
  • 原文地址:https://www.cnblogs.com/mejoy/p/6039516.html
Copyright © 2020-2023  润新知