2017年3月10日 星期五

[ MongoDB 文件 ] Back Up and Restore with MongoDB Tools

Source From Here 
Preface 
This tutorial describes the process for creating backups and restoring data using the utilities provided with MongoDB. The mongodump and mongorestore utilities work with BSON data dumps, and are useful for creating backups of small deployments. For resilient and non-disruptive backups, use a file system or block-level disk snapshot function, such as the methods described in the MongoDB Backup Methods document

Because mongodump and mongorestore operate by interacting with a running mongod instance, they can impact the performance of your running database. Not only do the tools create traffic for a running database instance, they also force the database to read all data through memory. When MongoDB reads infrequently used data, it can evict more frequently accessed data, causing a deterioration in performance for the database’s regular workload. 

When backing up your data with MongoDB’s tools, consider the following guidelines: 
* Label files so that you can identify the contents of the backup as well as the point in time that the backup reflects.
* Use an alternative backup strategy such as Filesystem Snapshots or MongoDB Cloud Manager if the performance impact of mongodump and mongorestore is unacceptable for your use case.
* Use --oplog to capture incoming write operations during the mongodump operation to ensure that the backups reflect a consistent data state.
* Ensure that your backups are usable by restoring them to a test MongoDB deployment.

SEE ALSO 
MongoDB Backup Methods and MongoDB Cloud Manager Backup documentation for more information on backing up MongoDB instances. Additionally, consider the following reference documentation for the MongoDB import/export tools: 
* mongoexport
* mongoimport
* mongodump
* mongorestore

Back Up a Database with mongodump 

Exclude local Database 
mongodump excludes the content of the local database in its output 

Required Access 
To run mongodump against a MongoDB deployment that has access control enabled, you must have privileges that grant find action for each database to back up. The built-in backup role provides the required privileges to perform backup of any and all databases. 

Basic mongodump Operations 
The mongodump utility backs up data by connecting to a running mongod or mongos instance. The utility can create a backup for an entire server, database or collection, or can use a query to backup just part of a collection. When you run mongodump without any arguments, the command connects to the MongoDB instance on the local system (e.g. 127.0.0.1 or localhost) on port 27017 and creates a database backup named dump in the current directory. 

To backup data from a mongod or mongos instance running on the same machine and on the default port of 27017, use the following command: 
# mongodump
2017-03-10T15:01:37.092+0800 writing l2p_dict.dict to
2017-03-10T15:01:37.093+0800 writing l2p_dict.lab to
2017-03-10T15:01:37.093+0800 writing l2p_dict.sents to
2017-03-10T15:01:37.093+0800 writing DB_H4CK3D.URG3NT_W4RN1NG to
2017-03-10T15:01:37.093+0800 done dumping DB_H4CK3D.URG3NT_W4RN1NG (1 document)
2017-03-10T15:01:37.098+0800 done dumping l2p_dict.sents (505 documents)
2017-03-10T15:01:37.161+0800 done dumping l2p_dict.lab (22078 documents)
2017-03-10T15:01:37.722+0800 done dumping l2p_dict.dict (307484 documents)

# ls -hl dump/
total 0
drwxr-xr-x 2 root root 67 Mar 10 15:01 DB_H4CK3D
drwxr-xr-x 2 root root 129 Mar 10 15:01 l2p_dict

The data format used by mongodump from version 2.2 or later is incompatible with earlier versions of mongod. Do not use recent versions of mongodump to back up older data stores. You can also specify the --host and --port of the MongoDB instance that the mongodump should connect to. For example: 
# mongodump --host mongodb.example.net --port 27017

mongodump will write BSON files that hold a copy of data accessible via the mongod listening on port 27017 of the mongodb.example.net host. See Create Backups from Non-Local mongod Instances for more information. 

To specify a different output directory, you can use the --out or -o option: 
# mongodump --out /data/backup/

To limit the amount of data included in the database dump, you can specify --db and --collection as options to mongodump. For example: 
# mongodump --collection myCollection --db test

This operation creates a dump of the collection named myCollection from the database test in a ./dump subdirectory of the current working directory. mongodump overwrites output files if they exist in the backup data folder. Before running the mongodump command multiple times, either ensure that you no longer need the files in the output folder (the default is the ./dump/ folder) or rename the folders or files. 

Point in Time Operation Using Oplogs 
Use the --oplog option with mongodump to collect the oplog entries to build a point-in-time snapshot of a database within a replica set. With --oplogmongodump copies all the data from the source database as well as all of the oplog entries from the beginning to the end of the backup procedure. This operation, in conjunction with mongorestore --oplogReplay, allows you to restore a backup that reflects the specific moment in time that corresponds to when mongodump completed creating the dump file. 

Create Backups from Non-Local mongod Instances 
The --host and --port options for mongodump allow you to connect to and backup from a remote host. Consider the following example: 
# mongodump --host mongodb1.example.net --port 3017 --username user --password pass --out /opt/backup/mongodump-2013-10-24

On any mongodump command you may, as above, specify username and password credentials to specify database authentication. 

Restore a Database with mongorestore 

Access Control 
To restore data to a MongoDB deployment that has access control enabled, the restore role provides access to restore any database if the backup data does not include system.profile collection data. 

If the backup data includes system.profile collection data and the target database does not contain the system.profile collection, mongorestore attempts to create the collection even though the program does not actually restore system.profile documents. As such, the user requires additional privileges to perform createCollection and convertToCapped actions on the system.profile collection for a database. 

Basic mongorestore Operations 
The mongorestore utility restores a binary backup created by mongodump. By default, mongorestore looks for a database backup in the ./dump/ directory. The mongorestore utility restores data by connecting to a running mongod or mongos directly. mongorestore can restore either an entire database backup or a subset of the backup. To use mongorestore to connect to an active mongod or mongos, use a command with the following prototype form: 
# mongorestore --port

Consider the following example: 
# mongorestore dump-2013-10-25/

Here, mongorestore imports the database backup in the dump-2013-10-25 directory to the mongod instance running on the localhost interface on the default port 27017. 

Restore Point in Time Oplog Backup 
If you created your database dump using the --oplog option to ensure a point-in-time snapshot, call mongorestore with the --oplogReplay option, as in the following example: 
# mongorestore --oplogReplay

You may also consider using the mongorestore --objcheck option to check the integrity of objects while inserting them into the database, or you may consider the mongorestore --drop option to drop each collection from the database before restoring from backups. 

Restore Backups to Non-Local mongod Instances 
By default, mongorestore connects to a MongoDB instance running on the localhost interface (e.g. 127.0.0.1) and on the default port (27017). If you want to restore to a different host or port, use the --host and --port options. Consider the following example: 
# mongorestore --host mongodb1.example.net --port 3017 --username user --password pass /opt/backup/mongodump-2013-10-24

As above, you may specify username and password connections if your mongod requires authentication. 

Additional Resources 
* Backup and its Role in Disaster Recovery White Paper 
* Cloud Backup through MongoDB Cloud Manager 
* Blog Post: Backup vs. Replication, Why you Need Both 
* Backup Service with Ops Manager, an on-premise sol...in MongoDB Enterprise Advanced

沒有留言:

張貼留言

[Git 常見問題] error: The following untracked working tree files would be overwritten by merge

  Source From  Here 方案1: // x -----删除忽略文件已经对 git 来说不识别的文件 // d -----删除未被添加到 git 的路径中的文件 // f -----强制运行 #   git clean -d -fx 方案2: 今天在服务器上  gi...