mongodbデータバックアップとリカバリ
2462 ワード
MongoDBは、mongdumpとmongorestoreの2つのコマンドでバックアップとリカバリの機能を提供します.
まず、コマンド構文について説明します.
#mongodump -h dbhost -d dbname -o dbdirectory
-h:MongDBが存在するサーバアドレス、例えば:127.0.0.1、もちろんポート番号:127.0.0.1:27017も指定できます
-d:バックアップが必要なデータベース・インスタンス(testなど)
-o:バックアップのデータ格納場所、例えば:/home、もちろんこのディレクトリは事前に確立する必要があります.バックアップが完了した後、システムは自動的にdumpディレクトリの下にtestディレクトリを構築し、このディレクトリにはデータベースインスタンスのバックアップデータが格納されます.
#mongorestore -h dbhost -d dbname --directoryperdb dbdirectory
-h:MongoDBのサーバアドレス
-d:リカバリが必要なデータベース・インスタンス、たとえばtestです.もちろん、この名前はバックアップ時とは異なります.例えばtest 2
--directoryperdb:バックアップデータの場所、例えば:/home/test、ここではなぜバックアップ時のdumpではなくtestを追加するのか、読者自身がヒントを見てみましょう.
--drop:復元する場合は、現在のデータを削除し、バックアップしたデータを復元します.つまり、リカバリ後、バックアップ後に変更を加えたデータは削除され、慎重に使用されます.
具体的な操作は以下の通りです.
まず、コマンド構文について説明します.
#mongodump -h dbhost -d dbname -o dbdirectory
-h:MongDBが存在するサーバアドレス、例えば:127.0.0.1、もちろんポート番号:127.0.0.1:27017も指定できます
-d:バックアップが必要なデータベース・インスタンス(testなど)
-o:バックアップのデータ格納場所、例えば:/home、もちろんこのディレクトリは事前に確立する必要があります.バックアップが完了した後、システムは自動的にdumpディレクトリの下にtestディレクトリを構築し、このディレクトリにはデータベースインスタンスのバックアップデータが格納されます.
#mongorestore -h dbhost -d dbname --directoryperdb dbdirectory
-h:MongoDBのサーバアドレス
-d:リカバリが必要なデータベース・インスタンス、たとえばtestです.もちろん、この名前はバックアップ時とは異なります.例えばtest 2
--directoryperdb:バックアップデータの場所、例えば:/home/test、ここではなぜバックアップ時のdumpではなくtestを追加するのか、読者自身がヒントを見てみましょう.
--drop:復元する場合は、現在のデータを削除し、バックアップしたデータを復元します.つまり、リカバリ後、バックアップ後に変更を加えたデータは削除され、慎重に使用されます.
具体的な操作は以下の通りです.
[root@AY1308021452325580baZ ~]# mongodump -h localhost -d test -o /home/
connected to: localhost
Mon Sep 16 17:25:28.143 DATABASE: test to /home/test
Mon Sep 16 17:25:28.146 test.system.indexes to /home/test/system.indexes.bson
Mon Sep 16 17:25:28.147 2 objects
Mon Sep 16 17:25:28.147 test.test to /home/test/test.bson
Mon Sep 16 17:25:28.147 1 objects
Mon Sep 16 17:25:28.147 Metadata for test.test to /home/test/test.metadata.json
Mon Sep 16 17:25:28.147 test.testCollection to /home/test/testCollection.bson
Mon Sep 16 17:25:28.148 2 objects
Mon Sep 16 17:25:28.148 Metadata for test.testCollection to /home/test/testCollection.metadata.json
[root@AY1308021452325580baZ test]# mongorestore -h localhost -d test -directoryperdb /home/test --drop
connected to: localhost
Mon Sep 16 17:26:40.540 /home/test/testCollection.bson
Mon Sep 16 17:26:40.540 going into namespace [test.testCollection]
Mon Sep 16 17:26:40.540 dropping
2 objects found
Mon Sep 16 17:26:40.540 Creating index: { key: { _id: 1 }, ns: "test.testCollection", name: "_id_" }
Mon Sep 16 17:26:40.541 /home/test/test.bson
Mon Sep 16 17:26:40.541 going into namespace [test.test]
Mon Sep 16 17:26:40.541 dropping
1 objects found
Mon Sep 16 17:26:40.543 Creating index: { key: { _id: 1 }, ns: "test.test", name: "_id_" }