亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MongoDB > 正文

mongodb增量/全量備份腳本的實現詳解

2020-03-14 12:49:19
字體:
來源:轉載
供稿:網友

前言

mongodb備份腳本,可以全量或增量進行備份,兩年前所寫,目前網上mongodb備份相關的腳本也還是很少。下面話不多說了,來一起看看詳細的介紹吧

功能

定期對mongodb數據庫數據進行全量備份或增量備份(副本集架構),并可以壓縮上傳到阿里云oss(本地會先生成壓縮包,可以設置不上傳oss)。

腳本運行環境

使用python語言編寫,需安裝python,pymongo和mongodb shell客戶端(測試時使用python 2.7.6,pymongo 3.0.3和mongodb shell 2.0.4)。

腳本部署步驟

1. 將腳本放到一臺linux主機

2. 如果是增量備份,創建mongodb 備份角色用戶或更高權限的admin庫用戶。(導出時會先切換到admin庫來驗證權限,需有查詢local庫,mongodump local庫和mongodump目標庫的權限)

use admin db.addUser( { user: "xxxxx",  pwd: "xxxxx",  roles: [ "backup" ] } )

3. 編輯config.properties,修改oss、mongodb連接等配置信息

## 阿里云oss 連接配置 endpoint= oss.aliyuncs.com accessKeyId = xxxxxxx accessKeySecret = xxxxxxx bucket = db-backup ## mongodb 連接配置 # 建議用從庫的地址,減少對主庫壓力 db_host= localhost db_port= 27017 # 如果是增量備份方案,為步驟2中的創建的用戶,或更高權限的admin用戶;如果是全量備份方案,則只需有目標庫的操作權限 db_user= testb db_passwd= testb # 目標庫 db_name= che # 備份到本地的臨時目錄  db_backup_root_path= /temp/backup/ # 如果使用mongo客戶端綠色版的,寫上mongo客戶端的絕對路徑 mongo_shell_path= /dev/hanxuetong/mongodb/mongodb-linux-x86_64-3.0.6/bin/ # 增量備份還是全量備份 1: 增量備份 0:全量備份 is_inc_backup=1 # 每多少天進行一次全量備份 full_backup_period=7 # 是否上傳到oss,如果 1 ,上傳成功后會刪除本地備份文件;0:不上傳到oss is_upload_to_oss= 0

4. 將start.py加入linux定時任務。crontab任務配置如 0 4 * * * python /xxx/start.py >> /xxx/xxx.log 2>&1

增量時恢復步驟:

1. 創建mongodb 具有applyOps權限的角色 以及用此角色的用戶。(需有執行 mongorestore --oplogReplay的用戶權限)

use admin db.createRole( { role: "applyOpsRole", privileges: [ { resource: { anyResource: true }, actions: [ "anyAction"] } ], roles: [] } ) db.addUser( { user: "xxxx", pwd: "xxxx", roles: [ "applyOpsRole" ] } )

2. 修改 restore_inc.py里的配置

## 阿里云oss 配置 endpoint="oss.aliyuncs.com" accessKeyId="xxxxxxx" accessKeySecret="xxxxxxx" bucket="db-backup" ## mongodb導入的配置 db_host="localhost" db_port=27017 # 步驟1創建的用戶 db_user="testr" db_passwd="testr"  db_name="che" # recent circle backup direactory on oss 最新備份文件的周期名,即備份臨時目錄中mongodb_inc_backup_info.json的last_circle_backup_dir_name 或 oss中文件夾名 last_circle_backup_dir_name="mongodb_cycle_backup_20151124141133" # 從oss上下載到本地的臨時目錄 restore_local_temp_path="H://pythoncode//temp//restore//" # 如果使用mongo客戶端綠色版的,寫上mongo客戶端的絕對路徑 mongo_shell_path= "/alidata1/dev/hanxuetong/mongodb/mongodb-linux-x86_64-3.0.6/bin/" # backup file has download to local ? if True,will not download backup files from oss # 是否備份文件已經下載到本地,如果true,則不會從oss下載和解壓,本地已有 has_download_to_local=False # 恢復時是否先刪除舊的數據庫 is_drop_old_restore=True

3. 導入期間停止mongodb寫入

4. 執行 restore_inc.py

全量時恢復步驟:

1. 修改 restore_full.py里的配置

## 阿里云oss 配置 endpoint="oss.aliyuncs.com" accessKeyId="xxxxxxx" accessKeySecret="xxxxxxx" bucket="db-backup" ## mongodb導入的配置 db_host="localhost" db_port=27017 # 數據庫對應的用戶 db_user="test" db_passwd="test"  db_name="che" # recent circle backup direactory on oss 最新備份文件的周期名, oss 上存儲的文件名稱是 last_circle_backup_dir_name+last_full_backup_file_suffix last_circle_backup_dir_name="mongodb_cycle_backup_20151124141133" last_full_backup_file_suffix=".tar.gz" # 備份的目錄,實際全量備份的路徑為 restore_local_temp_path+last_circle_backup_dir_name+db_name restore_local_temp_path="H://pythoncode//temp//restore//" # 如果使用mongo客戶端綠色版的,寫上mongo客戶端的絕對路徑 mongo_shell_path="/alidata1/dev/hanxuetong/mongodb/mongodb-linux-x86_64-3.0.6/bin/" # backup file has download to local ? if True,will not download backup files from oss # 是否備份文件已經下載到本地,如果true,則不會從oss下載和解壓,本地已有 has_download_to_local=False # 恢復時是否先刪除舊的數據庫 is_drop_old_restore=True

2. 執行 restore_full.py

一個周期內(如一星期)先備份一次全量數據庫,然后后面每次備份 上次記錄點到最新時間內的oplog文件。 Oplog 記錄了MongoDB數據庫的更改操作信息,其保存在local庫的oplog.rs表,在集群架構才存在,單機不會有,故增量備份不能在單機下使用。從庫是通過異步復制主庫的Oplog文件,從而達到與主庫的同步。 oplog有大小限制,超過指定大小,新的記錄會覆蓋舊的操作記錄。

全量腳本執行時的流程

備份mongodb數據庫到本地

進行壓縮

上傳到oss

檢驗oss與本地文件的大小是否相同

刪除本地備份文件

增量腳本執行時的流程

  1. 讀取上一個周期執行信息判斷是否需要創建新的周期
  2. 獲得mongodb上oplog最近記錄的時間點current timestamp position
  3. 從本地讀取上一次執行時mongodb的oplog時間點
  4. dump導出全量數據或增量oplog文件到本地,增量oplog文件的導出范圍是 上次oplog記錄點到最新時間內的oplog文件
  5. 保存步驟2獲取的current timestamp position到本地,作為下一次執行步驟3中的時間點
  6. 進行壓縮
  7. 上傳到oss
  8. 刪除本地備份文件

恢復時腳本執行的流程

  1. 從oss上下載指定周期的備份文件到本地
  2. 對全量文件和增量oplog的zip文件進行解壓
  3. 用 mongorestore對全量文件進行導入
  4. 用 mongorestore --oplogReplay 分別對各時間段的oplog文件進行導入

mongodb增量備份 腳本源碼地址:

https://gitee.com/passer/mongodb_backup_script

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到MongoDB頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品自拍网| 亚州成人av在线| 亚洲自拍av在线| 在线视频免费一区二区| 国产精品久久久久久久久久久久| 国产欧美日韩丝袜精品一区| 日韩电影免费观看在线观看| 91色视频在线观看| 日韩激情片免费| 久久精品国产一区| 欧美激情综合亚洲一二区| 国产男人精品视频| 欧洲s码亚洲m码精品一区| 国产精品久久久久av| 亚洲免费视频网站| 国产精品看片资源| 久久艳片www.17c.com| 欧美野外wwwxxx| 高清日韩电视剧大全免费播放在线观看| 黄色成人av在线| 国产精品美女久久| 欧美成人手机在线| 欧美性20hd另类| 欧美性受xxxx白人性爽| 成人黄色短视频在线观看| 国产欧美一区二区三区久久人妖| 国外视频精品毛片| 国产一区二区三区18| 欧美精品videos另类日本| 久久久精品中文字幕| 在线观看国产精品91| 日韩欧美国产中文字幕| 国产精品一区二区久久久| 欧美夫妻性生活视频| 色婷婷av一区二区三区在线观看| 欧美午夜片在线免费观看| 久久久精品国产一区二区| 国产精品日韩欧美综合| 精品国产一区二区三区四区在线观看| 色噜噜国产精品视频一区二区| 92福利视频午夜1000合集在线观看| 久久中文字幕在线视频| 国产精品极品尤物在线观看| 久久不射电影网| 亚洲已满18点击进入在线看片| 亚洲福利视频网| 91久久久亚洲精品| 日本高清不卡的在线| 日韩精品免费在线观看| 亚洲午夜未满十八勿入免费观看全集| 国产视频精品一区二区三区| 亚洲国产欧美一区二区三区久久| 亚洲自拍欧美色图| 91久久精品久久国产性色也91| 亚洲国产另类久久精品| 91中文精品字幕在线视频| 欧美电影免费观看高清| 精品久久久久久久中文字幕| 中文字幕无线精品亚洲乱码一区| 欧美精品久久一区二区| 亚洲一区精品电影| 成人观看高清在线观看免费| 久久国产精品亚洲| 国产精品美女久久久久久免费| 久久久久久久国产精品视频| 国产精品久久久久久久9999| 国产精品久久二区| 国产91在线高潮白浆在线观看| 亚洲人成在线一二| 久久久999精品视频| 日韩精品黄色网| 亚洲欧美一区二区精品久久久| 国产精品第一区| 亚洲一区二区三区xxx视频| 日韩av电影国产| 日韩亚洲国产中文字幕| 性欧美亚洲xxxx乳在线观看| 国产日本欧美视频| 欧美在线一区二区视频| 九九久久综合网站| 国产91精品网站| 97国产在线观看| 欧美成人精品一区二区三区| 精品爽片免费看久久| 日韩欧美在线观看| 久久免费精品日本久久中文字幕| 亚洲一区中文字幕在线观看| 久色乳综合思思在线视频| 国产在线观看精品一区二区三区| 日韩暖暖在线视频| 久久免费少妇高潮久久精品99| 中文字幕日韩精品在线| 欧美一区二粉嫩精品国产一线天| 精品久久久精品| 亚洲丁香久久久| 欧美日本精品在线| 日韩在线观看视频免费| 韩国精品美女www爽爽爽视频| 萌白酱国产一区二区| 51色欧美片视频在线观看| 欧美中文字幕在线| 国产精品久久久久av免费| 欧美天堂在线观看| 欧美成人免费va影院高清| 日本欧美国产在线| 国产亚洲精品成人av久久ww| 成人精品久久久| 国产精品a久久久久久| 91日本在线观看| 伦伦影院午夜日韩欧美限制| 亚洲日本成人女熟在线观看| 中文字幕视频在线免费欧美日韩综合在线看| 欧美专区福利在线| 2019国产精品自在线拍国产不卡| 亚洲自拍av在线| 精品国产成人在线| 欧美精品在线极品| 国产精品久久二区| 国产成人涩涩涩视频在线观看| www.国产一区| 在线免费观看羞羞视频一区二区| 欧美激情国产高清| 日韩av免费观影| 欧美激情亚洲精品| 国产精品成人一区二区三区吃奶| 亚洲成人精品视频在线观看| 日韩中文字幕免费看| 国产91在线播放| 亚洲人成免费电影| 欧美一区在线直播| 亚洲国产天堂网精品网站| 亚洲精品一区二区网址| 久久久久久久一区二区| 成人国内精品久久久久一区| 俺去啦;欧美日韩| 成人国产精品一区二区| 57pao成人国产永久免费| 欧美激情视频三区| 亚洲自拍另类欧美丝袜| 国产欧亚日韩视频| 日韩免费观看在线观看| 亚洲电影免费观看高清完整版在线| 国产91精品黑色丝袜高跟鞋| 成人h猎奇视频网站| 国产一区二区免费| 国内揄拍国内精品| 亚洲精品一区二区久| 色综合亚洲精品激情狠狠| 中文字幕亚洲综合久久| 国产国产精品人在线视| 96pao国产成视频永久免费| 欧美性猛交xxxx| 亚洲综合成人婷婷小说| 国产精品 欧美在线| 亚洲一区二区三区四区视频| 亚洲激情久久久| 成人免费淫片aa视频免费| 国产午夜精品全部视频在线播放| 国产精品久久久久7777婷婷| 国产视频久久久久久久| 日韩精品视频在线观看免费| 亚洲一级片在线看| 日本精品视频网站| 国产一区二区三区直播精品电影|