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