mongodb-consistent-backup 一致性備份工具的使用

  • 2019 年 10 月 4 日
  • 筆記

官方地址: https://github.com/Percona-Lab/mongodb_consistent_backup

wget https://github.com/Percona-Lab/mongodb_consistent_backup/releases/download/1.4.1/mongodb_consistent_backup-1.4.1-1.el7.x86_64.rpm  yum install mongodb_consistent_backup-1.4.1-1.el7.x86_64.rpm

我的mongodb使用的是3.2.16版本,使用binary方式安裝的。

需要確保mongodump能被發現,因此我這裡做了個軟鏈接

ln -s /usr/local/mongodb_3.2.16/mongodump  /usr/bin/mongodump

我這裡沒有設置帳號和密碼,因此備份命令很簡單,如下:

mongodb-consistent-backup -H 127.0.0.1 -P 27017 -n production_baks  -l  /root/mongodb_backups/

## mongodb-consistent-backup -h 可以列出全部支援的參數,常用幾個參數如下:

-H

連接的IP,如果啟用了多個mongos,可將多個mongos寫入配置,備份進程會自動找到可用的mongos,避免單個mongos進程異常導致的備份失敗。如配置兩個:127.0.0.1:27011, 127.0.0.1:27012

-P

埠,如果在-H指定了埠,此參數可以省略

-u

開啟了認證的用戶名

-p

開啟了認證的密碼

-l

備份的保存路徑

-n

備份的目錄,如果不指定,將創建default作為目錄

--rotate.max_backups

保存的備份數量,默認無限制

--rotate.max_days

備份保留的最大天數,默認無限制

--archive.method

備份保存方式,默認為tar,將備份保存為tar包

--backup.mongodump.compression

備份的壓縮方式,是指每個集合是否壓縮,gzip

備份文件的恢復步驟:

cd /root/mongodb_backups/  cd production_baks/  cd latest/   這是一個軟鏈接,始終指向最新的備份文件  tar xf production.tar  cd production/dump/  find ./ -type f -name "*.gz" -exec gunzip  {} ;   解壓出各個備份文件    最後的恢復命令:  /usr/local/mongodb_3.2.16/mongorestore --host 127.0.0.1 --port 27017 --oplogReplay --dir /root/mongodb_backups/production_baks/latest/production/dump/  備份與mongorestore兼容,並存儲在每個備份的目錄中。必須存在--oplogReplay標誌才能重放oplog以確保一致性。

另外,樂得DBA的公眾號有詳細介紹,文章名稱: MongoDB Sharding Cluster的一致性備份 ,講的非常好,推薦閱讀下

Tags: