理論小知識 MongoDB伺服器管理

2021-10-08 23:31:03 字數 1926 閱讀 2037

使用認證保護伺服器?

mongodb支援簡單的基於角色的認證系統,通過該系統可以控制使用者對資料庫的訪問以及他們被授予的訪問級別。

啟動的時候指定引數,可以阻止客戶端的訪問和連線。先啟用系統的登入驗證模組, 只需在啟動時指定 auth 引數即可

mongodb使用者角色:

read:允許使用者讀取指定的資料庫。

readwrite:授予使用者指定資料庫的讀和寫許可權。

dbadmin:允許使用者在指定的資料庫中執行管理函式。

useradmin:允許使用者向system.users集合中寫入,具有該許可權的使用者可以在該資料庫中建立,刪除和管理使用者。

clusteradmin:只在admin資料庫可使用,為使用者賦予所有分片和複製集相關函式的完全管理許可權。

新增刪除使用者?

新增命令:

db.adduser(「user_reader」, 「user_pwd」, true)

刪除命令:

db.system.users.remove();

監控mongodb?

效能監控:mongosniff:此工具可以從底層監控到底有哪些命令傳送給了 mongodb 去執行。 mongostat:工具可以快速的檢視某組執行中的 mongodb 例項的統計資訊。 db.serverstatus:這個命令是最常用也是最基礎的檢視例項執行狀態的命令之一。db.stats:檢視資料庫狀態資訊mongodb 從一面世就得到眾多開源愛好者和團隊的重視,在常用的監控框架如 cacti、nagios、zabbix 等基礎上進行擴充套件,進行 mongodb 的監控都是非常方便的

備份?檔案快照方式

這是最簡單的備份方法。但是,需要系統檔案支援快照和mongod必須啟用journal。恢復時,確保沒有執行mongod,執行快照恢復操作命令,然後啟動mongod程序,mongod將重放journal日誌。

使用mongodump方式

千萬不要fsynclock與mongodump配合使用,如果資料庫被鎖定了,mongodump將永遠掛起,使用mongodump備份比較慢,在備份複製集時還有些問題.但是,用來備份單個資料庫、集合、子集合還是比較好的方法。

複製資料檔案方式

直接拷貝資料目錄下的一切檔案。但是在拷貝過程中必須阻止資料檔案發生更改。因此需要對資料庫加鎖,以防止資料寫入

備份複製集

通常情況下,在secondary進行備份,降低primary負載,只在secondary上鎖定,以免影響業務(假設沒有傳送讀請求到secondary)。 可以使用上面的任意方式進行備份,不過推薦使用檔案快照方式和複製資料檔案方式。使用mongodump備份,上面提到了乙個問題,那就是在mongodump備份過程中,發生寫操作。在複製集架構環境下,要避免這種情況發生,mongodump需要加上–oplog引數,來跟蹤備份時伺服器上發生的所有操作,獲取乙個pointin-time快照,否則備份的狀態將與集群中其他節點不匹配。在恢復時,還必須建立oplog,並指定–oplogreplay引數來應用這些操作,否則恢復的成員將不知道從何處開始同步,從而在某個時間點上與源伺服器保持一致。在備份複製集時,可以設定mongodump連線"setname/s1,s2,s3", 它會自動選擇乙個可用的secondary進行備份。

備份分片

在分片集群下,不可能在乙個時間點上得到乙個完整集群狀態的快照。當集群越來越大時,從備份恢復整個架構的機率越來越小的。 因此,對於分片集群的備份,只需獨自備份config server和複製集。

在對分片集群進行備份與恢復操作前,要關閉balancer。

對於比較小的分片集群,可以直接從mongos來備份與恢復。

在大多數情況下,我們只需要恢復集群中的某個節點。 如果需要恢復 整個集群,那你夠倒霉的了,整個集群資料丟失可能性比較小的。備份時,直接連線分片集群的mongod而不是通過mongos。

對於比較小型的分片集群,可以直接通過mongodump連線到mongos進行備份,備份的檔案將包含config伺服器的元資料資訊和實際資料。

伺服器維護小知識

這兩天一直在搗騰伺服器,cmd下執行netstat ano可以發現有程式在掃瞄埠,怎麼辦呢?google埠攻防,最簡單的方法,啟動tcp ip過濾器,只開啟特定埠,那麼掃瞄其他埠 並不會建立tcp鏈結,也就不會加重服務端的負載。服務端使用superscan3掃瞄已經啟動的服務埠,記錄下來。進入網路連...

Linux 小知識翻譯 伺服器

這次聊聊 伺服器 這個詞。可能會覺得為什麼 突然問這個?接下來請先考慮一下下面的題目。a web伺服器是指提供網頁資料的軟體 b web伺服器是指執行上述軟體的硬體 那麼,究竟那句話是對的呢?答案是 2句都是對的。也就是說,提到 伺服器 的時候,可能是指軟體,也可能是指硬體。比如,apache 軟體...

dns伺服器理論基礎知識

一 什麼是dns 在網際網路上通訊需要借助於ip位址,但人類對於數字的記憶能力遠不如文字,那麼將ip位址轉換成容易記憶的文字是個好辦法,可是計算機只能識別0 1 這時就需要一種機制來解決ip位址與主機名的轉換問題。早期由於網路上的主機數量有限,主機名和ip的解析借助於hosts檔案即可完成,linu...