亞馬遜云服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...
強(qiáng)制關(guān)閉MongoDB(不建議使用)仓坞;
service mongod stop
或者
mongod --shutdown
使用shutdownServer關(guān)閉MongoDB,如有MongoDB主從服務(wù)器腰吟,則在服務(wù)關(guān)閉前同步主從服務(wù)器飞崖;強(qiáng)制關(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腳本的運行剔应;