亞馬遜云服Linux平臺(tái)上MongoDB版本由3.0升級(jí)到3.2的操作步驟:
1. 關(guān)閉游戲服務(wù)器
殺掉所有游戲相關(guān)進(jìn)程
2. 備份數(shù)據(jù)
記錄升級(jí)前的數(shù)據(jù)庫信息, 可簡(jiǎn)單校驗(yàn)數(shù)據(jù)
數(shù)據(jù)庫統(tǒng)計(jì)信息: db.stats()
數(shù)據(jù)庫集合統(tǒng)計(jì)信息: db.collection.stats()
保存原配置文件/etc/mongod.conf
備份數(shù)據(jù)庫,數(shù)據(jù)量比較大,備份時(shí)間較長(zhǎng),可以考慮省略此步驟.以DoubleHit為例, 備份過程接近兩個(gè)小時(shí).
mongodump -d
DoubleHitStore -o/home/ec2-user/wtc-server/double_hit/mongo-backup-20170306
3. 關(guān)閉mongod服務(wù)
在mongo中關(guān)閉
> use admin
switched to db admin
> db.shutdownServer()
server should be down...
4. yum升級(jí)mongodb
3.1 編寫配置文件
sudo vi /etc/yum.repos.d/mongodb-org-3.2.repo
添加以下內(nèi)容:
[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc
3.2 執(zhí)行yum update
確認(rèn)是否可以升級(jí)
yum list updates
如果能夠看到mongodb 3.2的內(nèi)容就沒問題了
sudo yum update mongodb-org
4. 啟動(dòng)MongoDB
設(shè)置好配置文件/etc/mongod.conf后,手動(dòng)用命令啟動(dòng)
sudo/usr/bin/mongod-f /etc/mongod.conf
或者設(shè)置開機(jī)重啟
echo"/usr/bin/mongod-f /etc/mongod.conf" >>
/etc/rc.d/rc.local
MongoDB相關(guān)知識(shí)點(diǎn)總結(jié):
備份
mongodump -h dbhost -d dbname -o dbdirectory
-h:
MongDB所在服務(wù)器地址,例如:127.0.0.1,當(dāng)然也可以指定端口號(hào):127.0.0.1:27017
-d:
需要備份的數(shù)據(jù)庫實(shí)例,例如:test
-o:
備份的數(shù)據(jù)存放位置,例如:c:\data\dump,當(dāng)然該目錄需要提前建立,在備份完成后,系統(tǒng)自動(dòng)在dump目錄下建立一個(gè)test目錄,這個(gè)目錄里面存放該數(shù)據(jù)庫實(shí)例的備份數(shù)據(jù)。
mongorestore -h <:port> -d dbname
--host <:port>, -h <:port>:
MongoDB所在服務(wù)器地址,默認(rèn)為: localhost:27017
--db , -d :
需要恢復(fù)的數(shù)據(jù)庫實(shí)例,例如:test,當(dāng)然這個(gè)名稱也可以和備份時(shí)候的不一樣,比如test2
--drop:
恢復(fù)的時(shí)候,先刪除當(dāng)前數(shù)據(jù),然后恢復(fù)備份的數(shù)據(jù)。就是說,恢復(fù)后,備份后添加修改的數(shù)據(jù)都會(huì)被刪除,慎用哦!
:
mongorestore 最后的一個(gè)參數(shù),設(shè)置備份數(shù)據(jù)所在位置,例如:c:\data\dump\test。
你不能同時(shí)指定 和 --dir 選項(xiàng),--dir也可以設(shè)置備份目錄。
--dir:
指定備份的目錄
不能同時(shí)指定 和 --dir 選項(xiàng)。
關(guān)閉MongoDB
在mongo中關(guān)閉
> use admin
switched to db admin
> db.shutdownServer()
server should be down...
強(qiáng)制關(guān)閉MongoDB(不建議使用);
service mongod stop
或者
mongod --shutdown
使用shutdownServer關(guān)閉MongoDB,如有MongoDB主從服務(wù)器,則在服務(wù)關(guān)閉前同步主從服務(wù)器;強(qiáng)制關(guān)閉則不會(huì);
絕對(duì)不要使用!!!
$ kill -9 8888
其中 8888 為mongod進(jìn)程號(hào) ,該進(jìn)程號(hào)可以通過 ps -axu |grep mongo 獲取;
啟動(dòng)MongoDB
設(shè)置好配置文件/etc/mongod.conf后,每次手動(dòng)用命令啟動(dòng)
sudo/usr/bin/mongod-f /etc/mongod.conf
或者設(shè)置開機(jī)重啟
echo"/usr/bin/mongod-f /etc/mongod.conf" >> /etc/rc.d/rc.local
MongoDB用mongod命令來啟動(dòng),不建議用
service mongod start
或者
chkconfig mongod on
來啟動(dòng)MongoDB,因?yàn)閙ongod每次啟動(dòng)需要帶參數(shù),不然會(huì)造成錯(cuò)誤;
關(guān)于/etc/mongod.conf中常用的選項(xiàng)介紹:
--dbpath: 指定數(shù)據(jù)目錄,必選,不配置會(huì)啟動(dòng)報(bào)錯(cuò);
--port: 指定服務(wù)監(jiān)聽的端口,默認(rèn)為27017
--logpath:指定日志路徑;
--logappend:指定日志是追加模式,或者每次重啟MongoDB后清理日志;默認(rèn)是追加模式;
--fork:用此選項(xiàng)創(chuàng)建子進(jìn)程,在后臺(tái)運(yùn)行MongoDB;此選項(xiàng)必先開啟logpath選項(xiàng);
--bind_ip: 指定監(jiān)聽的接口;默認(rèn)是127.0.0.1;
--httpinterface: 設(shè)定是否在1000的端口啟動(dòng)一個(gè)微型的HTTP服務(wù)器;默認(rèn)不開啟;
--nounixsocket: 設(shè)置是否使用UNIX socket;
--noscripting: 設(shè)置是否完全禁止服務(wù)器端JavaScript腳本的運(yùn)行;