实例的备份文件仅支持在Linux系统下恢复到本地自建数据库,暂不支持Windows系统。
本文以Linux操作系统为例,介绍如何将已下载的副本集备份文件的数据恢复至自建数据库。关于如何下载备份文件,请参见下载备份文件。
使用须知
- 本地自建MongoDB数据库已安装3.4版本客户端工具。
- 目前仅支持3.4和4.0版本,4.2版本暂不支持通过该方式在本地进行恢复。
操作步骤
步骤 1 登录自建数据库所在服务器。
假设路径“/path/to/mongo”为执行恢复操作所在路径,路径“/path/to/mongo/data”为备份文件所在路径。
步骤 2 恢复前,确保路径“/path/to/mongo/data”为空目录。
cd /path/to/mongo/data/
rm -rf*
步骤 3 将已下载的副本集备份文件压缩包复制到“/path/to/mongo/data/”路径下,并解压。
lz4 -d xxx_.tar.gz |tar -xC /path/to/mongo/data/
步骤 4 在“/path/to/mongo”文件夹中新建配置文件“mongod.conf”。
touch mongod.conf
步骤 5 通过单节点模式启动数据库。
修改“mongod.conf”配置文件,使其符合备份启动的配置要求。
以下为备份启动的参考配置模板:
systemLog:
destination: file
path: /path/to/mongo/mongod.log
logAppend: true
security:
authorization: enabled
storage:
dbPath: /path/to/mongo/data
directoryPerDB: true
engine: wiredTiger
wiredTiger:
collectionConfig: {blockCompressor: snappy}
engineConfig: {directoryForIndexes: true, journalCompressor: snappy}
indexConfig: {prefixCompression: true}
net:
http:
enabled: false
port: 27017
bindIp: xxx.xxx.xxx.xxx,xxx.xxx.xxx.xxx
unixDomainSocket:
enabled: false
processManagement:
fork: true
说明bindIp为数据库绑定的连接IP地址。该字段可选,不包含该字段时,默认绑定本地IP地址。
指定新建的配置文件“mongod.conf”启动数据库。
/usr/bin/ mongod -f /path/to/mongo/mongod.conf
说明/usr/bin/为已安装MongoDB客户端中mongod文件所在路径。
等待启动完成后,可通过服务器的mongo shell登录恢复后的数据库。
mongo --host ** < DB_HOST > ** -u ** <DB_USER> ** -p ** ** --authenticationDatabase admin
说明
DB_HOST是数据库绑定的连接IP地址。
DB_USER是数据库帐号名,默认rwuser。
PASSWORD是实例进行备份时,数据库帐号对应的密码。
副本集模式启动数据库
DDS实例的物理备份默认带有原实例的副本集配置。启动时需以单节点模式启动,否则可能无法访问。
如需以副本集模式启动,请先执行步骤5,再执行以下步骤:
步骤 1 通过服务器的mongo shell登录恢复后的数据库。
步骤 2 移除原有副本集配置。
use local
db.system.replset.remove({})
步骤 3 关闭数据库进程服务。
use admin
db.shutdownServer()
步骤 4 修改“/path/to/mongo/”目录下的配置文件“mongod.conf”,添加replication相关配置。详细命令用法请参考MongoDB官方文档部署副本集。
步骤 5 指定新建的配置文件“mongod.conf”来启动数据库。
/usr/bin/ mongod -f /path/to/mongo/mongod.conf
说明/usr/bin/为已安装MongoDB客户端中mongod文件所在路径。
/usr/bin/为已安装MongoDB客户端中mongod文件所在路径。
步骤 6 将成员加入副本集并初始化副本集。
说明此步骤使用 rs.initiate()命令进行操作,详细命令用法请参考MongoDB官方文档rs.initiate()命令介绍。