程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MongoDB數據庫 >> MongoDB綜合知識 >> MongoDB的基本安裝與管理命令腳本總結

MongoDB的基本安裝與管理命令腳本總結

編輯:MongoDB綜合知識

安裝
1. Linux安裝MongoDB
1.1 創建數據目錄和日志文件:

mkdir -p /data/node/
touch /data/mongodb.log

1.2 安裝mongodb:

tar zxf mongodb-linux-x86_64-2.4.9.tgz 
mv mongodb-linux-x86_64-2.4.9 /opt/mongodb
echo "export PATH=$PATH:/opt/mongodb/bin" >>/etc/profile
source /etc/profile

1.3 創建新從節點配置文件:

cat >> ~/.mongodb.conf <<EOF
fork = ture
port = 11000
dbpath = /data/node
logpath = /data/mongodb.log
logappend = true
EOF

1.4 啟動MongoDB

mongod --config ~/.mongodb.conf

2. Windows安裝MongoDB
2.1 下載並解壓

mongodb-win32-x86_64-2008plus-2.4.9.zip

2.2 添加服務

# mongod -f d:\mongodb\mongodb.cfg --serviceName MongoBD --install

2.3 啟動服務

# net start mongodb 

2.4 刪除服務

# mongod --remove

2.5 MongoDB啟動配置文件

mongodb.cfg -->
logpath=d:\data\mongo.log 
dbpath=d:\data
logappend=true
auth=true
#fork=true

管理
管理MongoDB無論是備份還是帶有復制的多節點系統,都有快捷的方式。系統會自動完成各種配置。
(1)MongoDB是一個普通命令行程序,用mongod調用。
(2)MongoDB提供了內置的管理接口和監控功能,易與第三方監控包集成。
(3)MongoDB支持基本的,數據庫級別的用戶認證,包括只讀用戶,以及獨立的管理員權限。
(4)多種方式備份MongoDB。

1.啟動停止MongoDB
1.1 命令行啟動
命令行啟動,可以mongod --help查看所有選項。
(1)--dbpath 默認值為/data/db/。每個Mongod進程都需要獨立的數據目錄,要有三個mongod實例,必須要有三個獨立的數據目錄。mongodb啟動時,會在數據目錄喜愛創建mongod.lock文件,防止其他mongod進程使用該數據目錄。
(2)--port
指定監聽端口,默認為27017,運行多個mongod進程,需要指定不同的端口號。
(3)--fork
以守護進程運行mongodb,創建服務器進程。
(4)--logpath
指定日志輸出路徑,而不是輸出命令行,它會覆蓋已有文件,清除原來的日記記錄。如果要保留,需要使用--logappend選項。
(5)--config
指定配置文件,加載命令行未指定的各種選項。
1.2 配置文件
MongoBD支持從文件獲取配置信息。指定配置文件可以用-f或者--config選項。例如:

# mongod --config ~/.mongodb.conf
cat > ~/.mongodb.conf <<EOF
port = 10001
fork = true
logpath = /data/mongodb.log
dbpath = /data/node2
logappend = true
EOF

1.3 停止MongoDB
數據庫關閉方法:
(1)kill -2 SIGTERM或者kill -2 SIGINT,可以穩妥退出,會等到當前運行的操作或者文件預分配,關閉所有打開的連接,將緩存的數據刷新到磁盤,最後停止。
不能kill -9(SIGKILL),這樣會導致數據文件損毀。
(2)使用管理命令{"shutdown" : 1}

> use admin
> db.shutdownServer(); 

2.監控
2.1 使用管理接口
啟動MongoDB時,會啟動一個非常基本的HTTP服務器,該服務器監聽的端口比主服務器大1000。呈現的信息可以通過shell查看,也可以通過web頁面查看。
要利用好管理接口,需要用--reset選項開啟REST支持。也可以在啟動時使用--nohttpinterface關閉管理接口。
2.2 serverStatus
serverStatus呈現了MongoDB內部詳細信息,比如服務器的版本,運行時間,當前連接數。

MongoDB shell version: 2.4.9
connecting to: 127.0.0.1:10001/test
> db.runCommand({serverStatus : 1})

"globalLock"表示全局寫入鎖占用了服務器多少時間(微秒)。"mem"包含服務器內存映射了多少數據,服務器進程的虛擬內存和常駐內存占用情況;
(1)"indexCounters"表示B樹在磁盤檢索和內存檢索的次數;
(2)"backgroudFlushing"表示後台做了多少次fsync以及用了多少時間;
(3)"opcounters"包含了每種主要操作的次數。
2.3 mongostat
mongostat輸出serverStatus提供的重要信息。每秒鐘輸出新的一行,比之前看到的靜態計數實時性更好。分別為insert/s,commands/s,vsize和%locked。
2.4 第三方插件
支持Nagios,Munin,Ganglia,Cacti的MongbDB插件。

3.安全
MongoDB支持對單個連接的認證。
3.1 認證的基礎知識
每個MongoDB實例中的數據庫都可以有很多用戶。開啟認證後,只有數據庫認證用戶才能執行讀寫操作。
認證後,管理員可以讀寫所有的數據庫,執行特定的管理命令。
開啟安全認證前,需要有管理員帳號。

> use admin
switched to db admin
> db.addUser("root", "root123");
{
  "user" : "root",
  "readOnly" : false,
  "pwd" : "81c5bca573e01b632d18a459c6cec418",
  "_id" : ObjectId("530bd17622cceb4323a2b500")
}
> use test
switched to db test
> db.addUser("test_user", "root123", true);
{
  "user" : "test_user",
  "readOnly" : true,
  "pwd" : "d436badec207e3821abbaf337fcbdd06",
  "_id" : ObjectId("530bd24322cceb4323a2b501")
}

在shell中創建只讀用戶將adduser的第三個參數設為true。調用addUser()必須對數據庫有寫權限。
addUser不僅可以增加新用戶,還能修改用戶口令或只讀狀態。
重啟服務器,加入--auth選項,開啟安全檢查。

> use admin
switched to db admin
> db.auth("root", "root123");
1

3.2 認證的工作原理
數據庫用戶帳戶以文檔形式存儲在system.users集合裡面。

> use admin
switched to db admin
> db.system.users.find();
{ "_id" : ObjectId("530bd17622cceb4323a2b500"), "user" : "root", "readOnly" : false, "pwd" : "81c5bca573e01b632d18a459c6cec418" }

可以執行

db.system.users.remove({"user":"root"});

刪除帳號。
用戶認證時,服務器將認證和連接綁定來跟蹤認證。
3.3 其他安裝考慮
除了認證還有許多選項來鎖定MongoDB實例。即便使用認證,MongoDB傳輸協議是不加密的。如需加密,需要使用SHH隧道或類似做客戶端和服務器之間的加密。
MongoDB服務器建議布置在防火牆或內網中,但是如果需要被外部訪問,使用--bindip選項,可以指定mongod綁定在本機IP地址。
可以用--noscripting完全禁止服務器端JavaScript的執行。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved