備份
[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目錄下
恢複
由於剛剛已經做了備份,所以我們先講庫my_mongodb刪除掉
> use my_mongodb switched to db my_mongodb > db.dropDatabase() { "dropped" : "my_mongodb", "ok" : 1 } > 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 { name: "_id_", ns: "my_mongodb.user", key: { _id: 1 }, v: 0 } Wed Apr 11 00:03:03 1 objects found [root@localhost bin]#
經驗證資料庫又回來了,其實要想恢複資料庫,大可不必先刪除my_mongodb庫,只要說明-drop參數,就可以在恢複的時候先刪除表然後再向表中插入資料。