CN109697139A - 一种基于MongoDB的数据库自动备份方法、设备及存储设备 - Google Patents
一种基于MongoDB的数据库自动备份方法、设备及存储设备 Download PDFInfo
- Publication number
- CN109697139A CN109697139A CN201811291076.9A CN201811291076A CN109697139A CN 109697139 A CN109697139 A CN 109697139A CN 201811291076 A CN201811291076 A CN 201811291076A CN 109697139 A CN109697139 A CN 109697139A
- Authority
- CN
- China
- Prior art keywords
- backup
- mongodb
- database
- data
- cron
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1461—Backup scheduling policy
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于MongoDB的数据库自动备份方法、设备及存储设备,其方法包括:使用mongodump和mongorestore实用程序执行数据的备份和还原操作,使用cron作业调度并运行创建的自动备份脚本,并使用该脚本调度、维护和管理MongoDB数据库服务器的备份。一种基于MongoDB的数据库自动备份设备及存储设备,用于实现一种基于MongoDB的数据库自动备份方法。本发明的有益效果是:本发明提供一种新的数据库自动备份方法,改善传统手动备份数据存在数据丢失的风险,定期执行数据备份,保障数据安全。
Description
技术领域
本发明涉及MongoDB数据库技术领域,尤其涉及一种基于MongoDB的数据库自动备份方法、设备及存储设备。
背景技术
有效管理数据、服务和信息对一个公司的成功至关重要。在数据日益增长的世界里,选择正确的数据管理解决方案比以往更加重要。MongoDB是一个新兴的开源NoSQL数据库,可用于海量数据管理。它提供了高性能、高可用性和易于扩展的特性。大多数人对MongoDB数据备份不熟悉,仍停留在手动备份阶段,存在巨大数据丢失风险,而数据管理的一个关键要素是定期执行备份,预防数据丢失,而且不用手动完成此项工作。
发明内容
为了解决上述问题,本发明提供了一种基于MongoDB的数据库自动备份方法、设备及存储设备,一种基于MongoDB的数据库自动备份方法,应用于终端设备,主要包括以下步骤:
S101:根据业务需求,选择备份任务;
S102:根据备份任务,选择MongoDB数据库中需要备份的数据;
S103:创建备份脚本文件和一个cron作业,所述cron作业调度并运行所述备份脚本文件;
S104:利用备份执行程序调用所述备份脚本文件,将需要备份的数据自动备份到终端设备中。
进一步地,在步骤S101中,备份任务分为:整个数据库的备份和数据库中若干数据表格的备份。
进一步地,在步骤S103中,创建备份脚本文件时,首先以root用户身份登录服务器,并将服务器所有者更改为mongo用户;然后以mongo用户身份登录服务器,创建备份脚本文件;最后保存完成的备份脚本文件,并授予该备份脚本文件755权限。
进一步地,在步骤S103中,创建cron作业时,首先以mongo用户身份登录,然后检查是否已存在cron作业;若是,则直接添加运行此cron作业的时间表;若否,则创建一个cron作业,再添加运行该cron作业的时间表。
进一步的,时间表中记录了运行cron作业的周期,修改该周期即修改自动备份的周期。
进一步的,在步骤S104中,对数据进行自动备份之前,需要从备份位置删除n天前的备份镜像,并向相应的日志文件中写入注释,所述注释中记录了所述备份镜像的名称、备份日期和删除的日期;n为大于0的实数。
进一步的,在步骤S104中,备份执行程序选择mongodump程序。
一种存储设备,所述存储设备存储指令及数据用于实现一种基于MongoDB的数据库自动备份方法。
一种基于MongoDB的数据库自动备份设备,包括:处理器及所述存储设备;所述处理器加载并执行所述存储设备中的指令及数据用于实现一种基于MongoDB的数据库自动备份方法。
本发明提供的技术方案带来的有益效果是:本发明提供一种新的数据库自动备份方法,改善传统手动备份数据存在数据丢失的风险,定期执行数据备份,保障数据安全。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明实施例中一种基于MongoDB的数据库自动备份方法的流程图;
图2是本发明实施例中硬件设备工作的示意图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
本发明的实施例提供了一种基于MongoDB的数据库自动备份方法、设备及存储设备。
请参考图1,图1是本发明实施例中一种基于MongoDB的数据库自动备份方法的流程图,应用于终端设备,该终端设备可以为一台电脑或者一台服务器;具体包括如下步骤:
S101:根据业务需求,选择备份任务;
S102:根据备份任务,选择MongoDB数据库中需要备份的数据;
S103:创建备份脚本文件和一个cron作业,所述cron作业调度并运行所述备份脚本文件;
S104:利用备份执行程序调用所述备份脚本文件,将需要备份的数据自动备份到终端设备中。
在步骤S101中,备份任务分为:整个数据库的备份和数据库中若干数据表格的备份。
在步骤S103中,创建备份脚本文件时,首先以root用户身份登录服务器,并将服务器所有者更改为mongo用户;然后以mongo用户身份登录服务器,创建备份脚本文件;最后保存完成的备份脚本文件,并授予该备份脚本文件755权限。
在步骤S103中,创建cron作业时,首先以mongo用户身份登录,然后检查是否已存在cron作业;若是,则直接添加运行此cron作业的时间表;若否,则创建一个cron作业,再添加运行该cron作业的时间表。时间表中记录了运行cron作业的周期,修改该周期即修改自动备份的周期。
在步骤S104中,对数据进行自动备份之前,需要从备份位置删除n天前的备份镜像,并向相应的日志文件中写入注释,所述注释中记录了所述备份镜像的名称、备份日期和删除的日期;n为大于0的实数。
在步骤S104中,备份执行程序选择mongodump程序。
另外,本发明使用mongodump实用程序对数据进行备份,它位于bin目录中,这会将所有数据都备份到默认位置/bin/dump上的dump文件夹中。MongoDB使用默认端口27017。可以使用实用程序mongodump执行热(在线)和冷(离线)备份,以下对这两种备份方法进行详细说明:
一、离线MongoDB备份
1.创建一个备份目录。基于MongoDB数据库的大小,在各个备份位置创建备份目录,在这里,将备份目录创建为/mongo_data/backup;
2.将所有者更改为用户mongo;
3.停止mongod实例;
4.执行离线备份;
5.启动mongod实例。
二、在线MongoDB备份
要执行在线备份,需连续运行mongodump命令,然后重新启动mongod实例。可以使用或不使用SSL来运行此命令。
另外,如果知道故障是如何发生的和如何从故障中恢复,那么可以更好地规划和避免故障场景。以下将模拟不同类型的故障,并给出各种故障情况下的具体实施步骤:
一、整个数据库意外丢弃或受损坏
人为错误或硬件故障可能损害或损坏整个数据库。如果出现这种情况,可以应用mongodump的最后一次完整备份恢复整个数据库,并使用mongorestore实用程序还原它。
在此类型故障中,假设数据库为testdb1,其中的集合(比如users和students)包含一些记录,如下所示:
1.验证数据库和集合
a.以mongo用户身份进行登录:$sudo su–mongo;
b.找到bin目录:$cd/opt/mongodb/mongodb/bin/;
c.调用MongoDB shell:$./mongo--ssl--sslCAFile../cert/mongo.server.trust-certs.pem--sslPEMKeyPassword password123pre-mongo01.ibmcloud.com:27017;
d.验证数据库和集合。
2.备份整个数据库
使用以下代码备份整个数据库:
$./mongodump--ssl--sslCAFile../cert/mongo.server.trust-certs.pem--sslPEMKeyPassword password123--host pre-mongo01.ibmcloud.com:27017–dbtestdb1--out/mongo_data/backup/
2017-01-24T04:14:07.252-0500writing testdb1.student to
2017-01-24T04:14:07.253-0500writing testdb1.users to
2017-01-24T04:14:07.254-0500done dumping testdb1.student(3documents)
2017-01-24T04:14:07.254-0500done dumping testdb1.users(3documents)
3.模拟故障
a.连接到数据库:
>use testdb1
switched to db mydb
b.验证集合:
>show collections
student
users
c.验证当前数据库:
>db
testdb1
d.丢弃数据库:
>db.dropDatabase()
{"dropped":"testdb1","ok":1}
4.还原数据库testdb1
使用实用程序mongorestore还原备份镜像,如下所示:
$./mongorestore--ssl--sslCAFile
../cert/mongo.server.trust-certs.pem--sslPEMKeyPassword password123--host
pre-mongo01.ibmcloud.com:27017--db testdb1/mongo_data/backup/testdb1
在此实施例中,还原的最新备份镜像位于备份位置/mongo_data/backup/testdb1。
5.验证数据库和集合
要验证数据库是否已还原,请连接到数据库并查询集合:
>show dbs
testdb1 0.800GB
local 0.000GB
mydb 0.300GB
>use testdb1
switched to db testdb1
>show collections
student
users
>db.student.find({},{_id:0})
>db.users.find({},{_id:0})
二、意外丢弃某个集合
有时,尤其是在数据库中有成千上万个集合时,可能会意外丢弃某个集合。要恢复意外丢弃的集合,需要使用备份位置上该集合(例如collection.name.bson)的最新备份。在此实施例中,介绍如何使用集合student执行这些功能,该集合遭到丢弃并使用mongorestore实用程序还原它:
1.验证集合;
2.备份集合:仅在集合级别上执行备份;
3.模拟故障:
a连接到数据库;
b丢弃集合;
c验证内容是否已丢弃。
4.还原集合:
从mongo_data/backup位置还原集合(例如student.bson)的最新备份镜像;
5.验证集合:
要验证集合是否已还原,请连接到数据库并查询该集合。
使用mongodump和mongorestore实用程序执行备份和还原。使用一个cron作业调度并运行备份脚本,使用备份脚本来调度、维护和管理MongoDB数据库服务器的备份。
请参见图2,图2是本发明实施例的硬件设备工作示意图,所述硬件设备具体包括:一种基于MongoDB的数据库自动备份设备201、处理器202及存储设备203。
一种基于MongoDB的数据库自动备份设备201:所述一种基于MongoDB的数据库自动备份设备201实现所述一种基于MongoDB的数据库自动备份方法。
处理器202:所述处理器202加载并执行所述存储设备203中的指令及数据用于实现所述一种基于MongoDB的数据库自动备份方法。
存储设备203:所述存储设备203存储指令及数据;所述存储设备203用于实现所述一种基于MongoDB的数据库自动备份方法。
本发明的有益效果是:本发明提供一种新的数据库自动备份方法,改善传统手动备份数据存在数据丢失的风险,定期执行数据备份,保障数据安全。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于MongoDB的数据库自动备份方法,应用于终端设备,其特征在于:包括以下步骤:
S101:根据业务需求,选择备份任务;
S102:根据备份任务,选择MongoDB数据库中需要备份的数据;
S103:创建备份脚本文件和一个cron作业,所述cron作业调度并运行所述备份脚本文件;
S104:利用备份执行程序调用所述备份脚本文件,将需要备份的数据自动备份到终端设备中。
2.如权利要求1所述的一种基于MongoDB的数据库自动备份方法,其特征在于:在步骤S101中,备份任务分为:整个数据库的备份和数据库中若干数据表格的备份。
3.如权利要求1所述的一种基于MongoDB的数据库自动备份方法,其特征在于:在步骤S103中,创建备份脚本文件时,首先以root用户身份登录服务器,并将服务器所有者更改为mongo用户;然后以mongo用户身份登录服务器,创建备份脚本文件;最后保存完成的备份脚本文件,并授予该备份脚本文件755权限。
4.如权利要求1所述的一种基于MongoDB的数据库自动备份方法,其特征在于:在步骤S103中,创建cron作业时,首先以mongo用户身份登录,然后检查是否已存在cron作业;若是,则直接添加运行此cron作业的时间表;若否,则创建一个cron作业,再添加运行该cron作业的时间表。
5.如权利要求4所述的一种基于MongoDB的数据库自动备份方法,其特征在于:时间表中记录了运行cron作业的周期,修改该周期即修改自动备份的周期。
6.如权利要求1所述的一种基于MongoDB的数据库自动备份方法,其特征在于:在步骤S104中,对数据进行自动备份之前,需要从备份位置删除n天前的备份镜像,并向相应的日志文件中写入注释,所述注释中记录了所述备份镜像的名称、备份日期和删除的日期;n为大于0的实数。
7.如权利要求1所述的一种基于MongoDB的数据库自动备份方法,其特征在于:在步骤S104中,备份执行程序选择mongodump程序。
8.一种存储设备,其特征在于:所述存储设备存储指令及数据用于实现权利要求1~7所述的任意一种基于MongoDB的数据库自动备份方法。
9.一种基于MongoDB的数据库自动备份设备,其特征在于:包括:处理器及存储设备;所述处理器加载并执行存储设备中的指令及数据用于实现权利要求1~7所述的任意一种基于MongoDB的数据库自动备份方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811291076.9A CN109697139A (zh) | 2018-10-31 | 2018-10-31 | 一种基于MongoDB的数据库自动备份方法、设备及存储设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811291076.9A CN109697139A (zh) | 2018-10-31 | 2018-10-31 | 一种基于MongoDB的数据库自动备份方法、设备及存储设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109697139A true CN109697139A (zh) | 2019-04-30 |
Family
ID=66229783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811291076.9A Withdrawn CN109697139A (zh) | 2018-10-31 | 2018-10-31 | 一种基于MongoDB的数据库自动备份方法、设备及存储设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109697139A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110688361A (zh) * | 2019-08-16 | 2020-01-14 | 平安普惠企业管理有限公司 | 数据迁移方法、电子装置及计算机设备 |
CN111104258A (zh) * | 2019-12-23 | 2020-05-05 | 北京金山云网络技术有限公司 | MongoDB数据库的备份方法、装置及电子设备 |
CN111858762A (zh) * | 2020-07-21 | 2020-10-30 | 中冶南方工程技术有限公司 | 一种全流程质量管理系统的数据存储方法和系统 |
CN114816845A (zh) * | 2022-04-06 | 2022-07-29 | 在线途游(北京)科技有限公司 | 一种基于MongoDB的快速数据回滚方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102917072A (zh) * | 2012-10-31 | 2013-02-06 | 北京奇虎科技有限公司 | 用于数据服务器集群之间进行数据迁移的设备、系统及方法 |
US20180307569A1 (en) * | 2016-06-15 | 2018-10-25 | Tencent Technology (Shenzhen) Company Limited | Data retracement method, apparatus, and system |
-
2018
- 2018-10-31 CN CN201811291076.9A patent/CN109697139A/zh not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102917072A (zh) * | 2012-10-31 | 2013-02-06 | 北京奇虎科技有限公司 | 用于数据服务器集群之间进行数据迁移的设备、系统及方法 |
US20180307569A1 (en) * | 2016-06-15 | 2018-10-25 | Tencent Technology (Shenzhen) Company Limited | Data retracement method, apparatus, and system |
Non-Patent Citations (1)
Title |
---|
CHENJSH36: "Mongodb定时备份和恢复", 《SEGMENTFAULT》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110688361A (zh) * | 2019-08-16 | 2020-01-14 | 平安普惠企业管理有限公司 | 数据迁移方法、电子装置及计算机设备 |
CN111104258A (zh) * | 2019-12-23 | 2020-05-05 | 北京金山云网络技术有限公司 | MongoDB数据库的备份方法、装置及电子设备 |
CN111858762A (zh) * | 2020-07-21 | 2020-10-30 | 中冶南方工程技术有限公司 | 一种全流程质量管理系统的数据存储方法和系统 |
CN114816845A (zh) * | 2022-04-06 | 2022-07-29 | 在线途游(北京)科技有限公司 | 一种基于MongoDB的快速数据回滚方法及装置 |
CN114816845B (zh) * | 2022-04-06 | 2024-05-10 | 在线途游(北京)科技有限公司 | 一种基于MongoDB的快速数据回滚方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11392542B2 (en) | Image level copy or restore, such as image level restore without knowledge of data object metadata | |
CN109697139A (zh) | 一种基于MongoDB的数据库自动备份方法、设备及存储设备 | |
AU2012347883B2 (en) | System and method for restoring application data | |
JP5021929B2 (ja) | 計算機システム及びストレージシステムと管理計算機並びにバックアップ管理方法 | |
US20160253254A1 (en) | Diagnosing errors in data storage and archiving in a cloud or networking environment | |
CN109582443A (zh) | 基于分布式存储技术的虚拟机备份系统 | |
US7979649B1 (en) | Method and apparatus for implementing a storage lifecycle policy of a snapshot image | |
US20060173870A1 (en) | Computing system and a method for calculating a recovery time of an application system | |
JP2002007304A5 (zh) | ||
KR20120098708A (ko) | 가상 데이터베이스를 사용하는 데이터센터 작업흐름 자동화 시나리오 | |
US8412674B2 (en) | Replication resynchronization | |
EP2382543B1 (en) | Granular application data lifecycle sourcing from a single backup | |
US20070033361A1 (en) | Apparatus, system, and method for fastcopy target creation | |
CN102316131A (zh) | 云平台系统智能备份 | |
CN107533495A (zh) | 用于数据备份和恢复的技术 | |
CN109739691A (zh) | 数据库备份和恢复方法、装置、终端设备及存储介质 | |
CN108932432A (zh) | 数据保护方法和主机服务器系统 | |
US20130262393A1 (en) | Database backup without particularly specifying server | |
CN109376036A (zh) | 一种用于备份虚拟机的方法和装置 | |
US20080215639A1 (en) | Data Synchronization | |
CN115098300B (zh) | 一种数据库的备份方法、容灾方法、装置及设备 | |
CN106445729A (zh) | 一种基于备份虚拟化的方法 | |
CN114780286A (zh) | 一种数据容灾方法、装置、设备及可读存储介质 | |
US20130054909A1 (en) | System and Method for Backing Up Data | |
ZA200502951B (en) | Method, system and software for journaling system objects. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20190430 |
|
WW01 | Invention patent application withdrawn after publication |