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的方式。則是不安全的停止方式。有可能造成各種問題。
        而安全停止和不安全停止的差別在於:安全停止在發出停止命令后,數據庫在后台會進行一系列的操作來保證數據庫終於是一致性關閉。
        但假設是不安全停止,則數據庫進程直接沒有,數據庫不會再后台做一系列的操作保證一致性關閉,下次啟動時。就有可能發生各種問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM