我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MongoDB中怎么实现备份与恢复

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MongoDB中怎么实现备份与恢复

今天就跟大家聊聊有关MongoDB中怎么实现备份与恢复,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

一 mongoexport/mongoimport

[root@svnhost bin]# pwd

/usr/local/mongodb/bin

[root@svnhost bin]# ./mongoexport --help

导出chendb下test01表

[root@svnhost bin]# ./mongoexport -d chendb -c test01 -o /mongobak/chendb_test01.bak

[root@svnhost bin]# ./mongoexport -d chendb -c test02 -o /mongobak/chendb_test02.bak

查看备份内容

[root@svnhost bin]# cat /mongobak/chendb_test01.bak 

{"_id":{"$oid":"5b8f418f1c1560b2bb03cb7b"},"url":"www.sina.com"}

{"_id":{"$oid":"5b8f41c51c1560b2bb03cb7c"},"url":"ccc - 10"}

.....

{"_id":{"$oid":"5b8f41d81c1560b2bb03cb90"},"url":19.0}

{"_id":{"$oid":"5b8f41d81c1560b2bb03cb91"},"url":20.0}

{"_id":{"$oid":"5b8f74e51c1560b2bb03cb92"},"url":"www.baidu.com"}

恢复单表 

将test01表恢复并重命名为test01aaa

[root@svnhost ~]# cd /usr/local/mongodb/bin/

[root@svnhost bin]# ./mongoimport -d chendb -c test01aaa /mongobak/chendb_test01.bak

2018-09-05T17:39:09.592+0800 connected to: localhost

2018-09-05T17:39:09.807+0800 imported 24 documents

MongoDB Enterprise > show collections

test01

test01aaa

test02

查看数据

MongoDB Enterprise > db.test01aaa.find()

{ "_id" : ObjectId("5b8f41c51c1560b2bb03cb7c"), "url" : "ccc - 10" }

{ "_id" : ObjectId("5b8f41c51c1560b2bb03cb7d"), "url" : "ccc - 11" }

{ "_id" : ObjectId("5b8f41c51c1560b2bb03cb7e"), "url" : "ccc - 12" }

.....

{ "_id" : ObjectId("5b8f41d81c1560b2bb03cb90"), "url" : 19 }

{ "_id" : ObjectId("5b8f41d81c1560b2bb03cb91"), "url" : 20 }

{ "_id" : ObjectId("5b8f74e51c1560b2bb03cb92"), "url" : "www.baidu.com" }

删除表,模拟故障

MongoDB Enterprise > show collections

test01

test01aaa

test02

MongoDB Enterprise > db.test02.drop()

true

MongoDB Enterprise > db.test02.find()

恢复表test02

[root@svnhost bin]# ./mongoimport -d chendb -c test02 /mongobak/chendb_test02.bak

2018-09-05T17:49:47.912+0800 connected to: localhost

2018-09-05T17:49:48.089+0800 imported 1 document

查看数据

MongoDB Enterprise > db.test02.find()

{ "_id" : ObjectId("5b8f752f943b3cbaa33a5518"), "url" : "www.baidu.com" }

二 mongodump/mongorestore

[root@svnhost bin]# ./mongodump --help

备份chendb全库

root@svnhost bin]# ./mongodump -d chendb -o /mongobak/db_backup/  

2018-09-06T10:24:19.545+0800 writing chendb.test01 to 

2018-09-06T10:24:19.545+0800 writing chendb.test02 to 

2018-09-06T10:24:19.546+0800 writing chendb.test01aaa to 

2018-09-06T10:24:19.547+0800 done dumping chendb.test01 (24 documents)

2018-09-06T10:24:19.563+0800 done dumping chendb.test02 (1 document)

2018-09-06T10:24:19.579+0800 done dumping chendb.test01aaa (24 documents)

查看备份文件

[root@svnhost bin]# unset LANG

[root@svnhost bin]# ll -rth /mongobak/db_backup/chendb/     

total 24K

-rw-r--r-- 1 root root 127 Sep  6 10:24 test01.metadata.json

-rw-r--r-- 1 root root 127 Sep  6 10:24 test02.metadata.json

-rw-r--r-- 1 root root 130 Sep  6 10:24 test01aaa.metadata.json

-rw-r--r-- 1 root root 914 Sep  6 10:24 test01.bson

-rw-r--r-- 1 root root  45 Sep  6 10:24 test02.bson

-rw-r--r-- 1 root root 914 Sep  6 10:24 test01aaa.bson

备份MongoDB下全部数据库

[root@svnhost bin]# ./mongodump -o /mongobak/db_fullbackup/  

2018-09-06T10:28:35.465+0800 writing admin.system.version to 

2018-09-06T10:28:35.465+0800 done dumping admin.system.version (1 document)

2018-09-06T10:28:35.465+0800 writing chendb.test01 to 

2018-09-06T10:28:35.465+0800 writing chendb.test01aaa to 

2018-09-06T10:28:35.465+0800 writing chendb.test02 to 

2018-09-06T10:28:35.466+0800 done dumping chendb.test01 (24 documents)

2018-09-06T10:28:35.466+0800 done dumping chendb.test02 (1 document)

2018-09-06T10:28:35.482+0800 done dumping chendb.test01aaa (24 documents)

指定用户名密码和端口进行备份

[root@svnhost bin]# ./mongodump -d chendb -o /mongobak/newdbbackup -u cjc -p cjc --port 27017 

2018-09-06T16:37:45.209+0800 writing chendb.test01aaa to 

2018-09-06T16:37:45.209+0800 writing chendb.test01bbb to 

2018-09-06T16:37:45.209+0800 writing chendb.test01 to 

2018-09-06T16:37:45.209+0800 writing chendb.test02 to 

2018-09-06T16:37:45.250+0800 done dumping chendb.test02 (1 document)

2018-09-06T16:37:45.252+0800 done dumping chendb.test01bbb (24 documents)

2018-09-06T16:37:45.252+0800 done dumping chendb.test01aaa (24 documents)

2018-09-06T16:37:45.277+0800 done dumping chendb.test01 (24 documents)

备份chendb库中test01表

[root@svnhost bin]# ./mongodump -d chendb -c test01 -o /mongobak/chendb_test01/  

2018-09-06T10:42:39.354+0800 writing chendb.test01 to 

2018-09-06T10:42:39.354+0800 done dumping chendb.test01 (24 documents)

查看备份

[root@svnhost bin]# ll -rth /mongobak/chendb_test01/chendb/

total 8.0K

-rw-r--r-- 1 root root 127 Sep  6 10:42 test01.metadata.json

-rw-r--r-- 1 root root 914 Sep  6 10:42 test01.bson

恢复单表

[root@svnhost bin]# pwd

/usr/local/mongodb/bin

[root@svnhost bin]# mongorestore -d chendb -c test01bbb /mongobak/chendb_test01/chendb/test01.bson

2018-09-06T15:43:22.572+0800 checking for collection data in /mongobak/chendb_test01/chendb/test01.bson

2018-09-06T15:43:22.572+0800 reading metadata for chendb.test01bbb from /mongobak/chendb_test01/chendb/test01.metadata.json

2018-09-06T15:43:22.755+0800 restoring chendb.test01bbb from /mongobak/chendb_test01/chendb/test01.bson

2018-09-06T15:43:22.816+0800 no indexes to restore

2018-09-06T15:43:22.816+0800 finished restoring chendb.test01bbb (24 documents)

2018-09-06T15:43:22.816+0800 done

查看数据

MongoDB Enterprise > db.test01bbb.find()

{ "_id" : ObjectId("5b8f41d81c1560b2bb03cb87"), "url" : 10 }

{ "_id" : ObjectId("5b8f41d81c1560b2bb03cb88"), "url" : 11 }

......

{ "_id" : ObjectId("5b8f41d81c1560b2bb03cb90"), "url" : 19 }

{ "_id" : ObjectId("5b8f74e51c1560b2bb03cb92"), "url" : "www.baidu.com" }

恢复单个数据库并重命名为chendbaaa

[root@svnhost bin]# mongorestore -d chendbaaa /mongobak/db_backup/chendb

2018-09-06T15:52:04.586+0800 the --db and --collection args should only be used when restoring from a BSON file. Other uses are deprecated and will not exist in the future; use --nsInclude instead

2018-09-06T15:52:04.586+0800 building a list of collections to restore from /mongobak/db_backup/chendb dir

2018-09-06T15:52:04.587+0800 reading metadata for chendbaaa.test01 from /mongobak/db_backup/chendb/test01.metadata.json

2018-09-06T15:52:04.587+0800 reading metadata for chendbaaa.test01aaa from /mongobak/db_backup/chendb/test01aaa.metadata.json

2018-09-06T15:52:04.756+0800 restoring chendbaaa.test01aaa from /mongobak/db_backup/chendb/test01aaa.bson

2018-09-06T15:52:04.940+0800 restoring chendbaaa.test01 from /mongobak/db_backup/chendb/test01.bson

2018-09-06T15:52:04.944+0800 no indexes to restore

2018-09-06T15:52:04.944+0800 finished restoring chendbaaa.test01aaa (24 documents)

2018-09-06T15:52:04.944+0800 no indexes to restore

2018-09-06T15:52:04.944+0800 finished restoring chendbaaa.test01 (24 documents)

2018-09-06T15:52:04.944+0800 reading metadata for chendbaaa.test02 from /mongobak/db_backup/chendb/test02.metadata.json

2018-09-06T15:52:05.098+0800 restoring chendbaaa.test02 from /mongobak/db_backup/chendb/test02.bson

2018-09-06T15:52:05.102+0800 no indexes to restore

2018-09-06T15:52:05.102+0800 finished restoring chendbaaa.test02 (1 document)

2018-09-06T15:52:05.102+0800 done

查看数据库

MongoDB Enterprise > show dbs

admin      0.000GB

chendb     0.000GB

chendbaaa  0.000GB

config     0.000GB

local      0.000GB

MongoDB Enterprise > use chendbaaa

switched to db chendbaaa

MongoDB Enterprise > show collections

test01

test01aaa

test02

MongoDB Enterprise > db.test02.find()

{ "_id" : ObjectId("5b8f752f943b3cbaa33a5518"), "url" : "www.baidu.com" }

三 自动备份

备份计划任务

[root@cjcos ~]# crontab -l

01 03 * * * /dbbackup/mongodb/mongo_bak.sh

备份脚本

备份实例27017、27018、27019下所有数据库

并自动删除2020开头,3天前的所有备份文件

[root@cloud3 ~]# cat /dbbackup/mongodb/mongo_bak.sh 

#!/bin/bash

DATE=`date +%Y_%m_%d` 

mkdir -p /dbbackup/mongodb/$DATE/{27017,27018,27019}

/kingdee/mongodb/bin/mongodump -o /dbbackup/mongodb/$DATE/27017 --port 27017

/kingdee/mongodb/bin/mongodump -o /dbbackup/mongodb/$DATE/27018 --port 27018

/kingdee/mongodb/bin/mongodump -o /dbbackup/mongodb/$DATE/27019 --port 27019

find /dbbackup/mongodb -mtime +3 -name "2020*" -exec rm -rf {} \;

查看备份文件

[root@cjcos ~]# cd /dbbackup/mongodb/

[root@cjcos mongodb]# du -sh *

32G 2020_03_21

32G 2020_03_22

32G 2020_03_23

4.0K mongo_bak.sh

通过备份文件进行恢复 

恢复chendb

[root@svnhost bin]# pwd

/usr/local/mongodb/bin

[root@cjcos bin]# mongorestore -d chendbccc /dbbackup/mongodb/2020_03_23/27017/chendb

看完上述内容,你们对MongoDB中怎么实现备份与恢复有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MongoDB中怎么实现备份与恢复

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

mongodb数据备份与恢复怎么实现

要在MongoDB中实现数据备份和恢复,可以使用以下方法:备份数据:1. 使用mongodump命令来备份数据。该命令可以导出整个数据库或者指定集合的数据。shellmongodump --db --collection --out 这
2023-10-20

mongodb的备份与恢复

1.MongoDB 如何备份?>[root@service bin]# mongodump    备份数据   进行备份之后,如果你没指定备份目录会在当前目录自动生成dump备份文件 数据备份成功效果图  当前目录多了个copy文件,也就是我们刚备份时候的库名
mongodb的备份与恢复
2018-12-18

怎么备份与恢复MongoDB数据库

这期内容当中小编将会给大家带来有关怎么备份与恢复MongoDB数据库,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Mongodump工具在MongoDB中,mongodump工具通常用来做备份使用。它有如
2023-06-14

mongodb怎么恢复备份数据

要恢复 MongoDB 的备份数据,可以按照以下步骤进行操作:1. 首先,确保你已经创建了一个 MongoDB 的备份。备份可以通过使用 mongodump 命令或者其他备份工具来创建。2. 打开命令行终端,并导航到 MongoDB 的 b
2023-08-31

MongoDB的备份与恢复策略是什么

MongoDB的备份与恢复策略一般包括以下几个方面:数据备份:MongoDB可以通过mongodump命令来备份数据,该命令会将数据库中的所有数据导出为BSON格式的文件。可以根据需要定期执行备份操作,保证数据的安全性。日志备份:Mongo
MongoDB的备份与恢复策略是什么
2024-05-07

MySQL5.7 mysqldump备份与恢复的实现

MySQL 备份 冷备份: 停止服务进行备份,即停止数据库的写入 热备份: 不停止服务进行备份(在线) mysql 的 MyIsam 引擎只支持冷备份,InnoDB 支持热备份,原因: InnoDB引擎是事务性存储引擎,每一条语句都会写日志
2022-05-15

编程热搜

目录