mongodbのバックアップとリカバリ
3009 ワード
mongodbには、2つのコマンドがあり、データベースのバックアップとリカバリ(mongodump)があります.
1.バックアップ(mongodump)
使用方法:
例:
バックアップされたデータはバイナリで、圧縮されています.実际のデータベースよりずっと小さくて、私のデータベースは260余りMを占有して、バックアップした后に2 Mだけあります.
2.リカバリ(mongorestore)
使用方法:
例:
またmongodbではmongoexportとmongoimportの2つのコマンドを提供してデータをエクスポートまたはインポートし、エクスポートしたデータはjson形式です.バックアップとリカバリの機能も実現できます.
例:
1.バックアップ(mongodump)
使用方法:
[root@web3 3]# mongodump --help
options:
--help produce help message
-v [ --verbose ] be more verbose (include multiple times for more
verbosity e.g. -vvvvv)
-h [ --host ] arg mongo host to connect to ("left,right" for pairs)
-d [ --db ] arg database to use
-c [ --collection ] arg collection to use (some commands)
-u [ --username ] arg username
-p [ --password ] arg password
--dbpath arg directly access mongod data files in the given path,
instead of connecting to a mongod instance - needs
to lock the data directory, so cannot be used if a
mongod is currently accessing the same path
--directoryperdb if dbpath specified, each db is in a separate
directory
-o [ --out ] arg (=dump) output directory
例:
[root@web3 ~]# mongodump -h 192.168.1.103 -d citys -o /backup/mongobak/3
connected to: 192.168.1.103
DATABASE: citys to /backup/mongobak/3/citys
citys.building to /backup/mongobak/3/citys/building.bson
13650 objects
citys.system.indexes to /backup/mongobak/3/citys/system.indexes.bson
1 objects
バックアップされたデータはバイナリで、圧縮されています.実际のデータベースよりずっと小さくて、私のデータベースは260余りMを占有して、バックアップした后に2 Mだけあります.
2.リカバリ(mongorestore)
使用方法:
[root@web3 3]# mongorestore --help
usage: mongorestore [options] [directory or filename to restore from]
options:
--help produce help message
-v [ --verbose ] be more verbose (include multiple times for more
verbosity e.g. -vvvvv)
-h [ --host ] arg mongo host to connect to ("left,right" for pairs)
-d [ --db ] arg database to use
-c [ --collection ] arg collection to use (some commands)
-u [ --username ] arg username
-p [ --password ] arg password
--dbpath arg directly access mongod data files in the given path,
instead of connecting to a mongod instance - needs to
lock the data directory, so cannot be used if a
mongod is currently accessing the same path
--directoryperdb if dbpath specified, each db is in a separate
directory
--drop drop each collection before import
--objcheck validate object before inserting
--drop collection 。
例:
[root@web3 3]# mongorestore -h 127.0.0.1 --directoryperdb /backup/mongobak/3/
connected to: 127.0.0.1
/backup/mongobak/3/citys/building.bson
going into namespace [citys.building]
13667 objects
/backup/mongobak/3/citys/system.indexes.bson
going into namespace [citys.system.indexes]
1 objects
またmongodbではmongoexportとmongoimportの2つのコマンドを提供してデータをエクスポートまたはインポートし、エクスポートしたデータはjson形式です.バックアップとリカバリの機能も実現できます.
例:
mongoexport -d mixi_top_city_prod -c building_45 -q '{ "uid" : "10832545" }' > mongo_10832545.bson
mongoimport -d mixi_top_city -c building_45 --file mongo_10832545.bson