mongoDB資料庫備份和恢復

2021-08-17 05:29:46 字數 4332 閱讀 1069

mongodb資料備份和還原主要分為二種,一種是針對於庫的mongodump和mongorestore,一種是針對庫中表的mongoexport和mongoimport。

mongodump -h ip --port 埠 -u 使用者名稱 -p 密碼 -d 資料庫 -o 檔案存在路徑
備註:1、如果沒有使用者,可以去掉-u和-p(使用者名稱和密碼);2、如果匯出本機的資料庫,可以去掉-h(特定位址);3、如果是預設埠,可以去掉–port;4、如果想匯出所有資料庫,可以去掉-d。

[root@localhost mongodb]# mongodump -h 127.0.0.1 -o /home/zhangy/mongodb/

connected to: 127.0

.0.1

tue dec

306:15:55.448 all dbs

tue dec

306:15:55.449 database: test to /home/zhangy/mongodb/test

tue dec

306:15:55.449 test.system

.indexes to /home/zhangy/mongodb/test/system.indexes

.bson

tue dec

306:15:55.450

1 objects

tue dec

306:15:55.450 test.posts to /home/zhangy/mongodb/test/posts.bson

tue dec

306:15:55.480

0 objects

[root@localhost mongodb]# mongodump -h 192.168.1.108 -d tank -o /home/zhangy/mongodb/

connected to: 192.168

.1.108

tue dec

306:11:41.618 database: tank to /home/zhangy/mongodb/tank

tue dec

306:11:41.623 tank.system

.indexes to /home/zhangy/mongodb/tank/system.indexes

.bson

tue dec

306:11:41.623

2 objects

tue dec

306:11:41.623 tank.contact to /home/zhangy/mongodb/tank/contact.bson

tue dec

306:11:41.669

2 objects

tue dec

306:11:41.670 metadata for tank.contact to /home/zhangy/mongodb/tank/contact.metadata

.json

tue dec

306:11:41.670 tank.users to /home/zhangy/mongodb/tank/users.bson

tue dec

306:11:41.685

2 objects

tue dec

306:11:41.685 metadata for tank.users to /home/zhangy/mongodb/tank/users.metadata

.json

mongorestore -h ip --port 埠 -u 使用者名稱 -p 密碼 -d 資料庫 --drop 檔案存在路徑
1 –drop的意思是,先刪除所有的記錄,然後恢復。

2,恢復所有資料庫到mongodb中

[root@localhost mongodb]# mongorestore /home/zhangy/mongodb/  #這裡的路徑是所有庫的備份路徑
3,還原指定的資料庫

[root@localhost mongodb]# mongorestore -d tank /home/zhangy/mongodb/tank/  #tank這個資料庫的備份路徑
[root@localhost mongodb]# mongorestore -d tank_new /home/zhangy/mongodb/tank/  #將tank還有tank_new資料庫中
這二個命令,可以實現資料庫的備份與還原,檔案格式是json和bson的。無法指寫到表備份或者還原。

mongoexport -h ip –port 埠 -u 使用者名稱 -p 密碼 -d 資料庫 -c 表名 -f 字段 -q 條件匯出 –csv -o 檔名
上面的引數好理解,重點說一下:

-f 匯出指欄位,以字型大小分割,-f name,email,age匯出name,email,age這三個字段

-q 可以根查詢條件匯出,-q 『』 匯出uid為100的資料

–csv 表示匯出的檔案格式為csv的,這個比較有用,因為大部分的關係型資料庫都是支援csv,在這裡有共同點

[root@localhost mongodb]# mongoexport -d tank -c users -o /home/zhangy/mongodb/tank/users.dat

connected to:

127.0.0.1

exported 4 records

[root@localhost mongodb]# mongoexport -d tank -c users --csv -f uid,name,*** -o tank/users.csv

connected to:

127.0.0.1

exported 4 records

[root@localhost mongodb]# mongoexport -d tank -c users -q '}' -o tank/users.json

connected to:

127.0.0.1

exported 3 records

1.1,還原整表匯出的非csv檔案
mongoimport -h ip --port 埠 -u 使用者名稱 -p 密碼 -d 資料庫 -c 表名 --upsert --drop 檔名
重點說一下–upsert,其他引數上面的命令已有提到,–upsert 插入或者更新現有資料

1.2,還原部分欄位的匯出檔案

mongoimport -h ip --port 埠 -u 使用者名稱 -p 密碼 -d 資料庫 -c 表名 --upsertfields 字段 --drop 檔名
–upsertfields根–upsert一樣

1.3,還原匯出的csv檔案

mongoimport -h ip --port 埠 -u 使用者名稱 -p 密碼 -d 資料庫 -c 表名 --

type 型別 --headerline --upsert --drop 檔名

上面三種情況,還可以有其他排列組合的。

[root@localhost mongodb]# mongoimport -d tank -c users –upsert tank/users.dat 

connected to:

127.0.0.1

tuedec

3 08:26:

52.852 imported 4 objects

[root@localhost mongodb]# mongoimport -d tank -c users –upsertfields uid,name,*** tank/users.dat 

connected to:

127.0.0.1

tuedec

3 08:31:

15.179 imported 4 objects

[root@localhost mongodb]# mongoimport -d tank -c users –type

csv –headerline –file

tank/users.csv

connected to: 127.0

.0.1

tue dec 3

08:37:21.961 imported 4 objects

mongodb資料庫備份恢復

mongodb資料檔案備份與恢復 備份與恢復資料對於管理任何資料儲存系統來說都是非常重要的。1 冷備份與恢復 建立資料檔案的副本 前提是要停止mongodb伺服器 也就是直接copy www.2cto.com mongodb將所有資料都儲存在資料目錄下,預設是 data db windows下是c ...

MongoDB 資料庫備份與恢復

這裡備份下來的是json和bson檔案 其中json儲存元資料,bson儲存具體資料 直接寫 mongodump命令,客戶端會連線到ip為 127.0.0.1 埠號為 27017 的mongodb服務上,並備份所有資料到 bin dump 目錄中。這裡恢復檔案為json和bson 比如 mongor...

mongodb資料庫備份恢復 windows系統

備份語法 mongodump命令指令碼語法如下 mongodump h dbhost d dbname o dbdirectory 需要備份的資料庫例項,例如 test 備份的資料存放位置,例如 c data dump,當然該目錄需要提前建立,在備份完成後,系統自動在dump目錄下建立乙個test目...