mongodbエクスポートインポート
12113 ワード
データベースはすべて冷たいバックアップと熱いバックアップに分けられて、いわゆる冷たいバックアップはライブラリを停止して、それからデータをコピーします;ホット・バックアップとは、対応するツールを使用して、データベースの実行時にバックアップを行います.各ライブラリには独自のホットバックアップツールがあり、mongodbも例外ではありません.
mongodbのバックアップには主にホットスペアとコールドスペアがあります.
一、冷備:
mongodbサービスを停止し、直接copyデータディレクトリ;mongodbを起動するときは、--dbpathで自分で設定したデータベースストレージディレクトリを指定できます.
二、ホットスペア:
mongodumpでMongoDBのライブラリまたはテーブルレベルのホットバックアップを行います.
mongodumpと知り合って、
エクスポート・プロシージャを参照
エクスポートされたファイルは次のとおりです.
次にインポートを見てみましょう(エクスポートとインポートはバックアップとリカバリと見なすことができ、すべてのバックアップはリカバリのために行われています)
--oplogReplayというパラメータは、mongodbのエクスポートインポートでできる基本ポイントのリカバリに注意してください
もう1行insertしてテストします.
次にインポート:
調べて、データが戻ってきたかどうか見てみましょう.
一対のコマンドを紹介:mongoexport/mongoimport
エクスポートされたファイルを表示するには、次の手順に従います.
このツールは他のデータベースの論理エクスポートに相当するようです.
時計を空にする
インポート
データが戻ってきました.
mongodbのバックアップには主にホットスペアとコールドスペアがあります.
一、冷備:
mongodbサービスを停止し、直接copyデータディレクトリ;mongodbを起動するときは、--dbpathで自分で設定したデータベースストレージディレクトリを指定できます.
二、ホットスペア:
mongodumpでMongoDBのライブラリまたはテーブルレベルのホットバックアップを行います.
mongodumpと知り合って、
[mongo@tstdb-25-220 mongodb]$ bin/mongodump --help
Usage:
mongodump
Export the content of a running server into .bson files.
Specify a database with -d and a collection with -c to only dump that database or collection.
See http://docs.mongodb.org/manual/reference/program/mongodump/ for more information.
general options:
--help print usage
--version print the tool version and exit
verbosity options:
-v, --verbose= more detailed log output (include multiple times for more verbosity, e.g. -vvvvv, or specify a numeric
value, e.g. --verbose=N)
--quiet hide all log output
connection options:
-h, --host= mongodb host to connect to (setname/host1,host2 for replica sets)
--port= server port (can also use --host hostname:port)
authentication options:
-u, --username= username for authentication
-p, --password= password for authentication
--authenticationDatabase= database that holds the user's credentials
--authenticationMechanism= authentication mechanism to use
namespace options:
-d, --db= database to use
-c, --collection= collection to use
query options:
-q, --query= query filter, as a JSON string, e.g., '{x:{$gt:1}}'
--queryFile= path to a file containing a query filter (JSON)
--readPreference=| specify either a preference name or a preference json object
--forceTableScan force a table scan
output options:
-o, --out= output directory, or '-' for stdout (defaults to 'dump')
--gzip compress archive our collection output with Gzip
--repair try to recover documents from damaged data files (not supported by all storage engines)
--oplog use oplog for taking a point-in-time snapshot
--archive= dump as an archive to the specified path. If flag is specified without a value, archive is written to
stdout
--dumpDbUsersAndRoles dump user and role definitions for the specified database
--excludeCollection= collection to exclude from the dump (may be specified multiple times to exclude additional collections)
--excludeCollectionsWithPrefix= exclude all collections from the dump that have the given prefix (may be specified multiple times to
exclude additional prefixes)
-j, --numParallelCollections= number of collections to dump in parallel (4 by default)
エクスポート・プロシージャを参照
[mongo@tstdb-25-220 mongodb]$ bin/mongodump -h 172.16.25.220 -d sykdb -o /usr/local/mongodb/backup
2016-10-31T09:41:03.521+0800 writing sykdb.system.indexes to
2016-10-31T09:41:03.522+0800 done dumping sykdb.system.indexes (2 documents)
2016-10-31T09:41:03.523+0800 writing sykdb.system.profile to
2016-10-31T09:41:03.523+0800 writing sykdb.sykdb to
2016-10-31T09:41:03.523+0800 writing sykdb.table_syk to
2016-10-31T09:41:03.524+0800 done dumping sykdb.system.profile (2 documents)
2016-10-31T09:41:03.524+0800 done dumping sykdb.sykdb (2 documents)
2016-10-31T09:41:03.524+0800 done dumping sykdb.table_syk (1 document)
エクスポートされたファイルは次のとおりです.
[mongo@tstdb-25-220 mongodb]$ cd backup/
[mongo@tstdb-25-220 backup]$ ll
4
drwxr-xr-x. 2 mongo dbmon 4096 10 31 09:41 sykdb
[mongo@tstdb-25-220 backup]$ cd sykdb/
[mongo@tstdb-25-220 sykdb]$ ll
28
-rw-r--r--. 1 mongo dbmon 75 10 31 09:41 sykdb.bson
-rw-r--r--. 1 mongo dbmon 83 10 31 09:41 sykdb.metadata.json
-rw-r--r--. 1 mongo dbmon 136 10 31 09:41 system.indexes.bson
-rw-r--r--. 1 mongo dbmon 1529 10 31 09:41 system.profile.bson
-rw-r--r--. 1 mongo dbmon 55 10 31 09:41 system.profile.metadata.json
-rw-r--r--. 1 mongo dbmon 36 10 31 09:41 table_syk.bson
-rw-r--r--. 1 mongo dbmon 87 10 31 09:41 table_syk.metadata.json
次にインポートを見てみましょう(エクスポートとインポートはバックアップとリカバリと見なすことができ、すべてのバックアップはリカバリのために行われています)
[mongo@tstdb-25-220 mongodb]$ bin/mongorestore --help
Usage:
mongorestore
Restore backups generated with mongodump to a running server.
Specify a database with -d to restore a single database from the target directory,
or use -d and -c to restore a single collection from a single .bson file.
See http://docs.mongodb.org/manual/reference/program/mongorestore/ for more information.
general options:
--help print usage
--version print the tool version and exit
verbosity options:
-v, --verbose= more detailed log output (include multiple times for more verbosity, e.g. -vvvvv, or specify a numeric value, e.g.
--verbose=N)
--quiet hide all log output
connection options:
-h, --host= mongodb host to connect to (setname/host1,host2 for replica sets)
--port= server port (can also use --host hostname:port)
authentication options:
-u, --username= username for authentication
-p, --password= password for authentication
--authenticationDatabase= database that holds the user's credentials
--authenticationMechanism= authentication mechanism to use
namespace options:
-d, --db= database to use
-c, --collection= collection to use
input options:
--objcheck validate all objects before inserting
--oplogReplay replay oplog for point-in-time restore
--oplogLimit=[:ordinal] only include oplog entries before the provided Timestamp
--archive= restore dump from the specified archive file. If flag is specified without a value, archive is read from stdin
--restoreDbUsersAndRoles restore user and role definitions for the given database
--dir= input directory, use '-' for stdin
--gzip decompress gzipped input
restore options:
--drop drop each collection before import
--writeConcern= write concern options e.g. --writeConcern majority, --writeConcern '{w: 3, wtimeout: 500, fsync: true, j: true}'
(defaults to 'majority')
--noIndexRestore don't restore indexes
--noOptionsRestore don't restore collection options
--keepIndexVersion don't update index version
--maintainInsertionOrder preserve order of documents during restoration
-j, --numParallelCollections= number of collections to restore in parallel (4 by default)
--numInsertionWorkersPerCollection= number of insert operations to run concurrently per collection (1 by default)
--stopOnError stop restoring if an error is encountered on insert (off by default)
--bypassDocumentValidation bypass document validation
--oplogReplayというパラメータは、mongodbのエクスポートインポートでできる基本ポイントのリカバリに注意してください
もう1行insertしてテストします.
moe:PRIMARY> db.sykdb.insert ({"job":"dba"})
次にインポート:
[mongo@tstdb-25-220 mongodb]$ bin/mongorestore -h 172.16.25.220 -d sykdb backup/sykdb
2016-10-31T10:28:21.049+0800 building a list of collections to restore from backup/sykdb dir
2016-10-31T10:28:21.051+0800 reading metadata for sykdb.sykdb from backup/sykdb/sykdb.metadata.json
2016-10-31T10:28:21.051+0800 reading metadata for sykdb.table_syk from backup/sykdb/table_syk.metadata.json
2016-10-31T10:28:21.051+0800 reading metadata for sykdb.system.profile from backup/sykdb/system.profile.metadata.json
2016-10-31T10:28:21.051+0800 restoring sykdb.sykdb from backup/sykdb/sykdb.bson
2016-10-31T10:28:21.051+0800 no indexes to restore
2016-10-31T10:28:21.052+0800 finished restoring sykdb.system.profile (0 documents)
2016-10-31T10:28:21.052+0800 restoring sykdb.table_syk from backup/sykdb/table_syk.bson
2016-10-31T10:28:21.086+0800 restoring indexes for collection sykdb.sykdb from metadata
2016-10-31T10:28:21.086+0800 restoring indexes for collection sykdb.table_syk from metadata
2016-10-31T10:28:21.086+0800 finished restoring sykdb.sykdb (2 documents)
2016-10-31T10:28:21.086+0800 finished restoring sykdb.table_syk (1 document)
2016-10-31T10:28:21.087+0800 done
調べて、データが戻ってきたかどうか見てみましょう.
moe:PRIMARY> db.sykdb.find().limit(100);
{ "_id" : ObjectId("5816ac26d37a70860b091c1f"), "job" : "dba" }
{ "_id" : ObjectId("5813041a56c55d778812e689"), "name" : "syk" }
{ "_id" : ObjectId("5813065356c55d778812e68a"), "loc" : "beijing" }
一対のコマンドを紹介:mongoexport/mongoimport
[mongo@tstdb-25-220 mongodb]$ bin/mongoexport -h 172.16.25.220 -d sykdb -c table_syk -o table_syk.dat
2016-10-31T11:43:40.893+0800 connected to: 172.16.25.220
2016-10-31T11:43:40.894+0800 exported 1 record
エクスポートされたファイルを表示するには、次の手順に従います.
[mongo@tstdb-25-220 mongodb]$ strings table_syk.dat
{"_id":{"$oid":"581313a856c55d778812e68b"},"name":"syk"}
[mongo@tstdb-25-220 mongodb]$ file table_syk.dat
table_syk.dat: ASCII text
このツールは他のデータベースの論理エクスポートに相当するようです.
時計を空にする
moe:PRIMARY> db.table_syk.drop()
インポート
[mongo@tstdb-25-220 mongodb]$ bin/mongoimport -h 172.16.25.220 -d sykdb -c table_syk table_syk.dat
2016-10-31T11:45:22.499+0800 connected to: 172.16.25.220
2016-10-31T11:45:22.540+0800 imported 1 document
データが戻ってきました.