10

タイトルが示すように、MongoDB GridFSさまざまな種類のファイル (テキスト、pdf、xls など) を含むデータベースがあり、このデータベースを最も簡単な方法でバックアップしたいと考えています。

複製はオプションではありません。できれば、データベースをファイルにダンプしてからそのファイルをバックアップする通常のデータベースの方法で実行したいと思います(必要に応じて、後でデータベース全体を100%復元するために使用できます)。それはできますmongodumpか?また、バックアップを増分で行いたいと考えています。それは と で問題にGridFSなりmongodumpますか?

最も重要なことは、それが最善の方法であるかどうかです。私は にあまり詳しくありませんがMongoDB、 とmongodump同様にmysqldump機能しMySQLますか? MongoDB GridFSおよび増分バックアップのベスト プラクティスは何ですか?

それが違いを生むなら、私は走っLinuxています。

4

1 に答える 1

18

GridFS は、fs.files と fs.chunks の 2 つのコレクションにファイルを格納します。

詳細については、GridFS 仕様ドキュメントを参照してください: http://www.mongodb.org/display/DOCS/GridFS+Specification

両方のコレクションは、他のコレクションと同様に、mongodump を使用してバックアップできます。mongodump に関するドキュメントは、 http ://www.mongodb.org/display/DOCS/Import+Export+Tools#ImportExportTools-mongodump にあります。

端末からは、次のようになります。

このデモでは、私のデータベース名は「gridFS」です。

まず、mongodump を使用して、fs.files および fs.chunks コレクションをデスクトップ上のフォルダーに戻します。

$ bin/mongodump --db gridFS --collection fs.chunks --out /Desktop
connected to: 127.0.0.1
DATABASE: gridFS     to     /Desktop/gridFS
    gridFS.fs.chunks to /Desktop/gridFS/fs.chunks.bson
         3 objects
$ bin/mongodump --db gridFS --collection fs.files --out /Desktop
connected to: 127.0.0.1
DATABASE: gridFS     to     /Desktop/gridFS
    gridFS.fs.files to /Users/mbastien/Desktop/gridfs/gridFS/fs.files.bson
         3 objects

現在、mongorestore を使用して、バックアップされたコレクションを「gridFScopy」と呼ばれる新しい (デモンストレーション用の) データベースにプルします。

$ bin/mongorestore --db gridFScopy --collection fs.chunks /Desktop/gridFS/fs.chunks.bson 
connected to: 127.0.0.1
Thu Jan 19 12:38:43 /Desktop/gridFS/fs.chunks.bson
Thu Jan 19 12:38:43      going into namespace [gridFScopy.fs.chunks]
3 objects found
$ bin/mongorestore --db gridFScopy --collection fs.files /Desktop/gridFS/fs.files.bson 
connected to: 127.0.0.1
Thu Jan 19 12:39:37 /Desktop/gridFS/fs.files.bson
Thu Jan 19 12:39:37      going into namespace [gridFScopy.fs.files]
3 objects found

これで Mongo シェルが開始され、復元を確認できるようになりました。

$ bin/mongo
MongoDB shell version: 2.0.2
connecting to: test
> use gridFScopy
switched to db gridFScopy
> show collections
fs.chunks
fs.files
system.indexes
> 

コレクション fs.chunks と fs.files が新しい DB に正常に復元されました。

fs.files および fs.chunks コレクションに対して定期的に mongodump を実行するスクリプトを作成できます。

増分バックアップに関しては、MongoDB では実際にはサポートされていません。「mongodb 増分バックアップ」を Google で検索すると、この件に関する mongodb-user Google グループの優れたディスカッションが明らかになり ます。

継続的なバックアップのために、多くのユーザーはレプリカ セットを使用します。(最初の質問で、これはオプションではないと述べたことに気づきました。これは、この回答を読んでいる可能性のあるコミュニティの他のメンバーのために含まれています。)プライマリであり、読み取られることはありません。詳細については、レプリカ セット構成ドキュメントの「メンバー オプション」セクションを参照してください。 http://www.mongodb.org/display/DOCS/Replica+Set+Configuration#ReplicaSetConfiguration-Memberoptions

于 2012-01-19T18:09:05.113 に答える