亚马逊云服Linux平台上MongoDB版本由3.0升级到3.2的操作步骤:
1. 关闭游戏服务器
杀掉所有游戏相关进程
2. 备份数据
记录升级前的数据库信息, 可简单校验数据
数据库统计信息: db.stats()
数据库集合统计信息: db.collection.stats()
保存原配置文件/etc/mongod.conf
备份数据库,数据量比较大,备份时间较长,可以考虑省略此步骤.以DoubleHit为例, 备份过程接近两个小时.
mongodump -d
DoubleHitStore -o/home/ec2-user/wtc-server/double_hit/mongo-backup-20170306
3. 关闭mongod服务
在mongo中关闭
> 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
添加以下内容:
[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 执行yum update
确认是否可以升級
yum list updates
如果能够看到mongodb 3.2的內容就没问题了
sudo yum update mongodb-org
4. 启动MongoDB
设置好配置文件/etc/mongod.conf后,手动用命令启动
sudo/usr/bin/mongod-f /etc/mongod.conf
或者设置开机重启
echo"/usr/bin/mongod-f /etc/mongod.conf" >>
/etc/rc.d/rc.local
MongoDB相关知识点总结:
备份
mongodump -h dbhost -d dbname -o dbdirectory
-h:
MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
-d:
需要备份的数据库实例,例如:test
-o:
备份的数据存放位置,例如:c:\data\dump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。
mongorestore -h <:port> -d dbname
--host <:port>, -h <:port>:
MongoDB所在服务器地址,默认为: localhost:27017
--db , -d :
需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2
--drop:
恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用哦!
:
mongorestore 最后的一个参数,设置备份数据所在位置,例如:c:\data\dump\test。
你不能同时指定 和 --dir 选项,--dir也可以设置备份目录。
--dir:
指定备份的目录
不能同时指定 和 --dir 选项。
关闭MongoDB
在mongo中关闭
> use admin
switched to db admin
> db.shutdownServer()
server should be down...
强制关闭MongoDB(不建议使用);
service mongod stop
或者
mongod --shutdown
使用shutdownServer关闭MongoDB,如有MongoDB主从服务器,则在服务关闭前同步主从服务器;强制关闭则不会;
绝对不要使用!!!
$ kill -9 8888
其中 8888 为mongod进程号 ,该进程号可以通过 ps -axu |grep mongo 获取;
启动MongoDB
设置好配置文件/etc/mongod.conf后,每次手动用命令启动
sudo/usr/bin/mongod-f /etc/mongod.conf
或者设置开机重启
echo"/usr/bin/mongod-f /etc/mongod.conf" >> /etc/rc.d/rc.local
MongoDB用mongod命令来启动,不建议用
service mongod start
或者
chkconfig mongod on
来启动MongoDB,因为mongod每次启动需要带参数,不然会造成错误;
关于/etc/mongod.conf中常用的选项介绍:
--dbpath: 指定数据目录,必选,不配置会启动报错;
--port: 指定服务监听的端口,默认为27017
--logpath:指定日志路径;
--logappend:指定日志是追加模式,或者每次重启MongoDB后清理日志;默认是追加模式;
--fork:用此选项创建子进程,在后台运行MongoDB;此选项必先开启logpath选项;
--bind_ip: 指定监听的接口;默认是127.0.0.1;
--httpinterface: 设定是否在1000的端口启动一个微型的HTTP服务器;默认不开启;
--nounixsocket: 设置是否使用UNIX socket;
--noscripting: 设置是否完全禁止服务器端JavaScript脚本的运行;