MongoDB学習の旅14:MongoDBデータバックアップとリカバリ

2163 ワード

バックアップ
[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パラメータを説明するだけで、リカバリ時にテーブルを削除してからテーブルにデータを挿入できます.