a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 數據庫 > MongoDB > 正文

mongodb如何創建備份,以及如何恢復數據?

2024-09-07 00:22:35
字體:
來源:轉載
供稿:網友
  了解數據的備份與恢復是很有必要的,因此我們很難保證數據不會出現意外,做好備份與恢復能夠讓數據損失降到最低。那么在mongodb如何創建備份,以及如何恢復數據呢?下面我們一起來學習一下。
 
  為什么要備份?
 
  備份的目的是對數據做冗余的一種方式,它能夠讓我們在某種情況下保證最少數據的丟失;之前我們對mongodb做副本集也是對數據做冗余,但是這種在副本集上做數據冗余僅僅是針對系統故障或服務異常等一些非人為的故障發生時,保證數據服務的可用性;它不能夠避免人為的誤操作;為了使得數據的安全,將數據損失降低到最小,我們必須對數據庫周期性的做備份;
 
 
  mongodb邏輯備份工具
 
  在mongodb中使用邏輯備份的工具有兩組,第一組是mongodump/mongorestore,使用mongodump/mongorestore這組工具來邏輯的備份數據,它備份出來的數據是BSON格式,BSON是一種二進制格式,通常無法使用文本編輯器直接打開查看其內容,對人類的可讀性較差,但它的優點是保存的文件體積要小;使用這組命令導出的數據,在恢復是依賴mongodb版本,不同版本導出的BSON格式略有不同,所以恢復時,可能存在版本不同而導致恢復數據失敗的情況;另外一組是mongoexport/mongoimport,這組工具導出的數據是json格式的數據,通常我們可以使用文本編輯器打開直接查看,對人類的可讀性較好,但體積相對BSON格式的數據要大,恢復時不依賴版本;所以跨版本備份要先查看下對應版本的兼容性,如果兼容使用mongodump/mongorestore,不兼容的話建議使用mongoexport/mongoimport;這里需要注意一點,JSON格式雖然可讀性很好,也很通用,但是它只是保留了數據部分,而沒有保留索引,賬戶等基礎信息,在使用是應該注意;
 
  使用mongodump備份數據
 
  插入數據
 
> use testdb
switched to db testdb
> for(i=1;i<=1000;i++) db.test.insert({id:i,name:"test"+i,age:(i%120),classes:(i%25)})
WriteResult({ "nInserted" : 1 })
> show tables
test
> db.test.findOne()
{
 "_id" : ObjectId("5fb130da012870b3c8e3c4ad"),
 "id" : 1,
 "name" : "test1",
 "age" : 1,
 "classes" : 1
}
> db.test.count()
1000
>
  備份所有數據庫
 
[root@node11 ~]# mongodump -utom -p123456 -h 192.168.0.52:27017 --authenticationDatabase admin -o ./node12_mongodb_full_backup
2020-11-15T21:47:45.439+0800 writing admin.system.users to node12_mongodb_full_backup/admin/system.users.bson
2020-11-15T21:47:45.442+0800 done dumping admin.system.users (4 documents)
2020-11-15T21:47:45.443+0800 writing admin.system.version to node12_mongodb_full_backup/admin/system.version.bson
2020-11-15T21:47:45.447+0800 done dumping admin.system.version (2 documents)
2020-11-15T21:47:45.448+0800 writing testdb.test to node12_mongodb_full_backup/testdb/test.bson
2020-11-15T21:47:45.454+0800 done dumping testdb.test (1000 documents)
[root@node11 ~]# ls
node12_mongodb_full_backup
[root@node11 ~]# ll node12_mongodb_full_backup/
total 0
drwxr-xr-x 2 root root 128 Nov 15 21:47 admin
drwxr-xr-x 2 root root 49 Nov 15 21:47 testdb
[root@node11 ~]# tree node12_mongodb_full_backup/
node12_mongodb_full_backup/
├── admin
│ ├── system.users.bson
│ ├── system.users.metadata.json
│ ├── system.version.bson
│ └── system.version.metadata.json
└── testdb
 ├── test.bson
 └── test.metadata.json
 
2 directories, 6 files
[root@node11 ~]#
  提示:-u用于指定用戶,-p指定對應用戶的密碼,-h指定數據庫地址,--authenticationDatabase 指定驗證用戶和密碼對應的數據庫 -o指定要存放備份文件的目錄名稱;
 
  只備份單個testdb數據庫
 
[root@node11 ~]# mongodump -utom -p123456 -h 192.168.0.52:27017 --authenticationDatabase admin -d testdb -o ./node12_testdb
2020-11-15T21:53:36.523+0800 writing testdb.test to node12_testdb/testdb/test.bson
2020-11-15T21:53:36.526+0800 done dumping testdb.test (1000 documents)
[root@node11 ~]# tree ./node12_testdb
./node12_testdb
└── testdb
 ├── test.bson
 └── test.metadata.json
 
1 directory, 2 files
[root@node11 ~]#
  提示:-d用戶指定要備份的數據庫名稱;
 
  只備份testdb下的test集合
 
[root@node11 ~]# mongodump -utom -p123456 -h 192.168.0.52:27017 --authenticationDatabase admin -d testdb -c test -o ./node12_testdb_test-collection
2020-11-15T21:55:48.217+0800 writing testdb.test to node12_testdb_test-collection/testdb/test.bson
2020-11-15T21:55:48.219+0800 done dumping testdb.test (1000 documents)
[root@node11 ~]# tree ./node12_testdb_test-collection
./node12_testdb_test-collection
└── testdb
 ├── test.bson
 └── test.metadata.json
 
1 directory, 2 files
[root@node11 ~]#
  提示:-c用于指定要備份的集合(collection)名稱;
 
  壓縮備份testdb庫
 
[root@node11 ~]# mongodump -utom -p123456 -h 192.168.0.52:27017 --authenticationDatabase admin -d testdb --gzip -o ./node12_mongodb_testdb-gzip
2020-11-15T22:00:52.268+0800 writing testdb.test to node12_mongodb_testdb-gzip/testdb/test.bson.gz
2020-11-15T22:00:52.273+0800 done dumping testdb.test (1000 documents)
[root@node11 ~]# tree ./node12_mongodb_testdb-gzip
./node12_mongodb_testdb-gzip
└── testdb
 ├── test.bson.gz
 └── test.metadata.json.gz
 
1 directory, 2 files
[root@node11 ~]#
  提示:可以看到使用壓縮,只需要加上--gzip選項即可,備份出來的數據就是.gz后綴結尾的壓縮文件;
 
  壓縮備份testdb庫下的test集合
 
[root@node11 ~]# mongodump -utom -p123456 -h 192.168.0.52:27017 --authenticationDatabase admin -d testdb -c test --gzip -o ./node12_mongodb_testdb-test-gzip
2020-11-15T22:01:31.492+0800 writing testdb.test to node12_mongodb_testdb-test-gzip/testdb/test.bson.gz
2020-11-15T22:01:31.500+0800 done dumping testdb.test (1000 documents)
[root@node11 ~]# tree ./node12_mongodb_testdb-test-gzip
./node12_mongodb_testdb-test-gzip
└── testdb
 ├── test.bson.gz
 └── test.metadata.json.gz
 
1 directory, 2 files
[root@node11 ~]#
  使用mongorestore恢復數據
 
  在node12上刪除testdb
 
> db
testdb
> db.dropDatabase()
{ "dropped" : "testdb", "ok" : 1 }
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
>
 
  驗證:登錄192.168.0.52:27017查看對應testdb數據庫是否恢復?
 
[root@node11 ~]# mongo -utom -p123456 192.168.0.52:27017/admin
MongoDB shell version v4.4.1
connecting to: mongodb://192.168.0.52:27017/admin?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("af96cb64-a2a4-4d59-b60a-86ccbbe77e3e") }
MongoDB server version: 4.4.1
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
 https://docs.mongodb.com/
Questions? Try the MongoDB Developer Community Forums
 https://community.mongodb.com
---
The server generated these startup warnings when booting:
 2020-11-15T20:42:23.774+08:00: ***** SERVER RESTARTED *****
 2020-11-15T20:42:29.198+08:00: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. We suggest setting it to 'never'
 2020-11-15T20:42:29.198+08:00: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. We suggest setting it to 'never'
---
---
 Enable MongoDB's free cloud-based monitoring service, which will then receive and display
 metrics about your deployment (disk utilization, CPU, operation statistics, etc).
 
   恢復單個庫
 
  刪除testdb庫
 
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
testdb 0.000GB
> use testdb
switched to db testdb
> db.dropDatabase()
{ "dropped" : "testdb", "ok" : 1 }
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
>

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲第一天堂 | 国产精品久久久久久久久久久免费看 | 国产免费视频一区二区三区 | 精品国产一区二区在线 | 中文字幕高清在线 | 欧美精品区 | 91久久国产精品 | 琪琪午夜伦伦电影福利片 | 日韩一区二区三区在线 | 久草在线2 | jjzz日本| 国产在线观看一区 | 国产欧美日韩精品一区 | 欧美天堂在线观看 | 中国黄色一级毛片 | 中文字幕日本视频 | 欧美日韩精品在线一区 | 日韩精品一二三区 | 国产福利一区二区在线 | 免费av电影在线观看 | 亚洲欧美国产一区二区 | 久久精品一级 | 在线视频自拍 | 一级h片| 亚洲一区中文字幕在线观看 | 在线观看成人小视频 | 色婷婷综合国产精品一区 | 美女久久久久久久久久久 | 国产成人宗合 | 色橹橹欧美在线观看视频高清 | 亚洲成人一区 | 欧美精品久久 | 日本在线观看免费 | 日韩综合网 | 欧美视频区 | 国产精品免费在线 | 日韩精品在线视频 | 成年免费视频黄网站在线观看 | 日韩在线一区二区 | 中文字幕av一区二区 | 特黄网站|