1 回答

TA貢獻1874條經驗 獲得超12個贊
1.啟停止MongoDB
執行mongod,啟MongoDB服務器mongod選項命令執行 mongod --help
主要選項:
--dbpath
指定數據目錄默認值C:\data\db每mongod進程都需要獨立數據目錄要3mongod
實例必須3獨立數據目錄mongod啟數據庫目錄創建mongod.lock文件
文件用于防止其mongod純凈使用該數據目錄
--port
指定服務器監聽端口號默認端口27017.要運行mongod進程則要給每指定同端口號
--logpath
指定志輸路徑文件夾讀寫權限系統文件存創建已文件覆蓋掉
清除所原志記錄想要保留原志需使用--logappend選項
--config
指定配置文件加載命令行未指定各種選項
2.配置文件啟
MongoDB支持文件獲取配置信息.需要配置非或者要自化MongoDB啟用.
指定配置文件用-f或--config選項.
:
mongod --config refactorConfig.txt
refactorConfig.txt內容:
#start MongoDB
port = 10000
dbpath = "f:\mongo\db"
logpath = "f:\mongo\log\MongoDB.txt"
rest = true
配置文件命令行功能
mongod --dbpath "f:\mongo\db" --logpath "f:\mongo\log\MongoDB.txt" --rest --port 10000
配置文件特點:
a.#行注釋
b.指定選項語種"選項=值"形式.選項區寫.
c.命令行--rest關選項,值要設true
3.停止MongoDB
使用shutdown命令{"shutdown":1},命令要admin數據庫使用.shell提供輔助函數:
use admin
db.shutdownServer()
4. 監控
使用管理接口,默認情況,啟mongod啟基本http服務器,該服務默認端口28017.瀏覽器輸入
localhost:28017.些鏈接需要mongod啟,用--rest選項啟rest支持 才能進.啟rest支持,
mongod啟使用--nohttpinterface關閉管理接口.
5.serverStatus
要獲取運行MongoDB服務器統計信息,基本工具serverStatus命令
db.runCommand({"serverStatus":1})
serverStatus返鍵解釋:
"globalLock"值表示全局寫入鎖占用服務器少間(單位微秒)
"mem"包含服務器內存映射少數據,服務器進程虛擬內存駐內存占用情況(單位MB)
"indexCounters"表示B樹磁盤檢索("misses")內存檢索("hits")數.比值始升,要考慮加內存.
"backgroundFlushing"表示臺做少fsync及用少間
"opcounters"文檔包含每種主要操作數
"asserts"統計斷言數
6.mongostat
serverStatus雖強,服務器監控說容易.MongoDB提供mongostat
mongostat輸些serverStatus提供重要信息,每秒輸新行,比前看靜態數據實性要.
輸列,別 inserts/s commands/s vsize %locked,與serverStatus數據相應.
使用第三插件進行數據庫監控.
7.安全認證
認證基礎知識
每MongoDB實例數據庫都用戶,啟安全性檢查,數據庫認證用戶才能執行讀或寫操作.
認證文,MongoDB普通數據作admin數據庫處理.admin數據庫用戶稱超級用戶(管理員).
認證,管理員讀寫所數據庫,執行特定管理命令,listDatabasesshutdown.
啟安全檢查前,至少要管理員帳號,shell連接沒啟安全檢查服務器
面添加管理員refactor_root,test數據庫添加兩普通賬號,其讀權限.shell創建讀用戶要
addUser第三參數設true.調用addUser必須響應數據庫寫權限.所數據庫調用addUser,
沒啟安全檢查.
重啟數據庫,重啟加入 --auth 命令行選項,啟安全檢查
第連接,能test數據庫執行任何操作,作讀用戶認證,能查找,能插入數據.能讀寫用戶認證,能查找插入
數據,能使用show dbs 列舉所數據庫.超級用戶認證,所欲.
8.認證工作原理
數據庫用戶帳號文檔形式存儲system.users集合.文檔結構
{
"_id" : ObjectId("5006a037dff37e149322fd83"),
"user" : "refactor_read_write",
"readOnly" : false,
"pwd" : "5a84584ac51d3f702461fce4c46b0d6b"//根據用戶名密碼散列
}
知道用戶信息何存儲及存儲位置,進行管理工作.
刪除帳戶:
> db.system.users.remove({"user":"refactor_read"})
> db.auth("refactor_read","refactor")
0
用戶認證,服務器認證連接綁定跟蹤認證,說驅程序或工具使用連接池或故障切換
另節點,所認證用戶必須每新連接重新認證.
MongoDB傳輸協議加密,需加密,用ssh隧道或者類似技術做客戶端服務器間加密.
建議MongoDB服務器放防火墻或放應用服務器能訪問網絡.MongoDB必須能外面訪問,
建議使用--bindip選項,指定mongod綁定本ip址.:能本機應用服務器訪問,使用
mongod --bindip localhost
默認情況MongoDB啟簡單http服務器,便于查看運行,鎖,復制等面信息,要想公些信息,用
--nohttpinterface關閉管理接口.
用--noscripting完全禁止服務端javascript執行
9.備份修復
MongoDB所數據都存放 數據目錄 ,默認目錄C:\data\db\.啟MongoDB候用--dbpath指定數據目錄.
論數據目錄哪,都存放著MongoDB所數據.要想備份MongoDB,要簡單復制數據目錄所文件即.
除非服務器做完整fsync,允許寫入,否則運行MongoDB創建數據目錄副本并安全,備份能已經
破損,需要修復.
運行MongoDB創建數據目錄副本并安全,所先服務器關,再復制數據目錄.關閉數據庫要停止業務.
10.mongodumpmongorestore
mongodump種能運行備份.mongodump運行MongoDB做查詢,所查文檔寫入磁盤.
mongodump般客戶端,所供運行MongoDB使用,即便處理其請求或執行寫入沒問題.
mongodump使用普通查詢機制,所產備份定服務器數據實快照.服務器備份程處理寫入,非明顯.
mongodump備份查詢其客戶端性能產影響.
mongodump --help 獲幫助
mongorestore備份恢復數據工具.
mongorestore獲取mongodump 輸結,并備份數據插入運行MongoDB實例.
:數據庫test備份backup目錄
mongodump -d test -o backup
使用mongorestore 恢復testNew 數據庫
mongorestore -d testNew --drop backup/test/
-d指定要恢復數據庫.--drop指恢復前刪除集合(若存),否則數據與現集合數據合并,能覆蓋些文檔.
使用mongorestore --help獲幫助信息
11.fsync鎖
雖使用mongodumpmongorestore能停機備份,卻失獲取實數據視圖能力.MongoDBfsync命令
能MongoDB運行復制數據目錄損壞數據.
fsync命令強制服務器所緩沖區寫入磁盤.選擇鎖住址數據庫進步寫入,知道釋放鎖止.寫入鎖讓
fsync備份發揮作用關鍵.
shell,強制執行fsync并獲寫入鎖:
db.runCommand({"fsync":1,"lock":1})
,數據目錄數據致,且數據實快照.鎖,安全數據目錄副本作備份.要數據庫運行
快照功能文件系統,比LVM,EBS,用,拍數據庫目錄快照快.
備份,解鎖:
db.$cmd.sys.unlock.findOne()
db.currentOp()
運行db.currentOp()確保已經解鎖(初請求解鎖花點間)
fsync命令,能非靈備份,用停掉服務器,用犧牲備份實性能.要付代價些寫入操作
暫阻塞.唯耽誤讀寫能保證實快照備份式通服務器備份.
12.屬備份
雖面備份式靈,都沒服務器備份.復制式運行MongoDB,前面提備份技術僅能用
主服務器,用服務器.服務器數據幾乎與主服務器同步.太乎屬服務器性能或者能能讀寫,
于能隨意選擇面3種備份式:關停,轉存或恢復工具或fsync命令.服務器備份MongoDB推薦備份式.
13.修復
MongoDB存儲式能保證磁盤數據能用,能損毀.MongoDB內置修復功能試著恢復損壞數據文件.
未停止MongoDB應該修復數據庫.修復數據庫式簡單 mongod --repair 啟服務器.
修復數據庫實際程簡單:所文檔導馬導入,忽略效文檔.完,重建索引.數據量,花間,
所數據都要驗證,所索引都要重建(MongoDB 1.8 版本引入志系統,使修復間打打縮短).
修復能比修復前少些文檔,損壞文檔刪除.
修復數據庫能起壓縮數據作用.閑置控件(刪除體積較集合,或刪除量文檔騰空間)修復重新利用.
修復運行服務器數據庫,要shell用repairDatabases.
use test
db.repairDatabase()
- 1 回答
- 0 關注
- 109 瀏覽
添加回答
舉報