bestjoe 发表于 2018-10-26 09:48:36

mongodb数据库的启动和停止

  数据库的启动和停止是数据库最基本的操作,也是数据库能够提供服务和被连接管理的前提条件。不同的数据库启动和停止的方式有一些差异,但也有相同之处,启动和关闭也必定会和数据库的进程有关。
  在oracle数据库中,数据库的启动和停止都是分三个过程的,正常的启动方法都是在sqlplus中执行startup命令启动,或者shutdown immediate命令关闭数据库;
  在一些特殊的情况下,会通过shutdown abort或者kill后台进程的方式强制关闭数据库;
  在MySQL数据库中,数据库的启动也是通过mysqld或者mysqld_safe命令加配置文件的方式进行启动,关闭时使用mysqladmin工具加shutdown选项的命令进行mysql数据库的正常关闭;
  通过确认kill进程的方式与shutdown命令的方式停止过程相同,也可以通过kill进程的方式实现mysql的关闭;
  对于MongoDB数据库的启动和停止,可以通过下面的方法进行研究:
  启动MongoDB
  进入MongoDB安装目录
  # cd mongodb-linux-x86_64-2.*.*
  执行下面的命令启动MongoDB
  #./bin/mongod --port 33334 --fork --logpath data/log/mongodb.log --dbpath data/db
  启动相关参数说明如下:
  --port 启动端口号
  --fork 以守护进行方式启动
  --logpath mongodb 日志输出路径
  --dbpath mongodb 数据文件路径
  其他选项可以执行命令查看:   ./bin/mongod --help
  操作演示:
  编写MongoDB启动文件:
  vim start.sh   脚本内容如下:
  cd mongodb-linux-x86_64-2.*.*
  ./bin/mongod --port 33334 --fork --logpath data/log/mongodb.log --dbpath data/db
  停止脚本启动:
  chmod +x start.sh
  ./start.sh
  执行结果出现start sucessful ,说明mongod启动完成,可以通过下面两种方式确认MongoDB启动过程:
  确认进程:
  $ ps -axu | grep mongo
  确认日志:
  cd /data/log
  tail -f mongodb.log
  安全停止MongoDB进程
  向MongoDB进程发送信号用于停止MongoDB,如果要安全停止可以有两种信号:sigint 信号,或者 sigterm信号
  如何停止:
  $ 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种方式如何做到停止安全
  mongod进程收到sigint信号或者sigterm信号,会做一些处理:
  关闭所有打开的连接;
  将内存数据强制刷新到磁盘;
  当前的操作执行完毕;
  。。。。
  安全停止
  除了上面两种直接针对进程的停止方式,还有使用mongod命令shutdown的安全停止方式:
  > use admin;                   --使用管理员数据库
  > db.shutdownServer();
  不安全的停止方式有:
  $ kill -9 8888
  其中 8888 为mongod进程号 ,该进程号可以通过 ps -axu |grep mongo 获取;
  -9 表示向mongod进程发送sigkill信号,MongoDB直接停止,不会做一些相关处理;
  数据库直接关闭;
  数据丢失;
  数据文件损坏;
  修复数据库(成本高,有风险)
  通过上面的分析可以看出,MongoDB的启动过程和其他数据库类似,主要是校验数据库文件的一致性,一般不会有太多风险,只要数据库能够正常启动即可;
  对于MongoDB的停止,可以通过mongo工具中的shutdown命令安全停止,也可以在查询到MongoDB进程号后,使用kill -2,kill -4 两种方式实现相同的安全停止方式;
  如果对MongoDB使用kill -9的方式,则是不安全的停止方式,有可能造成各种问题;
  而安全停止和不安全停止的区别在于:安全停止在发出停止命令后,数据库在后台会进行一系列的操作来保证数据库最终是一致性关闭;
  但如果是不安全停止,则数据库进程直接没有,数据库不会再后台做一系列的操作保证一致性关闭,下次启动时,就有可能发生各种问题。

页: [1]
查看完整版本: mongodb数据库的启动和停止