A replica set instance has only one copy of data, while each shard of a sharding cluster has one copy of data. Please restore your data according to your business needs. This document describes how to restore a single copy of data.
Copy the data to an empty data directory in the self-built database, such as /data/27017/.
cp -r * /data/27017/
Restart mongod and check the data. Below is a command sample:
./mongod --dbpath /data/27017 --port 27017 --logpath /var/log/mongodb/27017.log --fork
As a physical backup retains the configuration of the original instance by default, the original configuration needs to be removed first; otherwise, the data may become inaccessible.
Restore the data to a single-node self-built database and then restart the node in the form of replica set. Below is a command sample:
./mongod --replSet mymongo --dbpath /data/27017 --port 27017 --logpath /var/log/mongodb/27017.log --fork
Log in to the node and remove the replica set configuration of the original instance by running the following command:
rs.slaveOk()
use local
db.system.replset.remove({})
Restart the node, add a node to the replica set, initialize it, and check the data. The node added to the replica set should have been started with no data contained. Below is a command sample:
rs.initiate({"_id":"mymongo","members":[{"_id":0,"host":"127.0.0.1:27017"},{"_id":1, "host":"127.0.0.1:27018"},{"_id":2, "host":"127.0.0.1:27019"}]})
For more information on the rs.initiate()
command, see MongoDB Manual.
Data cannot be restored to a sharding cluster. As the route of physical backup is missing in a sharding cluster, mongos can only read the data of the master shard even if the data of each shard is restored to the self-built replica set (each shard of the sharding cluster).
config
directory manually and then run the mongorestore
command to restore the data of each shard as shown below: c_10
table is in the ycsb
directory in the database and contains data files from c_10.bson.gz.chunk-64
to c_10.bson.gz.chunk-127
. The merge command is cat c_10.bson.gz.chunk-* > ./c_10.bson.gz
.
Note:In some use cases, TencentDB for MongoDB v3.2 may have chunks.
Run the mongorestore
command to restore the data, where the -h
parameter specifies the self-built database address, --dir
specifies the directory of the data file, and --gzip
must be specified to decompress the backup file. The command is as follows:
./mongorestore --gzip --drop -h127.0.0.1:27017 --dir ./1544517027220146694 --oplogReplay ./oplog.bson
Was this page helpful?