婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > mongodb增量/全量備份腳本的實現詳解

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

熱門標簽:云南外呼系統 杭州人工電銷機器人價格 電銷機器人是什么軟件 怎么投訴地圖標注 濟南電銷機器人加盟公司 廣州長安公司怎樣申請400電話 蘋果汽車租賃店地圖標注 老虎洗衣店地圖標注 呼和浩特電銷外呼系統加盟

前言

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

總結

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

您可能感興趣的文章:
  • mongodb 數據庫操作--備份 還原 導出 導入
  • MongoDB整庫備份與還原以及單個collection備份、恢復方法
  • MongoDB備份、還原、導出、導入、克隆操作示例
  • Windows下自動備份MongoDB的批處理腳本
  • Mongodb實現定時備份與恢復的方法教程
  • Windows或Linux系統中備份和恢復MongoDB數據的教程
  • Linux下MongoDB數據庫實現自動備份詳解
  • 淺談MongoDB的備份方式
  • MongoDB使用自帶的命令行工具進行備份和恢復的教程
  • mongodb增量備份腳本的實現和原理詳解

標簽:遼陽 自貢 興安盟 玉林 雞西 無錫 廈門 泰安

巨人網絡通訊聲明:本文標題《mongodb增量/全量備份腳本的實現詳解》,本文關鍵詞  mongodb,增量,全量,備份,腳本,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《mongodb增量/全量備份腳本的實現詳解》相關的同類信息!
  • 本頁收集關于mongodb增量/全量備份腳本的實現詳解的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美伦理影视网| 一区二区三区久久| 欧美国产一区视频在线观看| 国产精品你懂的在线| 性做久久久久久免费观看欧美| 欧美在线综合视频| 不卡视频一二三| 国产欧美日韩精品在线| 国产一区欧美一区| 久久亚洲综合av| 国产在线乱码一区二区三区| 精品制服美女丁香| 国产视频视频一区| 高清不卡一二三区| 亚洲桃色在线一区| 欧美性生活一区| 亚洲与欧洲av电影| 日韩一级片在线播放| 久久精品国产秦先生| 日本成人超碰在线观看| 91精品国产一区二区三区| 亚洲免费观看视频| 亚洲国产日韩一级| 欧美日本韩国一区二区三区视频 | 成人免费视频视频在线观看免费 | 欧美精三区欧美精三区| 蜜桃av噜噜一区| 国产婷婷一区二区| 欧美三级视频在线| 国产福利不卡视频| 亚洲一区二区四区蜜桃| 91麻豆国产在线观看| 亚洲黄色片在线观看| 激情综合色综合久久| 国产精品国产精品国产专区不片| 在线亚洲高清视频| 精品一区精品二区高清| 亚洲欧美日本在线| 日韩美女天天操| 在线欧美日韩精品| 成人黄色免费短视频| 婷婷久久综合九色综合伊人色| 欧美videofree性高清杂交| 成人黄页在线观看| 精品一区二区三区在线视频| 亚洲色图丝袜美腿| 久久久不卡网国产精品二区| 欧美亚洲综合久久| kk眼镜猥琐国模调教系列一区二区| 亚洲成av人在线观看| 久久精品日产第一区二区三区高清版| 欧美日本一区二区| 色狠狠综合天天综合综合| 亚洲国产欧美日韩另类综合| 狠狠网亚洲精品| 91久久奴性调教| 国产美女在线观看一区| 亚洲午夜在线视频| 国产精品高潮久久久久无| 精品久久久久香蕉网| 欧美日韩一区高清| 91久久人澡人人添人人爽欧美 | 日韩毛片一二三区| 亚洲国产激情av| 久久久青草青青国产亚洲免观| 欧美一级一区二区| 欧美精品777| 欧美高清性hdvideosex| 欧美日韩在线免费视频| 在线观看一区二区视频| 欧美在线播放高清精品| www.日韩大片| 国产乱一区二区| 午夜久久久久久电影| 亚洲精品视频在线| 亚洲欧洲中文日韩久久av乱码| 国产精品素人一区二区| 国产精品网站在线观看| 亚洲四区在线观看| 亚洲精品高清在线观看| 伊人婷婷欧美激情| 亚洲自拍偷拍图区| 午夜视频在线观看一区| 日韩综合在线视频| 激情文学综合插| 国产一区二区调教| 成人app软件下载大全免费| 99精品久久久久久| 欧美日韩在线免费视频| 91麻豆精品国产91久久久更新时间| 精品视频在线免费| 日韩欧美视频一区| 亚洲国产精品二十页| 中文字幕一区二区三区四区| 一区二区三区日韩欧美| 蜜臀精品久久久久久蜜臀| 国产乱人伦偷精品视频免下载| 懂色av一区二区三区蜜臀| 91亚洲国产成人精品一区二三 | 国产精品伦理在线| 樱花影视一区二区| 精品一区二区三区蜜桃| 亚洲精品国产一区二区精华液| 亚洲国产综合视频在线观看| 男女激情视频一区| 成人午夜伦理影院| 4438x亚洲最大成人网| 久久久久国色av免费看影院| 一区二区三区小说| 精品在线一区二区三区| 91美女在线看| 久久久亚洲综合| 亚洲国产成人va在线观看天堂| 国产综合久久久久影院| 在线影院国内精品| 国产欧美一区二区在线| 亚洲一区二区三区四区中文字幕| 久久国内精品自在自线400部| 91丝袜美腿高跟国产极品老师 | 亚洲女同女同女同女同女同69| 日韩黄色片在线观看| 99久久777色| 精品国产百合女同互慰| 亚洲aⅴ怡春院| 99精品视频免费在线观看| 精品国产91久久久久久久妲己 | 日韩欧美一区电影| 精品国产成人在线影院| 精品视频色一区| 亚洲国产精品国自产拍av| 日产国产高清一区二区三区| 色综合久久久久久久| 国产三级精品视频| 精品一区二区三区免费播放| 91麻豆精品国产91久久久久久| 亚洲另类色综合网站| 国产精品一区专区| 欧美精品一区二区蜜臀亚洲| 日本伊人午夜精品| 欧美午夜精品理论片a级按摩| 中文字幕av资源一区| 国产馆精品极品| 国产亚洲精品免费| 经典三级一区二区| 日韩久久久精品| 国产自产2019最新不卡| 激情六月婷婷久久| 日韩一区二区电影网| 青青青伊人色综合久久| 日韩一级片网址| 精品在线观看免费| 久久亚洲精品小早川怜子| 国产一区二区三区av电影| 精品国产乱码久久久久久1区2区| 久久精品99国产精品| 精品精品国产高清a毛片牛牛| 久久99精品视频| 国产亚洲成aⅴ人片在线观看 | 欧美视频在线观看一区二区| 亚洲在线观看免费| 3d成人h动漫网站入口| 久久精品国产精品亚洲综合| 亚洲精品一区二区三区蜜桃下载| 极品少妇xxxx精品少妇偷拍| 国产午夜一区二区三区| 91在线porny国产在线看| 亚洲高清免费在线| 欧美tickling网站挠脚心| 国产精品一区在线观看你懂的| 国产精品国产a级| 欧美性大战久久久久久久蜜臀 | 午夜视频在线观看一区| 日韩一区二区三区免费看| 国产精品影视网| 亚洲成av人片在线观看无码| 久久一留热品黄| 91在线观看地址| 久久www免费人成看片高清| 中文字幕中文乱码欧美一区二区 | 欧美日韩一级二级| 国产一区不卡精品| 亚洲国产日韩综合久久精品| 2021中文字幕一区亚洲| 色www精品视频在线观看| 久久99久久精品欧美| 国产精品久久久久久久久久久免费看| 欧美日韩国产美女| caoporen国产精品视频| 久久机这里只有精品| 亚洲成人av福利| 专区另类欧美日韩| 国产午夜精品一区二区| 日韩小视频在线观看专区| 色婷婷综合久久久| 国产成人av一区二区三区在线| 亚洲高清免费在线| 一区二区三区中文在线| 国产精品伦一区| 国产欧美一区二区三区沐欲| 欧美一区二区在线视频|