快速了解 mongodump:MongoDB 資料庫備份必知工具

閱讀時間約 1 分鐘
raw-image

👨‍💻簡介

在資料庫管理和系統維護中,備份是非常重要的一環。對於使用 MongoDB 的開發者和資料庫管理員來說,mongodump 是一個非常實用的命令行工具,能夠快速且輕鬆地完成資料庫的備份和恢復。無論是進行資料遷移、系統升級,還是面對突發的故障,mongodump 都能提供穩定的資料保護。這篇文章會簡單介紹一下 mongodump 的基本概念、怎麼使用,以及它的優缺點,讓你能夠更全面地了解這個工具,為你的資料庫管理增添一份安全保障。

🔰基礎介紹

什麼是 mongodump ?

mongodump 是 MongoDB 提供的一個命令行工具,用於備份資料庫資料。 它會將 MongoDB 資料庫中的資料導出成 BSON 格式的檔案,這些檔案可以用於後續的資料恢復或移轉。

mongodump 主要功能

mongodump 的主要用途是資料備份與恢復。開發者或資料庫管理員可以使用 mongodump 來建立資料庫的快照,確保在系統升級、遷移或故障時,能夠有完整的資料還原方案。

MongoDump 優缺點

優點

  1. 簡單易用:使用命令行即可輕鬆進行資料備份。
  2. 支援大規模資料:能夠高效處理大型資料庫。
  3. 可用於各種場景:無論是本地還是遠端資料庫都能支援。
  4. 支援跨平台:可在各種操作系統上使用。

缺點

  1. 無法熱備份:備份過程中會影響資料庫性能,特別是在大型資料庫或高負載環境下。
  2. 備份格式相對龐大:BSON 格式備份檔案較大,可能占用較多的磁碟空間。
  3. 安全性問題:備份時需要妥善處理資料和憑證,避免資料洩露。

🎯setup

基本指令

  1. 導出整個資料庫 語法:
mongodump --db <database_name>

範例:

mongodump --db mydatabase

2. 導出特定集合(collection) 語法:

mongodump --db <database_name> --collection

範例:

mongodump --db mydatabase --collection mycolletion

3. 導出到特定目錄 語法:

mongodump --out <output_directory>

範例:

mongodump --db mydatabase --out /path/to/backup

4. 導出遠端 MongoDB 伺服器 語法:

  • 使用參數組合指令
mongodump --host <mongo_host_or_ip> --port <port> --db <database_name> --username <username> --password <password> --authenticationDatabase <auth_database>
  • 使用 URI:
mongodump --uri mongodb://<username>:<password>@<mongo_host_or_ip>:<port>/<database_name>?authSource=<auth_database>

範例:

mongodump --host mongodb.example.com --port 27017 --db mydatabase --username mongo_user --password mongo_pass --authenticationDatabase mydatabase

常用參數

  • --uri=<connectionString>

指定 MongoDB 連線 uri

  • --host=<hostname><:port>, -h=<hostname><:port>

指定連線 Port

Default: localhost:27017

  • --username=<username>, -u=<username>

指定連線 username

  • --password=<password>, -p=<password>

指定連線密碼

  • --authenticationDatabase=<dbname>

指定身份驗證的資料庫

  • --authenticationMechanism=<name>

指定身份驗證機制 Default: SCRAM-SHA-1

  • --db=<database>, -d=<database>

指定要備份的資料庫。如果不指定,會將所有資料庫複製到 dump 檔案。

  • --collection=<collection>, -c=<collection>

指定要備份的集合。如果不指定集合,會將指定資料庫的所有集合複製到 dump 檔案。

  • --query=<json>, -q=<json>

提供 JSON 文件作為查詢。

常見問題 FAQ

  • mongodump 對資料庫性能有影響嗎?

是的,mongodump 在進行備份時可能會佔用系統資源,尤其是對於大型資料庫或高負載環境。建議在流量較低的時間進行備份操作,或者考慮使用影本(replica set)來進行讀取備份,降低對主數據庫的影響。

  • BSON 格式備份檔案太大,怎麼解決?

BSON 格式的備份檔案較大是 mongodump 的一個缺點,可以使用壓縮工具(如 gzip)來減少備份檔案的大小,或者選擇性地備份特定集合而非整個資料庫。

  • mongodump 支援熱備份嗎?

mongodump 不支援完全的熱備份,執行備份時會暫時鎖定集合來確保數據一致性,因此會短暫影響到數據庫操作。對於需要高可用性的系統,可以考慮使用影本集群來實現較為接近的熱備份效果。

  • 如何確保備份資料的安全性?

確保備份過程中不會暴露敏感憑證,並對備份檔案進行加密。同時,將備份文件保存在有權限管理的安全目錄中,並定期檢查備份的可用性和完整性。

  • mongodump 支援哪些驗證機制?

mongodump 支援多種驗證機制,包括 SCRAM-SHA-1、SCRAM-SHA-256 等。可根據你的 MongoDB 配置選擇適合的驗證方式來進行安全連線。

  • mongodump 的備份檔案可以直接導入嗎?

mongodump 產生的備份檔案不能直接被 MongoDB 使用,需要透過 mongorestore 命令進行恢復,才能完整還原到目標資料庫。

📚Reference

17會員
83內容數
golang
留言0
查看全部
發表第一個留言支持創作者!
Alan的開發者天地 的其他內容
本文介紹如何對 Telegram 憑證監控機器人的代碼進行優化,包括新增指令、讀取變數、提高可讀性和可維護性。
在這篇文章中,將繼續介紹 TG Bot 整合 MongoDB 的相關操作。主要包括對 domain 進行驗證操作,使用的工具有 Python 、MongoDB 和 TG Bot。具體的功能需求包括新增 domain 前檢查 domain 憑證以及透過 TG Bot 檢查所有 domain 是否過期。
本文介紹如何使用 TG Bot 來操作 MongoDB,包括讀取所有 domain、讀取特定 domain、新增 domain、批量新增 domain、修改 domain 和刪除 domain。透過 TG Bot 的指令操作,實現了自動化管理和多環境管理。
👨‍💻 簡介 今天這篇主要是帶大家快速建立屬於自己的 Telegram bot,申請 bot 的部分我會附上網址,請準備好之後再來開始。 🛠️ 使用工具 Python 3.9.6 TG Bot 📝 功能需求 輸入指令讓 TG Bot 回傳訊息 接受傳入參數並進行簡單回傳 設定
學習如何使用Python連接MongoDB進行憑證監控,包括建立MongoDB docker-compose、連接MongoDB、讀取yaml並寫入MongoDB、傳入env以及domain寫入MongoDB、讀取MongoDB、修改MongoDB、刪除MongoDB。
👨‍💻簡介 最近因為憑證越來越多,需要監控什麼時候到期,當到期時發送到期通知,因此撰寫一個簡單的小程式來完成。 這次使用Python和Telegram Bot來監控SSL證書的到期時間並發送通知。並使用GCP工具,如CloudFunction和CloudScheduler做部署平台。
本文介紹如何對 Telegram 憑證監控機器人的代碼進行優化,包括新增指令、讀取變數、提高可讀性和可維護性。
在這篇文章中,將繼續介紹 TG Bot 整合 MongoDB 的相關操作。主要包括對 domain 進行驗證操作,使用的工具有 Python 、MongoDB 和 TG Bot。具體的功能需求包括新增 domain 前檢查 domain 憑證以及透過 TG Bot 檢查所有 domain 是否過期。
本文介紹如何使用 TG Bot 來操作 MongoDB,包括讀取所有 domain、讀取特定 domain、新增 domain、批量新增 domain、修改 domain 和刪除 domain。透過 TG Bot 的指令操作,實現了自動化管理和多環境管理。
👨‍💻 簡介 今天這篇主要是帶大家快速建立屬於自己的 Telegram bot,申請 bot 的部分我會附上網址,請準備好之後再來開始。 🛠️ 使用工具 Python 3.9.6 TG Bot 📝 功能需求 輸入指令讓 TG Bot 回傳訊息 接受傳入參數並進行簡單回傳 設定
學習如何使用Python連接MongoDB進行憑證監控,包括建立MongoDB docker-compose、連接MongoDB、讀取yaml並寫入MongoDB、傳入env以及domain寫入MongoDB、讀取MongoDB、修改MongoDB、刪除MongoDB。
👨‍💻簡介 最近因為憑證越來越多,需要監控什麼時候到期,當到期時發送到期通知,因此撰寫一個簡單的小程式來完成。 這次使用Python和Telegram Bot來監控SSL證書的到期時間並發送通知。並使用GCP工具,如CloudFunction和CloudScheduler做部署平台。
你可能也想看
Google News 追蹤
Thumbnail
本專欄將提供給您最新的市場資訊、產業研究、交易心法、精選公司介紹,以上內容並非個股分析,還請各位依據自身狀況作出交易決策。歡迎訂閱支持我,獲得相關內容,也祝您的投資之路順遂! 每年 $990 訂閱方案👉 https://reurl.cc/VNYVxZ 每月 $99 訂閱方案👉https://re
Thumbnail
我們在「【Message Queue - Kafka】不斷的試誤…, 用Docker來嘗試安裝Kafka」有介紹如何架設kafka, 其中我們使用環境變數來進行kafka的配置, 但除了環境變數之外, 其實還能夠用檔案配置的方式來對kafka進行配置, 如此一來我們就可以將配置檔與啟動檔完全分開,
Thumbnail
本文介紹瞭如何使用BAT腳本和CMD指令來自動執行檔案和空目錄的刪除作業。通過設定各種參數和指令,可以快速、有效地執行定期刪除作業,節省硬體空間並提升工作效率。
今天學習Git 的第一步: 取得與建立項目 Getting and Creating Projects [1]。 之前提到「儲存庫 Repository」就是儲存所有「檔案 File」的地方。 在Git 的邏輯裡,儲存庫是要儲存所有的「快照 Snapshots」。 什麼是快照
儲存庫 (Repository) 是檔案(File)的儲存區域。 在版本控制中,儲存庫是包含所有檔案的資料夾[1]。 每次改動檔案,你都可以選擇要不要儲存。 而那些有被處存的改動,就被稱為「提交 Commit」[2]。 而當一個儲存庫有多個開發者(Developer)在貢獻,
Thumbnail
Lua 開檔寫檔的運用 io.output()...
Thumbnail
工具功能 (1) 彈性任意查詢檔案,如對來源目錄設定,檔案修改日期 設定,檔名特定字串或副檔名設定後,自動查出明細,並可展開至各階子目錄處理     (2) 依查詢後結果,可產出 LIST ,提供查詢結果之確認,再依此對檔案作複 (3) 可對檔案作移動,複製至別處,刪除處理,使電腦可騰出硬碟空間
Thumbnail
支援Go所有的類型儲存,且可以用原生SQL敘述與跨資料庫查詢。 映射關係 table->struct record->object field->attribute 安裝 go get github.com/astaxie/beego/orm​ go get github.com
Thumbnail
前言 上次講到 Dockerfile、DockerImage、Docker Container 他們之間的關係,今天我們要來熟悉 Docker Image 如何使用,教你如何抓取雲端上的 Docker Image, Docker Image 下載來源 當我們今天要要使用 Docker Imag
Thumbnail
※ 基本操作:SQL 語法,SELECT, WHERE, CREATE, UPDATE, DELETE。 SELECT:從資料庫中或資料表中指定要選擇的欄位中取得資料,稱之為查詢 (query)。 ※ 語法:要由兩部分構成,第一部分是要 "拿什麼" 資料 (若有多項用逗號隔開);第二部分則為
Thumbnail
本專欄將提供給您最新的市場資訊、產業研究、交易心法、精選公司介紹,以上內容並非個股分析,還請各位依據自身狀況作出交易決策。歡迎訂閱支持我,獲得相關內容,也祝您的投資之路順遂! 每年 $990 訂閱方案👉 https://reurl.cc/VNYVxZ 每月 $99 訂閱方案👉https://re
Thumbnail
我們在「【Message Queue - Kafka】不斷的試誤…, 用Docker來嘗試安裝Kafka」有介紹如何架設kafka, 其中我們使用環境變數來進行kafka的配置, 但除了環境變數之外, 其實還能夠用檔案配置的方式來對kafka進行配置, 如此一來我們就可以將配置檔與啟動檔完全分開,
Thumbnail
本文介紹瞭如何使用BAT腳本和CMD指令來自動執行檔案和空目錄的刪除作業。通過設定各種參數和指令,可以快速、有效地執行定期刪除作業,節省硬體空間並提升工作效率。
今天學習Git 的第一步: 取得與建立項目 Getting and Creating Projects [1]。 之前提到「儲存庫 Repository」就是儲存所有「檔案 File」的地方。 在Git 的邏輯裡,儲存庫是要儲存所有的「快照 Snapshots」。 什麼是快照
儲存庫 (Repository) 是檔案(File)的儲存區域。 在版本控制中,儲存庫是包含所有檔案的資料夾[1]。 每次改動檔案,你都可以選擇要不要儲存。 而那些有被處存的改動,就被稱為「提交 Commit」[2]。 而當一個儲存庫有多個開發者(Developer)在貢獻,
Thumbnail
Lua 開檔寫檔的運用 io.output()...
Thumbnail
工具功能 (1) 彈性任意查詢檔案,如對來源目錄設定,檔案修改日期 設定,檔名特定字串或副檔名設定後,自動查出明細,並可展開至各階子目錄處理     (2) 依查詢後結果,可產出 LIST ,提供查詢結果之確認,再依此對檔案作複 (3) 可對檔案作移動,複製至別處,刪除處理,使電腦可騰出硬碟空間
Thumbnail
支援Go所有的類型儲存,且可以用原生SQL敘述與跨資料庫查詢。 映射關係 table->struct record->object field->attribute 安裝 go get github.com/astaxie/beego/orm​ go get github.com
Thumbnail
前言 上次講到 Dockerfile、DockerImage、Docker Container 他們之間的關係,今天我們要來熟悉 Docker Image 如何使用,教你如何抓取雲端上的 Docker Image, Docker Image 下載來源 當我們今天要要使用 Docker Imag
Thumbnail
※ 基本操作:SQL 語法,SELECT, WHERE, CREATE, UPDATE, DELETE。 SELECT:從資料庫中或資料表中指定要選擇的欄位中取得資料,稱之為查詢 (query)。 ※ 語法:要由兩部分構成,第一部分是要 "拿什麼" 資料 (若有多項用逗號隔開);第二部分則為