婷婷综合国产,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
    亚洲人成精品久久久久| 亚洲精品一区二区三区香蕉| 国产成人精品影视| 国产一区二区在线免费观看| 麻豆免费看一区二区三区| 青青草国产精品亚洲专区无| 日本大胆欧美人术艺术动态| 美国欧美日韩国产在线播放| 久久66热re国产| 国产中文字幕精品| 成人av在线播放网站| 99re热视频精品| 在线亚洲一区观看| 欧美人妇做爰xxxⅹ性高电影| 欧美三级电影在线看| 91精品国产综合久久蜜臀| 91.xcao| 精品日韩成人av| 国产精品久久久久四虎| 亚洲黄色在线视频| 日韩av一区二区三区| 国产精品一区二区在线播放| 成人深夜在线观看| 欧美三级视频在线观看 | 欧美激情在线看| 亚洲色图另类专区| 性感美女久久精品| 国产99久久久国产精品潘金网站| 一本色道久久综合亚洲aⅴ蜜桃| 欧美午夜宅男影院| 中文字幕精品综合| 五月天网站亚洲| 国产成人精品网址| 欧美色中文字幕| 国产喷白浆一区二区三区| 亚洲综合成人在线| 狠狠色综合播放一区二区| 91丝袜美女网| 久久女同性恋中文字幕| 日本成人在线视频网站| 国产精品自拍毛片| 欧美日韩国产一级二级| 国产精品美女久久久久久| 一区二区久久久| 成人va在线观看| 日韩精品一区二区三区蜜臀 | 欧美性猛交xxxxxxxx| 久久免费视频色| 日韩国产欧美视频| 欧美亚洲国产一区二区三区| 国产亚洲一区二区三区四区 | 91一区二区三区在线观看| 日韩精品一区二区三区中文不卡| 亚洲欧洲综合另类| 国产精品99久久久久久久vr| 欧美一区二区视频在线观看2020| 国产精品大尺度| 成人在线综合网站| 久久伊人中文字幕| 极品尤物av久久免费看| 91精品国产综合久久国产大片| 亚洲精品v日韩精品| 99re视频精品| 国产精品盗摄一区二区三区| 成人免费视频网站在线观看| 国产亚洲综合av| 国产超碰在线一区| 久久久久97国产精华液好用吗| 久久精品免费观看| 日韩一区二区高清| 免费观看日韩av| 精品欧美一区二区三区精品久久| 毛片av中文字幕一区二区| 日韩免费性生活视频播放| 免费观看在线综合| 日韩欧美一区在线| 国精产品一区一区三区mba视频| 欧美成人艳星乳罩| 狠狠色丁香九九婷婷综合五月| 精品国内二区三区| 国产精品99久久久| 亚洲人成网站影音先锋播放| 99久久国产综合精品女不卡| 亚洲男同1069视频| 欧美午夜影院一区| 久久福利资源站| 日本一区二区三区dvd视频在线| 成人污污视频在线观看| 日韩理论片中文av| 欧美片网站yy| 国产精品一区免费视频| 中文字幕视频一区二区三区久| 91久久精品午夜一区二区| 日本午夜精品视频在线观看| 欧美mv和日韩mv的网站| 成人福利视频网站| 亚洲午夜羞羞片| 久久嫩草精品久久久精品| 99re热这里只有精品免费视频| 亚洲已满18点击进入久久| 欧美成人bangbros| 91丨九色丨尤物| 久久草av在线| 亚洲日本免费电影| 日韩欧美不卡在线观看视频| 成人av中文字幕| 天堂va蜜桃一区二区三区漫画版| 久久天堂av综合合色蜜桃网| 一本一本大道香蕉久在线精品| 免费观看在线色综合| 最好看的中文字幕久久| 欧美一区二区视频在线观看2022| 99精品国产91久久久久久| 美女视频一区二区三区| 亚洲色图一区二区| 久久久亚洲综合| 7777精品伊人久久久大香线蕉完整版| 国产成人精品免费视频网站| 日韩激情av在线| 亚洲免费在线视频一区 二区| 久久久久久一级片| 69堂国产成人免费视频| 欧美在线视频不卡| 99国产一区二区三精品乱码| 久久成人18免费观看| 亚洲不卡在线观看| 亚洲人成伊人成综合网小说| 亚洲精品一区二区三区精华液| 91精品欧美久久久久久动漫| 一本久久a久久精品亚洲| 国产成人精品一区二| 精品亚洲国产成人av制服丝袜| 日韩综合一区二区| 婷婷综合另类小说色区| 亚洲激情综合网| 亚洲人成伊人成综合网小说| 国产日韩欧美精品电影三级在线| 欧美不卡一区二区三区四区| 欧美高清www午色夜在线视频| 一本久久a久久精品亚洲| 色综合天天视频在线观看| 99久久99久久精品国产片果冻| 国产高清一区日本| 国产成人午夜视频| 国产福利一区二区三区视频| 国产精一品亚洲二区在线视频| 经典三级在线一区| 国产一区二区福利| 国产69精品久久99不卡| 国产一区91精品张津瑜| 国产91丝袜在线观看| 成人午夜私人影院| 成人精品视频网站| 99久久久久久99| 在线精品视频一区二区三四| 欧美丝袜自拍制服另类| 69精品人人人人| 日韩精品资源二区在线| www日韩大片| 国产精品美女www爽爽爽| 亚洲免费观看高清完整版在线观看熊| 自拍偷拍亚洲综合| 亚洲图片欧美视频| 日韩av午夜在线观看| 国产一本一道久久香蕉| 成人av动漫在线| 欧美中文字幕一区| 日韩午夜av一区| 国产精品天干天干在线综合| 一区二区三区视频在线观看| 三级一区在线视频先锋| 国产精品一区二区三区99| 成人精品在线视频观看| 在线这里只有精品| 久久伊人中文字幕| 樱花影视一区二区| 久久国产日韩欧美精品| 99在线热播精品免费| 欧美精品在线一区二区三区| 精品国产露脸精彩对白| 亚洲视频香蕉人妖| 经典三级视频一区| 色婷婷综合久久久中文一区二区| 欧美一区二区三区视频免费| 国产精品麻豆视频| 青青青爽久久午夜综合久久午夜| 国产成人8x视频一区二区| 欧美调教femdomvk| 久久精品免费在线观看| 日韩专区欧美专区| 一本久道久久综合中文字幕| 亚洲精品一区二区精华| 偷拍一区二区三区| 91在线精品一区二区| 久久日一线二线三线suv| 亚洲伊人伊色伊影伊综合网| 成人一区二区三区视频在线观看| 日韩一区二区免费在线观看| 亚洲最新视频在线观看| 成人精品小蝌蚪|