MongoDB 備份與恢復終極指南:mongodump 和 mongorestore 深度實戰

MongoDB 備份與恢復終極指南:mongodump 和 mongorestore 深度實戰

        • 引言:數據守護者的使命
      • 第一部分:基礎概念與核心原理
        • 1.1 邏輯備份 vs. 物理備份:根本性的區別
        • 1.2 核心工具介紹
      • 第二部分:mongodump 備份實戰詳解
        • 2.1 基礎語法與連接選項
        • 2.2 備份范圍控制選項
        • 2.3 高級功能與性能選項
        • 2.4 實戰示例大全
      • 第三部分:mongorestore 恢復實戰詳解
        • 3.1 基礎語法與連接選項
        • 3.2 恢復范圍與控制選項
        • 3.3 高級功能與一致性選項
        • 3.4 實戰示例大全
      • 第四部分:生產環境最佳實踐與全流程方案
        • 4.1 權限管理與專用賬戶
        • 4.2 備份策略:全量、增量與 Oplog
        • 4.3 自動化與調度
        • 4.4 備份驗證與恢復演練
        • 4.5 監控與告警
        • 4.6 加密與安全
        • 4.7 完整的備份腳本示例
    • 然后讓 cron 每天調用這個腳本。
      • 第五部分:故障排除與常見問題
      • 結論

引言:數據守護者的使命

在數字化時代,數據是任何組織最寶貴的資產之一。對于依賴 MongoDB 的應用程序而言,健全的備份與恢復策略不是一種選擇,而是一種必需品。它關乎業務的連續性、災難的恢復能力以及合規性的要求。在眾多備份工具中,mongodump 和 mongorestore 作為 MongoDB 官方提供的邏輯備份與恢復工具,因其靈活性和易用性而備受青睞。
本文將超越簡單的命令羅列,深入探討 mongodump 和 mongorestore 的核心原理、高級用法、生產環境的最佳實踐,以及如何構建一個以它們為核心的、健壯的備份體系。我們將涵蓋從單機部署到大型復制集集群的場景,確保無論您的架構如何,都能找到合適的解決方案。

第一部分:基礎概念與核心原理

1.1 邏輯備份 vs. 物理備份:根本性的區別

理解這兩種備份方式的本質差異是制定正確策略的基石。

  • 邏輯備份 (Logical Backup)
    • 工作原理:mongodump 通過與 mongod 進程建立連接,執行查詢來提取數據。它將數據序列化為 BSON (Binary JSON) 格式的文件。每個集合的數據存儲在 /.bson 文件中,元數據(如索引定義)則存儲在 /.metadata.json 文件中。mongorestore 則反向操作,讀取這些 BSON 文件并將文檔插入到目標數據庫。
    • 優點:
      • 兼容性與靈活性:備份文件可以在不同版本的 MongoDB 之間遷移(需注意版本兼容性),并且可以輕松選擇備份或恢復單個數據庫、集合甚至滿足特定查詢條件的文檔子集。
      • 在線操作:通常不需要停機和鎖庫,對業務影響較小,尤其是在從備份節點進行操作時。
      • 存儲效率:結合 --gzip 選項,可以顯著減少備份文件的磁盤占用空間。
      • 可讀性:.metadata.json 文件是明文 JSON,便于查看索引和選項信息。
    • 缺點:
      • 性能與速度:對于超大型數據集(TB 級別),遍歷和導出所有文檔的過程可能非常緩慢。
      • 索引重建:默認情況下,mongorestore 會在插入數據后重建索引。對于包含大量數據和大索引的集合,索引重建階段可能比數據插入本身更耗時。
      • 瞬時一致性:由于備份過程是持續一段時間內的操作,它并不代表數據庫在某個精確時間點的快照。除非使用 --oplog 選項(僅在復制集中可用),否則備份數據可能包含時間上的不一致。
  • 物理備份 (Physical Backup)
    • 工作原理:直接拷貝 MongoDB 底層的數據文件(默認位于 /data/db 目錄)。這包括所有的數據文件、索引文件、日志文件等。
    • 實現方式:使用文件系統工具(如 cp, rsync)、存儲引擎的快照功能(如 LVM、ZFS、EBS snapshots)或 MongoDB 企業版的 Ops Manager。
    • 優點:
      • 速度極快:直接進行文件塊級別的拷貝,速度遠高于邏輯導出。
      • 完整性:備份了所有的數據和元數據,包括索引,恢復后無需重建。
      • 精確的時間點:如果操作得當(如配合 fsyncLock),可以獲得一個精確的、一致的數據庫快照。
    • 缺點:
      • 靈活性差:必須備份和恢復整個數據目錄,無法選擇單個數據庫或集合。
      • 通常需要停機:為了確保文件系統的一致性,在獲取快照時通常需要鎖定數據庫或將其置于只讀模式,除非在從節點上進行。
      • 存儲空間:備份文件大小與原始數據目錄幾乎相同。
      • 版本與架構依賴:物理備份通常嚴格依賴于 MongoDB 的版本、存儲引擎(WiredTiger)和底層硬件架構。
        結論:mongodump/mongorestore 是 邏輯備份工具。它們非常適合中小型數據庫的日常備份、跨版本遷移、部分數據恢復和開發測試環境的數據填充。對于超大型生產環境,通常采用 邏輯備份 + 物理快照 + 復制集 Oplog 的混合策略,以實現靈活性、速度和恢復粒度之間的平衡。
1.2 核心工具介紹
  • mongodump:數據導出工具。它連接到運行的 mongod 實例,并創建數據的 BSON 轉儲。
  • mongorestore:數據導入工具。它讀取 mongodump 創建的 BSON 轉儲文件,并將數據恢復到運行的 mongod 實例。
  • BSON:MongoDB 使用的二進制編碼的 JSON 格式。它比 JSON 更高效,支持更多的數據類型,是數據在磁盤和網絡傳輸中的格式。

第二部分:mongodump 備份實戰詳解

2.1 基礎語法與連接選項
mongodump <options>

核心連接與認證選項:

選項全稱說明示例
-h / --hostMongoDB 主機地址和端口。對于復制集,可指定多個節點。-h localhost:27017 -h rs0/192.168.1.10:27017,192.168.1.11:27017
-u / --username用于認證的用戶名。-u myBackupUser
-p / --password對應用戶的密碼。提示: 在命令行直接寫密碼不安全,可使用 --password 不跟參數,工具會交互式提示輸入。-p (推薦) 或 -p myPassword (不安全)
–authenticationDatabase用戶身份憑據所在的數據庫。對于管理員用戶,通常是 admin。–authenticationDatabase admin
–authenticationMechanism認證機制,如 SCRAM-SHA-1 或 SCRAM-SHA-256。通常無需指定,除非服務器配置了特殊機制。–authenticationMechanism SCRAM-SHA-256
2.2 備份范圍控制選項
選項全稱說明示例
-d / --db指定要備份的數據庫。如果不指定,則備份實例中的所有數據庫(除了 local 數據庫)。-d myAppDB
-c / --collection指定要備份的集合。必須與 -d 選項一起使用。-d myAppDB -c users
-o / --out指定輸出備份文件的目錄。如果目錄不存在,會被創建。-o /opt/backups/mongo_dump_20231027/
–excludeCollection排除指定的集合。可多次使用以排除多個集合。–excludeCollection logs --excludeCollection tmpData
–excludeCollectionsWithPrefix排除具有指定前綴的集合。–excludeCollectionsWithPrefix system
2.3 高級功能與性能選項
選項全稱說明示例
–gzip壓縮輸出。對每個集合的 BSON 文件進行 GZIP 壓縮,可大幅減少備份體積(通常 50%-80%)。強烈推薦使用。–gzip
–oplog在備份期間記錄 Oplog 操作。這是實現點時間點恢復的關鍵。僅適用于復制集。它會生成一個 oplog.bson 文件。–oplog
–query / --queryFile使用 JSON 查詢文檔來備份集合的一部分數據。–queryFile 允許從文件讀取復雜的查詢。–query ‘{“status”: “active”}’ --queryFile /path/to/query.json
–readPreference指定讀取偏好。備份時通常應設置為 secondary 或 secondaryPreferred,以避免影響主節點。–readPreference secondary
–numParallelCollections并行導出的集合數。默認 4。增加此值可提高備份速度,但會消耗更多客戶端資源。–numParallelCollections 8
–uri使用標準的 MongoDB 連接字符串進行連接。這是一種更現代和簡潔的方式。–uri “mongodb://user:pass@host:27017/db?authSource=admin”
2.4 實戰示例大全

示例 1:備份整個實例(所有數據庫)

# 基本備份
mongodump --host localhost --port 27017 --out /opt/backups/full_dump_20231027# 帶認證和壓縮的備份 (推薦)
mongodump --host localhost --port 27017 \--username backupUser --password --authenticationDatabase admin \--out /opt/backups/full_dump_compressed_20231027 \--gzip# 使用 URI 連接字符串
mongodump --uri "mongodb://backupUser:secretPassword@localhost:27017/?authSource=admin" \--out /opt/backups/full_dump_uri_20231027 \--gzip

示例 2:備份特定數據庫和集合

# 備份單個數據庫
mongodump --host localhost:27017 -u admin -p --authenticationDatabase admin \--db myAppDB \--out /opt/backups/myapp_db_20231027 \--gzip# 備份單個集合
mongodump --host localhost:27017 -u admin -p --authenticationDatabase admin \--db myAppDB --collection users \--out /opt/backups/myapp_users_20231027 \--gzip# 排除某些集合
mongodump --host localhost:27017 -u admin -p --authenticationDatabase admin \--db myAppDB \--excludeCollection system.profile --excludeCollection temporaryLogs \--out /opt/backups/myapp_filtered_20231027 \--gzip

示例 3:高級備份技巧

# 備份復制集并從節點讀取,使用 Oplog 實現點時間點備份
mongodump --host rs0/secondary1.example.com:27017,secondary2.example.com:27017 \-u backupUser -p --authenticationDatabase admin \--readPreference secondary \--oplog \ # 核心選項!--out /opt/backups/point_in_time_dump_20231027 \--gzip# 備份滿足條件的部分數據
mongodump --host localhost:27017 -u admin -p --authenticationDatabase admin \--db myAppDB --collection orders \--query '{"orderDate": {"$gte": {"$date": "2023-10-01T00:00:00Z"}}}' \--out /opt/backups/recent_orders_dump_20231027 \--gzip

第三部分:mongorestore 恢復實戰詳解

恢復是備份的逆過程,但其策略和風險往往更為復雜。

3.1 基礎語法與連接選項
mongorestore <options> <directory-or-file>

選項與 mongodump 類似,用于連接目標 MongoDB 實例。

3.2 恢復范圍與控制選項
選項全稱說明風險與建議
-d / --db指定數據恢復到哪個數據庫。可以使用與備份時不同的數據庫名。允許靈活地重命名數據庫。
-c / --collection指定數據恢復到哪個集合。可以使用與備份時不同的集合名。允許靈活地重命名集合。
–drop在恢復數據之前,先刪除目標集合。高風險選項! 確保你真的想要完全覆蓋目標集合的現有數據。在生產環境使用前務必再三確認。
–nsExclude / --nsInclude通過命名空間模式排除或包含哪些集合。–nsInclude 非常強大,可以從完整轉儲中恢復特定集合。–nsInclude “myAppDB.importantCollection”
–noIndexRestore只恢復數據,不恢復索引。高性能選項。用于先快速恢復數據,然后手動以優化方式創建索引。
–maintainInsertionOrder按文檔在 BSON 文件中的順序插入文檔。如果備份時使用了特定順序,恢復時保持該順序可能有用。通常不需要。
3.3 高級功能與一致性選項
選項全稱說明示例
–gzip恢復壓縮的備份文件。–gzip
–oplogReplay重放備份時捕獲的 Oplog 操作。必須與 mongodump --oplog 創建的備份一起使用。–oplogReplay
–oplogLimit與 --oplogReplay 一起使用,重放 Oplog 直到指定的時間戳。用于恢復到某個精確時間點。–oplogLimit 1698432105:1
–numParallelCollections并行恢復的集合數。–numParallelCollections 8
–numInsertionWorkersPerCollection每個集合使用多少個線程來插入文檔。大幅提高數據恢復速度。–numInsertionWorkersPerCollection 4
–stopOnError在恢復過程中遇到第一個錯誤時停止。用于調試。
–uri使用連接字符串。–uri “mongodb://user:pass@host:27017/db?authSource=admin”
3.4 實戰示例大全

重要警告:在執行任何恢復操作,尤其是涉及 --drop 的操作之前,務必對目標數據庫進行備份!
示例 1:恢復整個實例

# 基本恢復
mongorestore --host localhost:27017 /opt/backups/full_dump_20231027/# 恢復壓縮的備份,并使用多線程加速
mongorestore --host localhost:27017 -u admin -p --authenticationDatabase admin \--gzip \--numParallelCollections 8 \--numInsertionWorkersPerCollection 4 \/opt/backups/full_dump_compressed_20231027/

示例 2:恢復特定數據庫和集合

# 將備份的 DB 恢復到新命名的 DB
mongorestore --host localhost:27017 -u admin -p --authenticationDatabase admin \--db myAppDB_restored \ # 新數據庫名/opt/backups/myapp_db_20231027/myAppDB/ # 注意路徑指向備份中的數據庫目錄# 恢復單個集合(并可重命名)
mongorestore --host localhost:27017 -u admin -p --authenticationDatabase admin \--db myAppDB --collection users_backup_20231027 \ # 恢復到新集合/opt/backups/myapp_users_20231027/myAppDB/users.bson # 指定具體的 BSON 文件# 從完整轉儲中恢復單個集合 (使用 --nsInclude)
mongorestore --host localhost:27017 -u admin -p --authenticationDatabase admin \--nsInclude "myAppDB.importantCollection" \--gzip \/opt/backups/full_dump_compressed_20231027/

示例 3:覆蓋式恢復與點時間點恢復

# 覆蓋式恢復 (先 DROP 集合,再插入)。極端危險!
mongorestore --host localhost:27017 -u admin -p --authenticationDatabase admin \--drop \ # 危險!--gzip \/opt/backups/myapp_db_20231027/# 重放 Oplog,實現點時間點恢復
mongorestore --host localhost:27017 -u admin -p --authenticationDatabase admin \--oplogReplay \ # 核心選項--gzip \/opt/backups/point_in_time_dump_20231027/

示例 4:高性能恢復策略

# 策略:先快速恢復數據,再手動創建優化后的索引
# 1. 恢復數據,跳過索引
mongorestore --host localhost:27017 -u admin -p --authenticationDatabase admin \--noIndexRestore \ # 不恢復索引--numParallelCollections 8 \--numInsertionWorkersPerCollection 8 \ # 提高插入并發度--gzip \/opt/backups/full_dump_compressed_20231027/# 2. (可選)在后臺手動創建索引,可以根據業務優先級逐個創建
# 連接到 mongo shell
mongosh --host localhost:27017 -u admin -p --authenticationDatabase admin myAppDB
# 在 shell 中運行
db.getCollection("largeCollection").createIndex({ "userId": 1 }, { background: true }) # 在后臺創建索引

第四部分:生產環境最佳實踐與全流程方案

4.1 權限管理與專用賬戶

永遠不要使用最高權限的 root 用戶進行備份。創建一個專用于備份的賬戶,遵循最小權限原則。

// 在 admin 數據庫中創建備份專用用戶
use admin
db.createUser({user: "mongoBackupAgent",pwd: "SuperSecurePassword123!", // 使用強密碼roles: [{ role: "backup", db: "admin" },     // 提供 mongodump 所需權限{ role: "restore", db: "admin" },   // 提供 mongorestore 所需權限{ role: "read", db: "admin" },      // 可能需要讀取 admin 庫的某些信息{ role: "readAnyDatabase", db: "admin" } // 允許讀取所有數據庫以進行全量備份// 注意:根據備份范圍,可能不需要 readAnyDatabase,只需對特定 DB 授予 read 角色。]
})
4.2 備份策略:全量、增量與 Oplog
  • 全量備份:定期執行(例如每周一次)完整的 mongodump --oplog --gzip。這是恢復的基礎。
  • Oplog 持續備份:對于復制集,oplog 本質上就是一個連續的操作日志。結合全量備份和 oplog,理論上可以恢復到任意時間點。一些高級工具(如 Percona Backup for MongoDB)基于此原理。
  • 邏輯備份的“增量”:mongodump 本身不直接支持增量備份。但可以通過 --query 參數基于時間戳定期備份新增數據,模擬增量行為。但這通常更復雜,不如依賴 oplog。
4.3 自動化與調度

使用 cron (Linux) 或 Task Scheduler (Windows) 自動化備份任務。
示例 Cron 作業 (每天凌晨 2 點執行全量備份):

# 編輯 crontab: crontab -e
0 2 * * * /usr/bin/mongodump --uri="mongodb://mongoBackupAgent:SuperSecurePassword123!@localhost:27017/?authSource=admin" --gzip --oplog --out=/opt/backups/mongo_dump_$(date +\%Y\%m\%d) >> /var/log/mongo_backup.log 2>&1
4.4 備份驗證與恢復演練

備份無效比沒有備份更可怕。必須定期驗證備份。

  1. 定期恢復測試:定期(如每季度)將備份文件恢復到一臺獨立的測試服務器上。
  2. 完整性檢查:驗證恢復的數據庫是否完整,是否可以正常啟動和查詢。
  3. 文檔化恢復流程:將恢復步驟寫成詳細的文檔或腳本,在緊急情況下可以快速執行。
4.5 監控與告警
  1. 監控備份任務:監控 cron 任務或腳本的執行結果(通過 $? 獲取退出代碼),失敗時發送告警(通過郵件、Slack、釘釘等)。
  2. 監控備份目錄:監控備份目錄的磁盤空間使用情況。
  3. 監控備份文件:檢查最新備份文件的時間戳和大小,確保其非空且最近更新。
4.6 加密與安全
  1. 傳輸加密:使用 SSH、SSL 等方式安全地傳輸備份文件到遠程存儲。
  2. 靜態加密:對存儲的備份文件進行加密(例如使用 gpg 加密備份目錄,或使用支持加密的文件系統/云存儲)。
  3. 訪問控制:嚴格控制備份目錄和腳本的訪問權限(如 chmod 600)。
4.7 完整的備份腳本示例

這是一個簡單的、更具魯棒性的備份腳本示例 (/usr/local/bin/mongo_backup.sh):

#!/bin/bash# MongoDB Backup Script
set -euo pipefail # 遇到錯誤退出# 變量配置
BACKUP_ROOT="/opt/backups/mongodb"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="$BACKUP_ROOT/full_$TIMESTAMP"
LOG_FILE="$BACKUP_ROOT/backup.log"
RETENTION_DAYS=30 # 保留 30 天備份# MongoDB 連接信息 (考慮從安全的外部配置文件中讀取)
URI="mongodb://mongoBackupAgent:SuperSecurePassword123!@localhost:27017/?authSource=admin&readPreference=secondary"# 創建備份目錄
mkdir -p "$BACKUP_DIR"# 執行備份
echo "$(date): Starting MongoDB backup to $BACKUP_DIR" >> "$LOG_FILE"
if /usr/bin/mongodump --uri="$URI" --gzip --oplog --out="$BACKUP_DIR" 2>> "$LOG_FILE"; thenecho "$(date): Backup completed successfully." >> "$LOG_FILE"# (可選)驗證備份完整性,例如檢查 oplog.bson 是否存在if [[ -f "$BACKUP_DIR/oplog.bson" ]]; thenecho "$(date): Oplog file found, backup appears valid." >> "$LOG_FILE"elseecho "$(date): WARNING: Oplog file not found. Point-in-time recovery unavailable." >> "$LOG_FILE"fi# 清理舊備份find "$BACKUP_ROOT" -name "full_*" -type d -mtime +$RETENTION_DAYS -exec rm -rf {} \; 2>/dev/null || trueecho "$(date): Old backups cleaned up." >> "$LOG_FILE"elseERROR_CODE=$?echo "$(date): ERROR: Backup failed with code $ERROR_CODE. Please check." >> "$LOG_FILE"# 這里可以添加告警發送邏輯,例如發送郵件exit $ERROR_CODE
fi

然后讓 cron 每天調用這個腳本。

第五部分:故障排除與常見問題

  1. 錯誤:Failed: error connecting to db server: no reachable servers
    • 原因:無法連接到 MongoDB 實例。
    • 解決:檢查 mongod 是否運行、網絡是否通暢、防火墻規則、主機名和端口是否正確。
  2. 錯誤:Authentication failed
    • 原因:用戶名、密碼或認證數據庫錯誤。
    • 解決:仔細檢查憑據。確保用戶存在于 --authenticationDatabase 指定的數據庫中,并且具有所需權限。
  3. 恢復時重復鍵錯誤 (E11000 duplicate key error)
    • 原因:目標集合中已存在具有相同 _id 的文檔。
    • 解決:使用 --drop 選項(如果確定要覆蓋),或者在恢復前手動清空目標集合。
  4. 備份或恢復過程非常緩慢
    • 原因:資源瓶頸(CPU、磁盤 I/O、網絡)、集合過大、索引重建。
    • 解決:
      • 在從節點上進行備份。
      • 使用 --gzip 減少磁盤 I/O。
      • 增加 --numParallelCollections 和 --numInsertionWorkersPerCollection。
      • 恢復時使用 --noIndexRestore,事后手動建索引。
  5. 錯誤:–oplog option is only supported for replica sets
    • 原因:在單機實例上使用了 --oplog 選項。
    • 解決:單機實例不支持 Oplog。此選項僅用于復制集。

結論

mongodump 和 mongorestore 是 MongoDB 生態中強大而靈活的工具。掌握它們的關鍵在于超越基礎命令,深入理解其原理、選項背后的含義以及如何在生產環境中安全、高效地使用它們。
一個成功的備份策略不僅僅是定期運行命令,它是一個完整的體系,包括:

  • 合適工具的選擇(邏輯 vs. 物理)。
  • 精細的權限控制和安全的憑證管理。
  • 自動化的、有監控和告警的調度任務。
  • 定期且嚴格的備份驗證和恢復演練。
  • 清晰的、文檔化的恢復流程。
  • 對備份數據生命周期的管理(保留策略、加密、安全存儲)。
    通過本指南提供的詳細知識和實踐示例,您應該能夠 confidently 設計、實施和維護一個基于 mongodump 和 mongorestore 的、堅固可靠的 MongoDB 數據保護方案。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/96327.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/96327.shtml
英文地址,請注明出處:http://en.pswp.cn/web/96327.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

鴻蒙的“分布式架構”理念:未來操作系統的關鍵突破

一、引言&#xff1a;為什么需要分布式架構&#xff1f; 隨著移動互聯網的發展&#xff0c;智能設備不斷普及。用戶身邊可能同時擁有 手機、平板、PC、電視、手表、耳機、智能音箱、車機 等多種終端設備。 但現實中&#xff0c;我們常遇到以下問題&#xff1a; 不同設備系統割…

MySQL 事務管理與鎖機制:解決并發場景下的數據一致性問題

前言在電商下單、金融轉賬、庫存扣減等并發業務場景中&#xff0c;若不控制數據操作的原子性與隔離性&#xff0c;極易出現 “超賣”“重復扣款”“臟讀數據” 等問題。MySQL 的事務管理與鎖機制是解決這些問題的核心技術&#xff0c;也是后端開發者必須掌握的生產環境能力。本…

MySQL集群高可用架構

一、MySQL高可用之組復制&#xff08;MGR&#xff09;1.1 組復制核心特性與優勢MySQL Group Replication&#xff08;MGR&#xff09;是基于分布式一致性協議&#xff08;Paxos&#xff09;實現的高可用集群方案&#xff0c;核心特性包括&#xff1a;自動故障檢測與恢復&#x…

判別模型 VS 生成模型

1. 判別模型&#xff08;Discriminative Models&#xff09;判別模型直接學習輸入特征&#xff08;X&#xff09;與輸出標簽&#xff08;Y&#xff09;之間的映射關系&#xff0c;即直接對條件概率P(Y|X)進行建模。判別模型關注于如何區分不同類別的數據。特點&#xff1a;直接…

代碼隨想錄算法訓練營第三十一天 | 合并區間、單調遞增的數字

合并區間&#xff1a; 這里還是先對左區間進行排序&#xff0c;判斷重疊區間&#xff0c;首先判斷是否存在元素&#xff0c;存在那么就將元素的第一個放到結果中&#xff0c;那么判斷重疊就是當前元素的左區間和結果集里的最后元素的右區間進行判斷&#xff0c;如果重疊&#x…

EXCEL VBA 清空Excel工作表(Sheet)的方法

1. 刪除所有內容&#xff0c;但保留格式和對象 這種方法只會清除單元格的內容&#xff0c;不會影響格式和嵌入的圖表或對象。 Sub ClearSheetContents()Worksheets("Sheet1").Cells.ClearContents End Sub2. 刪除所有內容和格式&#xff0c;但保留對象 這種方法會刪除…

智能客戶服務支持智能體

超越傳統客服機器人。智能體可以深度查詢知識庫、調用訂單系統API、甚至根據客戶情緒靈活處理退貨、退款、升級投訴等復雜流程。 案例&#xff1a; 客戶說&#xff1a;“我上周買的鞋子尺碼不對&#xff0c;想換貨但是找不到訂單頁面了。” 智能體行動&#xff1a; ① 通過用戶…

【MySQL|第四篇】DQL語句(二)——數據查詢語言

4、排序分頁&#xff1a;&#xff08;1&#xff09;排序&#xff1a;查詢數據的時候進行排序&#xff0c;就是根據某個字段的值&#xff0c;按照升序或者降序的情況將記錄顯示出來語法&#xff1a; select col_name,... from tb_name order by col_name [asc|desc]注意事項&…

百度文心X1.1發布!實測深度思考能力!

文章目錄背景模型實測效果事實性指令跟隨智能體模型技術解讀基準測試文心飛槳攜手共進總結背景 9月9日&#xff0c;WAVE SUMMIT深度學習開發者大會上&#xff0c;百度首席技術官、深度學習技術及應用國家工程研究中心主任王海峰正式發布了文心大模型X1.1深度思考模型&#xff…

基于Java+SpringBoot的B站評論系統架構設計與實踐深度解析

基于JavaSpringBoot的B站評論系統架構設計與實踐深度解析 前言 作為國內領先的視頻分享平臺&#xff0c;B站的評論系統承載著海量用戶的實時互動需求。本文將從架構師角度&#xff0c;基于JavaSpringBoot技術棧&#xff0c;深度解析評論系統的技術實現方案、核心難點及擴展性設…

賦能數字孿生:Paraverse平行云實時云渲染平臺LarkXR,提供強大的API與SDK用于二次開發和深度集成

在數字孿生滲透千行百業的今天&#xff0c;構建一個高保真、實時交互、可大規模訪問的虛擬孿生世界已成為核心需求。然而&#xff0c;對于開發者而言&#xff0c;從零開始構建實時云渲染、海量模型加載、數據雙向互通、多端適配、網頁嵌套&#xff0c;平臺定制化等底層技術難關…

基于Nginx實現反向代理、負載均衡與動靜分離完整部署指南

基于Nginx實現反向代理、負載均衡與動靜分離完整部署指南 文章目錄基于Nginx實現反向代理、負載均衡與動靜分離完整部署指南一、架構規劃與環境準備1.1 架構設計思路1.2 服務器規劃1.3 環境依賴二、部署Nginx負載均衡器2.1 安裝Nginx依賴包2.2 創建Nginx專用用戶2.3 編譯安裝Ng…

HTML5國慶網站源碼

一. 網站概述 本國慶主題網站以弘揚愛國主義精神為核心&#xff0c;通過豐富多元的交互功能與視覺設計&#xff0c;打造沉浸式國慶體驗空間。網站采用單頁面架構&#xff0c;通過平滑滾動實現各模塊的無縫銜接&#xff0c;涵蓋首頁、知識科普、互動體驗等十大功能板塊&#xf…

MySQL收集processlist記錄的shell工具mysql_collect_processlist

文章目錄安裝指南日志文件內容日志分析參考1.簡單檢索2.統計不同狀態的語句的數量3.按照時間統計注意事項倉庫這是一個純腳本工具&#xff0c;用于從MySQL的information_schema.processlist視圖中定期收集數據并保存到本地日志文件。支持MYSQL5.7-9.4版本。 template copy fro…

工業RFID現場網關模塊:實現多協議互通,128臺讀寫設備互連!

隨著工業4.0進程加速&#xff0c;企業對生產系統集成度的需求不斷增長。在工廠中常需整合不同品牌PLC、驅動器、機械臂、讀寫器等設備系統&#xff0c;這其中就會涉及到如Profinet、EtherNet/IP、EtherCAT、Modbus TCP、CC-LINK IE等不同通訊協議連接。雖可將部分設備直接與PLC…

黑馬點評高級篇第7節課 輸入INFO replication 顯示0個從節點,但是在7002節點又顯示它已經是7001節點的從節點了

問題描述在黑馬點評高級篇第七節課的這個位置??????&#xff0c;當我輸入INFO replication 的時候下面本應該顯示為connected_slaves: 2&#xff0c;但是我的顯示的是0。然后當我切換到7002端口的節點時&#xff0c;又顯示7002就是7001的從節點解決我看彈幕上說在7002和7…

pcb線路板打樣廠家有哪些?

在電子制造產業升級浪潮中&#xff0c;PCB打樣環節的效率與品質直接影響產品迭代速度。本文聚焦國內五家具備核心技術競爭力的PCB打樣廠商&#xff0c;深度解析其差異化優勢&#xff0c;為硬件開發者提供精準選型參考。獵板PCB作為國家高新技術企業&#xff0c;獵板PCB在高頻高…

【python實用小腳本-211】[硬件互聯] 桌面壁紙×Python夢幻聯動|用10行代碼實現“開機盲盒”自動化改造實錄(建議收藏)

1. 場景故事 “作為HR&#xff0c;我曾每天手動換壁紙提神&#xff0c;直到某天忙到忘記&#xff0c;結果被同事截圖當‘黑歷史’…” → 轉折點&#xff1a;用Python調用Windows API寫了個“隨機壁紙機”&#xff0c;開機自啟&#xff0c;每次登錄都是新風景&#xff0c;現在截…

集成學習 —— 梯度提升樹GBDT、XGBoost

目錄 一、梯度提升樹 1、殘差提升樹 Boosting Decision Tree 2、梯度提升樹 Gradient Boosting Decision Tree 二、構建案例 1、 初始化弱學習器(CART樹)&#xff1a; 2、 構建第1個弱學習器 3、 構建第2個弱學習器 4、 構建第3個弱學習器 5、 構建最終弱學習器 6、 構…

【船類】監控錄像下船舶類別檢測識別數據集:近7k圖像,6類,yolo標注

監控錄像下船舶類別檢測識別數據集概述 數據集包含 6900監控錄像下船舶類別圖像&#xff0c;6個標注類別&#xff1a; 散貨船、集裝箱船、漁船、雜貨船、礦砂船、客船 標注格式&#xff1a;yolo txt&#xff08;格式可轉&#xff0c;可直接訓練&#xff09; 標注工具&#…