立聪堂德州十三局店 发表于 2025-11-5 22:37:24

MongoDB 备份与规复综述

目次
一、根本概述
二、逻辑备份
1、全量备份
2、增量备份
3、规复
三、物理备份
1、cp/tar/fsync
2、WiredTiger 热备份
3、规复
四、快照备份

一、根本概述

         MongoDB 是一种盛行的 NoSQL 数据库,它使用文档存储数据,支持丰富的查询语言和索引功能。MongoDB 的筹划目的是提供高性能、高可用性和易扩展性,广泛应用于各种范例的应用步伐中。然而,任何数据库体系都有大概面临数据丢失的风险,因此备份是确保数据安全和可规复性的紧张本领。
         备份的紧张性不问可知,它不但可以掩护数据免受硬件故障、软件错误或人为利用失误的影响,还可以在灾难发生时快速规复业务运营。对于 MongoDB 来说,备份尤其紧张,由于它通常用于处理处罚大量数据和高并发访问,一旦出现标题,大概会导致严肃的业务制止和数据丢失。
         关于 Mongodb 数据库备份,可从逻辑备份、物理备份和快照备份三个方面举行先容。
       Database Layer    mongodump    逻辑备份          File System Layer    cp/tar、fsync    物理备份          Volume/Block Layer    lvm snapshot、第三方快照驱动    快照备份       (1)逻辑备份是通过导出数据库中的数据到一个文件或一组文件中来实现的。在 MongoDB 中,可以使用 mongodump 工具来举行逻辑备份。mongodump 会将数据库中的每个聚集导出为一个 BSON 文件,同时还会天生一个元数据文件,记载聚集的名称和其他信息。
         逻辑备份的优点是可以跨平台使用,而且可以很轻易地规复到差异的 MongoDB 实例上。缺点是备份过程大概会影响数据库的性能,而且在大型数据集上大概必要较长的时间来完成备份,规复时速率很慢,特别是回放 oplog 时,速率~非常~非常~非常~慢。
(2)物理备份则是直接复制数据库的文件体系,包罗数据文件、日记文件和设置文件等。在 MongoDB 中,可直接拷贝文件体系内数据文件来实现物理备份的,但是不支持热备份。有第三方厂商基于 MongoDB 存储引擎 WiredTiger 原生热备份举行定制,支持热备份。
         物理备份的优点是速率快,由于它不必要遍历整个数据库来导出数据,而是直接复制文件。别的,物理备份通常可以在数据库运行时举行,对性能的影响较小。缺点是物理备份大概无法跨平台使用,由于差异利用体系的文件体系格式大概差异。别的,假如数据库在备份过程中发生了变革,那么备份的数据大概不是完全同等的,以是备份过程中必要对数据库加锁,克制数据写入。
(3)快照备份是一种连合了逻辑备份和物理备份特点的方法。它通过创建数据库的快照来实现备份,这个快照包罗了数据库在某个时间点的状态。在 MongoDB 中,可以使用 LVM(Logical Volume Manager)或其他存储层的快照功能来实现快照备份。
         快照备份的优点是可以提供险些及时的备份,由于快照的创建速率非常快。别的,快照备份可以在不制止数据库服务的环境下举行。缺点是快照备份依靠于底层存储体系的支持,不是全部的存储体系都支持快照功能。别的,假如数据库在快照之后发生了更改,那么这些更改不会反映在快照中。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvMzM2MDBiZjI5YTAzNGMxNTkxY2ViY2E3NWJlZGQ0M2UucG5n
二、逻辑备份

         mongodump 是 mongo 集成的备份与规复工具,功能也黑白常的强盛,其与 mongorestore 共同可以完成大多数场景的数据备份。不外在使用之前必要细致的阅读干系文档,并现实利用测试其功能特性。而且必要留意,随着差异数据库的版本迭代,该工具的一些功能也会随之变革,必要思量一些参数的兼容性,和 json 版本的迭代。
      使用 mongodump 可以对数据库举行全量备份与增量备份,这个可以在网上搜到许多脚本例子。但其照旧存在一些功能缺陷,不外幸亏其在 github 上开放了源码(golang),用户可以基于其源码根据本身的需求举行修改。
         该方案的一个不可忽略的缺点就是性能太低了,远远不如物理备份。固然可以备份的时间可以聚集为单元举行多历程并发,但对数据库的负载也随之增大。以是许多厂商在做灾备产物时都不会思量它。
1、全量备份

1. 导出数据库 db1 中的集合 t1 至同目录下的dump文件夹下

./mongodump --host 10.10.50.210 -u test -p testpw --authenticationDatabase admin -d db1 -c t1

2. 导出至指定同目录下自定义的文件夹

./mongodump --host 10.10.50.210 -u test -p testpw --authenticationDatabase admin -d db1 -c t1 -o selfdir

3。 以集合为单位将备份数据输出到 stdout,实现流式备份

./mongodump --host 10.10.50.210 -u test -p testpw --authenticationDatabase admin -d db1 -c t1 -o -<
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: MongoDB 备份与规复综述