實例的備份文(wen)件僅支(zhi)持(chi)(chi)在Linux系統下恢復到本(ben)地自建(jian)數據庫,暫不(bu)支(zhi)持(chi)(chi)Windows系統。
本文以Linux操作系統為例,介紹如何將已下載的副本集備份文件的數據恢復至自建數據庫。關于如何下載備份文件,請參見下載備份文件。
使用須知
- 本地自建MongoDB數據庫已安裝3.4版本客戶端工具。
- 目前僅支持3.4和4.0版本,4.2版本暫不支持通過該方式在本地進行恢復。
操作步驟
步驟 1 登錄自建數(shu)據(ju)庫(ku)所(suo)在服務器。
假(jia)設路(lu)徑(jing)(jing)“/path/to/mongo”為執(zhi)行恢復操作(zuo)所(suo)在路(lu)徑(jing)(jing),路(lu)徑(jing)(jing)“/path/to/mongo/data”為備份文(wen)件所(suo)在路(lu)徑(jing)(jing)。
步驟 2 恢復前(qian),確保路徑“/path/to/mongo/data”為空(kong)目錄(lu)。
cd /path/to/mongo/data/
rm -rf*
步(bu)驟 3 將已(yi)下載的副本集(ji)備份文件壓縮(suo)包(bao)復制到“/path/to/mongo/data/”路徑(jing)下,并(bing)解壓。
lz4 -d xxx_.tar.gz |tar -xC /path/to/mongo/data/
步驟(zou) 4 在“/path/to/mongo”文(wen)件夾中新建配置文(wen)件“mongod.conf”。
touch mongod.conf
步驟 5 通(tong)過單節點模式啟動(dong)數據庫。
修改(gai)“mongod.conf”配置文件,使其(qi)符合備(bei)份啟動的配置要求。
以下為備份(fen)啟動(dong)的參考配(pei)置模板:
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為(wei)數據(ju)庫(ku)綁定的連接IP地址。該(gai)字段可選,不包含該(gai)字段時,默認(ren)綁定本地IP地址。
指定新建的配置文件“mongod.conf”啟動數據庫。
/usr/bin/ mongod -f /path/to/mongo/mongod.conf
說明/usr/bin/為已安裝MongoDB客戶端中mongod文件所在路徑。
等待啟動(dong)完成后,可通過服務器的mongo shell登錄恢復后的數據(ju)庫。
mongo --host ** < DB_HOST > ** -u ** <DB_USER> ** -p ** ** --authenticationDatabase admin
說明
DB_HOST是數據庫(ku)綁定(ding)的(de)連接IP地址。
DB_USER是數據庫(ku)帳號名,默(mo)認rwuser。
PASSWORD是(shi)實(shi)例進行備份時,數(shu)據庫帳(zhang)號對應的密碼。
副本集模式啟動數據庫
DDS實例(li)(li)的物理備份默認帶有原實例(li)(li)的副本集配置(zhi)。啟(qi)(qi)動時需以單節點模式啟(qi)(qi)動,否(fou)則可能無法(fa)訪問。
如需以副本集模式啟動,請先執行步驟(zou)5,再執行以下步驟(zou):
步驟 1 通(tong)過(guo)服務器的mongo shell登(deng)錄恢(hui)復后的數據庫。
步驟 2 移除(chu)原有副本集配置。
use local
db.system.replset.remove({})
步驟 3 關(guan)閉數據庫進(jin)程服(fu)務。
use admin
db.shutdownServer()
步(bu)驟 4 修改“/path/to/mongo/”目錄(lu)下的配(pei)置文件“mongod.conf”,添加replication相關配(pei)置。詳細命令用法請參考MongoDB官方(fang)文檔。
步驟 5 指定新建的配置(zhi)文件“mongod.conf”來啟動數據(ju)庫(ku)。
/usr/bin/ mongod -f /path/to/mongo/mongod.conf
說明/usr/bin/為已安裝MongoDB客戶端中mongod文件所在路徑。
/usr/bin/為已安裝MongoDB客戶端中mongod文件所在路徑。
步驟 6 將成員加(jia)入副(fu)本(ben)(ben)集(ji)并(bing)初始(shi)化副(fu)本(ben)(ben)集(ji)。
說明此步驟使用 rs.initiate()命令進行操作,詳細命令用法請參考MongoDB官方文檔。