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服务的启动关闭终于总结完了。
上一篇: 花生的保质期是多久,花生有什么功效
下一篇: 关于河南变蛋与松花蛋区别有哪些?