MongoDB 資料庫管理
MongoDB 的一個關鍵概念是資料庫管理。在資料庫管理方面,安全性、備份、資料庫訪問等重要方面都是重要的概念。
在本教程中,你將學習 -
-
資料庫安全概述
-
索引和效能考慮
-
備份程式
-
Mongodb 監測
MongoDB 安全概述
MongoDB 能夠為資料庫定義安全機制。預設情況下,不希望每個人都擁有對 MongoDB 中每個資料庫的開放訪問許可權,因此在 MongoDB 中使用某種安全機制的要求非常重要。
以下是在資料庫中實現安全性時的最佳實踐
-
啟用訪問控制 - 建立使用者,以便在訪問 MongoDB 上的資料庫時強制所有應用程式和使用者都具有某種身份驗證機制。
-
配置基於角色的訪問控制 - 有時可能需要一個邏輯的許可權分組,這些許可權可以在角色中進行分組。然後可以將使用者分配到這些角色。
-
嘗試將 MongoDB 配置為使用某種加密協議,如 TLS 或 SSL。這些協議可用於加密在客戶端和 mongo DB 環境之間流動的流量。
-
配置稽核 - 管理員通常需要知道誰在做什麼,這有助於以後分析問題。最好的方法是在 MongoDB 中啟用審計。
-
使用單獨的使用者標識執行 MongDB 伺服器例項,該使用者標識可以訪問伺服器環境中所需的資源。
MongoDB 索引和效能注意事項
- 索引在任何資料庫中都非常重要,可用於提高 MongoDB 中搜尋查詢的效率。如果你在文件中不斷執行搜尋,則最好在搜尋條件中使用的文件欄位中新增索引。
- 嘗試始終限制返回的查詢結果數。假設你在文件中有 2 個欄位名稱,但你只想檢視文件中的 2 個欄位。然後確保你的查詢僅定位顯示你需要的 2 個欄位,而不是所有欄位。
- 如果要檢視某些欄位值,則僅在查詢中使用這些欄位。如果不需要,請不要查詢集合中的所有欄位。
Mongodb 備份程式
使用 MongDB 時,務必確保備份過程到位,以防 MongoDB 中的資料因任何原因而損壞。
以下是 MongoDB 中可用的備份機制
- 通過複製底層資料檔案進行備份 - 這可能是最簡單的機制,所有需要做的就是複製 MongoDB 所在的資料檔案並將其複製到另一個理想情況下應該是另一個伺服器的位置。
- 使用 mongodump 備份資料庫 - mongodump 工具從 MongoDB 資料庫讀取資料並建立高保真 BSON 檔案。需要考慮的是,如果資料集的數量很大,那麼 mongodump 可能是非常耗費資源的,因此為了緩解這個問題,應該在輔助伺服器上執行該實用程式。
- MongoDB Cloud Manager 備份 - MongoDB Cloud Manager 通過從 MongoDB 環境讀取 oplog 資料,不斷備份 MongoDB 副本集和分片叢集。MongoDB Cloud Manager 可以通過儲存 oplog 資料來建立時間點恢復,以便它可以隨時為特定副本集或分片叢集建立還原。
Mongodb 監控
監控是 MongoDB 中最重要的管理活動之一。這是因為你可以通過監控環境來更積極主動地查詢可能出現的問題。
以下是一些實施監控的方法
- mongostat將告訴你伺服器上實際發生了多少次資料庫操作,如插入,查詢,更新,刪除等。這將很好地瞭解伺服器處理的負載量,並指示你是否需要伺服器上的其他資源,或者是否需要其他伺服器來分配負載。
- mongotop跟蹤並報告 MongoDB 例項的當前讀寫活動,並根據每個收集報告這些統計資訊。
- MongoDB 提供了一個 Web 介面,可以在簡單的 Web 頁面中公開診斷和監視資訊。可以瀏覽到本地伺服器上的以下 URL 以開啟 Web 管理實用程式 http://localhost:28017
serverStatus
命令或 shell 中的db.serverStatus()
返回資料庫狀態的概述,其中包含有關磁碟使用情況,記憶體使用情況,與 MongoDB 環境建立的連線等的詳細資訊。
概要:
- 在資料庫中實現安全性非常重要,以確保資料庫中的資料保持安全。
- 可以使用
createUser
命令在資料庫中建立使用者。可以為使用者分配特定角色,以便為他們提供資料庫本身的特定許可權。 - 可以為所有資料庫新增管理員,僅適用於特定資料庫。這是通過提供
userAdmin
或userAdminAnyDatabase
角色來實現的。 - 始終備份你的 MongoDB 環境,以便在發生任何災難時,資料很容易恢復。
- 始終監控 MongoDB 環境,使其更加主動,並在問題發生之前檢視問題。