mongodb資料庫的啟動和停止
阿新 • • 發佈:2018-12-24
資料庫的啟動和停止是資料庫最基本的操作,也是資料庫能夠提供服務和被連線管理的前提條件。不同的資料庫啟動和停止的方式有一些差異,但也有相同之處,啟動和關閉也必定會和資料庫的程序有關。
在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的方式,則是不安全的停止方式,有可能造成各種問題;
而安全停止和不安全停止的區別在於:安全停止在發出停止命令後,資料庫在後臺會進行一系列的操作來保證資料庫最終是一致性關閉;
但如果是不安全停止,則資料庫程序直接沒有,資料庫不會再後臺做一系列的操作保證一致性關閉,下次啟動時,就有可能發生各種問題。
./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程序
上面2種方式如何做到停止安全 mongod程序收到sigint訊號或者sigterm訊號,會做一些處理: 關閉所有開啟的連線; 將記憶體資料強制重新整理到磁碟; 當前的操作執行完畢; 。。。。 安全停止 除了上面兩種直接針對程序的停止方式,還有使用mongod命令shutdown的安全停止方式: >