MongoDB学习系列 -- 服务启动以及关闭

前面我们对于MongoDB服务的启动、关闭都是采用最简单的方式,并没有就其中的细节进行详细展开,这节我们就来完善一下前面的内容。

一、MongoDB启动

前面我们采用./mongod 的方式启动的服务,其实这个过程中系统为我们做了很多的默认操作:指定数据存放目录为/data/db、监听端口为27017、以非守护进程运行服务等。

系统默认配置项有限,而且很多时候我们需要进行个性化配置。OK,下面我们还以命令行模式为例讲解如何进行mongoDB服务的个性化配置。

note:各配置项都是以两个 -- 开始

1、dbpath

./mongod --dbpath /data/db

这个配置用来指定数据库的存放路径。有一点需要注意:同一机器上如果开启了多个mongodb 服务,一定为他们分配不同的存放路径。A服务不能读取B服务的数据库路径,这个是通过mongod.lock文件实现的。

mongod.lock中存放的是每个mongodb服务的进程号。

那该路径下具体都有哪些文件呢?

我们看到有local数据库、admin数据库、mongod.lock、test数据库,具体每个文件的作用可以参考这篇文章:

2、port

./mongod --dbpath /data/db --port 27017

mongodb服务监听的端口,默认为27017,这个就不需要多说了,只需保证同一台机器上不同的mongodb进程监听不同的端口即可。

3、logpath

./mongod --dbpath /data/db --port 27017 --logpath /var/log/mongod --logappend

日志输出路径,日志内容包括mongodb服务的启动日志以及其他驱动器的connect日志。当初次安装并启动mongodb时,最好看一下日志。这是人们经常忽视的一点,日志中经常含有重要的警告信息,能够帮助避免一些错误。

还有一点,一定确保对于logpath路径具有写权限。而且,新日志会将已有文件覆盖掉,原有的日志记录也会被清除掉,如果想要保留原来的日志,还需要使用 --logappend选项。

延伸:任何服务启动时都最好配置其日志目录。

4、fork 

./mongod --dbpath /data/db --port 27017 --logpath /var/log/mongod --logappend --fork

守护进程的方式运行MongoDB,创建服务器进程。

5、master

./mongod --dbpath /data/db --port 27017 --logpath /var/log/mongod --logappend --fork --master

是否已主进程启动mongodb服务,这个在主从复制的时候会用到。

6、auth

./mongod --dbpath /data/db --port 27017 --logpath /var/log/mongod --logappend --fork --master --auth

开启安全检查,开启安全检查之后驱动器链接mongodb服务时必须指定用户密码。

7、oplogSize

./mongod --dbpath /data/db --port 27017 --logpath /var/log/mongod --logappend --fork --master --auth --oplogsize 2000

指定oplogSize的大小。oplog存储在local数据库里,用来记录master mongodb服务的写操作,然后同步到slave 服务器上。

8、slaveOK

./mongod --dbpath /data/db --port 27017 --logpath /var/log/mongod --logappend --fork --master --slaveOK

开启服务器的读扩展。将读操作分散都各个从服务器上,扩展 服务读性能。

服务的配置还有很多,如果我们想要在服务启动时配置很多的选项,像我们上面的这种形式很显然不合适。怎么办呢?我们可以像mysql那样,将配置抽离到一个配置文件中,在服务启动时直接指定配置文件即可。

新建一个mongodb.conf配置文件

dbpath = D:\mongodb\data\db
port = 27017
fork = true
auth = true
logpath = D:\mongodb\data\log\mongod.log
logappend = true
...
...

通过--config或者-f 来指示mongodb服务按照配置文件中的内容启动服务。

./mongod --config /usr/local/mongodb/mongod.conf

二、mongoDB关闭

服务的关闭和服务的启动一样重要,mongodb服务的关闭有以下几种方式:

1、CTRL-C

当服务是作为前端进程运行在终端时,直接使用CTRL -C即可,否则就要使用下面的两种方式了。

2、KILL

mongodb作为一个服务是有进程号的,通过向进程发送信号就可以kill掉进程,也即关闭mongodb服务。进程可以接送三种类型的信号:SININT SINTERM SINKILL。

当进程接收到SININT或者SINTERM信号的时候会稳妥的退出,也即是说会等到当前运行的操作或者文件预分配完成(需要一段时间),关闭所有打开的链接,将缓存的数据刷新到磁盘,最后停止。

千万不要向运行中的服务直接发送SINKILL信号(kill -9 pid)。这样会导致数据库直接关闭,上面讲到的步骤都会被忽略,这会使数据文件损坏。要是真的发生了不幸,一定要在启动备份之前修复数据库。

3、shutdown

该方式也是比较稳妥的方式,这是管理命令,需要在admin数据库下使用。

> use admin
switched to db admin
> db.shutdownServer()

note:我们前面一直在使用数据库shell:mongo。一般都假定它和mongod运行在一台机器上,还假定mongod绑定了默认端口。如果不是这样的话,可以在启动的时候指定这些参数,让shell连接另一台服务器。如下所示:

./mongo http://www.example.com:27000/admin

其中,www.example.com是机器的hostname,也可以换成ip;27000是服务的监听端口;admin是连接之后默认的数据库。

OK,关于mongodb服务的启动关闭终于总结完了。

猜你喜欢

转载自blog.csdn.net/ydm19891101/article/details/81428038
今日推荐