mongodb資料匯入匯出以及備份恢復

2021-06-21 12:16:01 字數 4062 閱讀 4797

資料匯出 mongoexport

假設庫里有一張user 表,裡面有2 條記錄,我們要將它匯出

> use my_mongodb

switched to db my_mongodb

> db.user.find();

>

1 常用匯出方法

[root@localhost bin]# ./mongoexport -d my_mongodb -c user -o user.dat

connected to: 127.0.0.1

exported 2 records

[root@localhost bin]# cat user.dat

, "uid" : 2, "username" : "jerry", "age" : 100 }

, "uid" : 1, "username" : "tom", "age" : 25 }

[root@localhost bin]#

引數說明:

-d 指明使用的庫, 本例中為」 my_mongodb」

-c 指明要匯出的表, 本例中為」user」

-o 指明要匯出的檔名, 本例中為」user.dat」

從上面可以看到匯出的方式使用的是json 的樣式

2 匯出csv格式的檔案

[root@localhost bin]# ./mongoexport -d my_mongodb -c user --csv -f uid,username,age -o

user_csv.dat

connected to: 127.0.0.1

exported 2 records

[root@localhost bin]# cat user_csv.dat

uid,username,age

2,"jerry",100

1,"tom",25

[root@localhost bin]#

引數說明:

-csv 指要要匯出為csv 格式

-f 指明需要匯出哪些例

更詳細的用法可以 mongoexport –help 來檢視

資料匯入mongoimport

在上例中我們討論的是匯出工具的使用,那麼本節將討論如何向表中匯入資料

1 匯入json 資料

我們先將表user 刪除掉,以便演示效果

> db.user.drop();

true

> show collections;

system.indexes

>

然後匯入資料

[root@localhost bin]# ./mongoimport -d my_mongodb -c user user.dat

connected to: 127.0.0.1

imported 2 objects

[root@localhost bin]#

可以看到匯入資料的時候會隱式建立表結構

2 匯入csv資料

我們先將表user 刪除掉,以便演示效果

> db.user.drop();

true

> show collections;

system.indexes

>

然後匯入資料

[root@localhost bin]# ./mongoimport -d my_mongodb -c user --type csv --headerline --file

user_csv.dat

connected to: 127.0.0.1

imported 3 objects

[root@localhost bin]#

引數說明:

-type 指明要匯入的檔案格式

-headerline 批明不匯入第一行,因為第一行是列名

-file 指明要匯入的檔案路徑

注意:csv 格式良好,主流資料庫都支援匯出為csv 的格式,所以這種格式非常利於異構資料遷移

資料備份mongodump

可以用mongodump 來做mongodb 的庫或表級別的備份,下面舉例說明:

備份my_mongodb 資料庫

[root@localhost bin]# ./mongodump -d my_mongodb

connected to: 127.0.0.1

database: my_mongodb to dump/my_mongodb

my_mongodb.system.indexes to dump/my_mongodb/system.indexes.bson

1 objects

my_mongodb.user to dump/my_mongodb/user.bson

2 objects

[root@localhost bin]# ll

總計 67648

-rwxr-xr-x 1 root root 7508756 2011-04-06 bsondump

drwxr-xr-x 3 root root 4096 04-10 23:54 dump

-rwxr-xr-x 1 root root 2978016 2011-04-06 mongo

此時會在當前目錄下建立乙個dump 目錄,用於存放備份出來的檔案

也可以指定備份存放的目錄,

[root@localhost bin]# ./mongodump -d my_mongodb -o my_mongodb_dump

connected to: 127.0.0.1

database: my_mongodb to my_mongodb_dump/my_mongodb

my_mongodb.system.indexes to

my_mongodb_dump/my_mongodb/system.indexes.bson

1 objects

my_mongodb.user to my_mongodb_dump/my_mongodb/user.bson

2 objects

[root@localhost bin]#

這個例子中將備份的檔案存在了當前目錄下的my_mongodb_dump 目錄下

資料恢復mongorestore

由於剛剛已經做了備份,所以我們先將庫my_mongodb 刪除掉

> use my_mongodb

switched to db my_mongodb

> db.dropdatabase()

> show dbs

admin (empty)

local (empty)

test (empty)

>

接下來我們進行資料庫恢復

[root@localhost bin]# ./mongorestore -d my_mongodb my_mongodb_dump/*

connected to: 127.0.0.1

wed apr 11 00:03:03 my_mongodb_dump/my_mongodb/user.bson

wed apr 11 00:03:03 going into namespace [my_mongodb.user]

wed apr 11 00:03:03 2 objects found

wed apr 11 00:03:03 my_mongodb_dump/my_mongodb/system.indexes.bson

wed apr 11 00:03:03 going into namespace [my_mongodb.system.indexes]

wed apr 11 00:03:03 , v: 0 }

wed apr 11 00:03:03 1 objects found

[root@localhost bin]#

經驗證資料庫又回來了,其實要是想恢復庫,也大可不必先刪除my_mongodb 庫,只要指

明 –drop 引數,就可以在恢復的時候先刪除表然後再向表中插入資料

mongodb資料匯入匯出以及備份恢復

資料匯出 mongodump d grouprules o dump 資料恢復 mongorestore dump grouprules 資料匯出 mongoexport 假設庫里有一張user 表,裡面有2 條記錄,我們要將它匯出 use my mongodb switched to db my ...

MongoDB匯入匯出資料

匯出json格式 mongoexport d test c t1 o users lisa downloads t1.dat d 指明使用的庫 c 指明要匯出的集合 o 指明要匯出的檔名 檢視t1.dat發現裡面的資料是json格式的。mongoexport d test c t1 q o user...

mongodb 資料匯出匯入

mkdir p data eclassweb mongodump h 172.16.0.181 u eclassuser p eclassuser123 d eclassweb o data eclassweb opt mongodb 3.4.20 bin mongodump h 172.16.0....