设为首页 收藏本站
查看: 807|回复: 0

[经验分享] mongodb数据库的启动和停止

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-7-16 09:19:34 | 显示全部楼层 |阅读模式
      数据库的启动和停止是数据库最基本的操作,也是数据库能够提供服务和被连接管理的前提条件。不同的数据库启动和停止的方式有一些差异,但也有相同之处,启动和关闭也必定会和数据库的进程有关。
        在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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-87161-1-1.html 上篇帖子: mongod安装配置 下篇帖子: mongodb 3.0 配置 数据库
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表