MongoDB 数据库的正确启动和停止姿势

2018-02-06 09:41:59来源:http://www.souyunku.com/2018/02/02/MongoDB-4/作者:鹏磊人点击

分享
第七城市

数据库的启动和停止是数据库最基本的操作,也是数据库能够提供服务和被连接管理的前提条件。不同的数据库启动和停止的方式有一些差异,但也有相同之处,启动和关闭也必定会和数据库的进程有关。



在oracle
数据库中,数据库的启动和停止都是分三个过程的,正常的启动方法都是在sqlplus
中执行startup
命令启动,或者shutdown immediate
命令关闭数据库; 在一些特殊的情况下,会通过shutdown abort或者kill后台进程的方式强制关闭数据库;



在MySQL
数据库中,数据库的启动也是通过mysqld
或者mysqld_safe
命令加配置文件的方式进行启动,关闭时使用mysqladmin
工具加shutdown
选项的命令进行mysql
数据库的正常关闭;



通过确认kill
进程的方式与shutdown
命令的方式停止过程相同,也可以通过kill
进程的方式实现mysql
的关闭;



对于MongoDB
数据库的启动和停止,可以通过下面的方法进行研究:


启动 MongoDB

3.启动三个数据库(dbpath),并且端口(--port 1000x),集群名称(--replSet gabriel),关闭日志选项(--nojournal),守护进程方式启动,会自动拉起(--fork),日志目录(--logpath)


mongod --dbpath /data/db/node1 --port 10001 --replSet gabriel --nojournal --fork --logpath /data/db/node1.log
mongod --dbpath /data/db/node2 --port 10002 --replSet gabriel --nojournal --fork --logpath /data/db/node2.log
mongod --dbpath /data/db/node3 --port 10003 --replSet gabriel --nojournal --fork --logpath /data/db/node3.log
停止 MongoDB


向MongoDB进程发送信号用于停止MongoDB
,如果要安全停止可以有两种信号:sigint
信号,或者sigterm
信号


如何停止:


实例


[root@node1 ~]# ps -axu |grep mongo
root 23140.5 10.9 1756056 109168 ?Sl Feb01 5:02 mongod -f /usr/local/mongodb/conf/config.conf
root 24751.6 30.7 1872244 307620 ?Sl Feb0113:52 mongod -f /usr/local/mongodb/conf/shard1.conf
root 25650.28.2 1064804 82060 ? Sl Feb01 2:05 mongod -f /usr/local/mongodb/conf/shard2.conf
root 26030.9 16.4 1722124 164488 ?Sl Feb01 7:44 mongod -f /usr/local/mongodb/conf/shard3.conf
root 26940.51.6 314648 16812 ?Sl Feb01 4:33 mongos -f /usr/local/mongodb/conf/mongos.conf
root 75660.00.0 112644 964 pts/0S+ 10:33 0:00 grep --color=auto mongo
[root@node1 ~]# kill -2 2314
[root@node1 ~]# kill -2 2694
[root@node1 ~]# kill -2 2603
[root@node1 ~]# kill -2 2565
[root@node1 ~]# kill -2 2475
[root@node1 ~]# ps -axu |grep mongo
root 75910.00.0 112644 968 pts/0R+ 10:34 0:00 grep --color=auto mongo
[root@node1 ~]#
$ kill -2 8888


其中 8888 为mongod
进程号 ,该进程号可以通过ps -axu |grep mongo
获取;



-2
表示向mongod
进程发送sigint
信号


$ kill -4 8888


其中 8888 为mongod
进程号 ,该进程号可以通过ps -axu |grep mongo
获取;



-4
表示向mongod
进程发送sigterm
信号


细节解释如下
上面2种方式做到了安全停止MongoDB,处理细节如下:

– mongod进程收到SIGINT信号或者SIGTERM信号


– 内部会做一些处理


– 关闭所有打开的连接 – 将内存数据强制刷新到磁盘 – 当前的操作执行完毕 – …….. – 安全停止



安全的shutdown
命令方式:


> use admin;
> db.shutdownServer();

不安全的停止mongod方式:


– Kill -9 4812


注意:用kill -9
可能会导致MongoDB
数据文件损坏,需要用repair database
修复数据库才能正常打开。


第七城市

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台