摘要:一背景由于越來(lái)越多的客戶對(duì)應(yīng)數(shù)據(jù)安全的重視,目前阿里云提供了備份策略但是備份策略周期為每天的某一個(gè)時(shí)間,在日常云運(yùn)維工作中,有客戶提出需要每天在不同的時(shí)間節(jié)點(diǎn)多備份幾次,此時(shí)界面就不能滿足此類在一天內(nèi)多次備份的需求,但是想到了在阿里云控制臺(tái)
一、背景
由于越來(lái)越多的客戶對(duì)應(yīng)數(shù)據(jù)安全的重視,目前阿里云RDS提供了備份策略,但是備份策略周期為每天的某一個(gè)時(shí)間,在日常云運(yùn)維工作中,有客戶提出需要每天在不同的時(shí)間節(jié)點(diǎn)多備份幾次,此時(shí)web界面就不能滿足此類在一天內(nèi)多次備份的需求,但是想到了在阿里云web控制臺(tái)通過(guò)手動(dòng)點(diǎn)擊創(chuàng)建備份,是可以在點(diǎn)擊后觸發(fā)創(chuàng)建備份的任務(wù),想到可以利用api來(lái)實(shí)現(xiàn),同時(shí)提交工單咨詢了下,果然此類需求是需要api來(lái)做,故寫了個(gè)調(diào)用python實(shí)例配合linux系統(tǒng)的crond服務(wù)來(lái)完成。
github地址
#!/bin/env python # -*- coding:utf-8 -*- # _author:kaliarch from aliyunsdkcore import client from aliyunsdkrds.request.v20140815 import CreateBackupRequest import time import os import logging class rdsOper(): def __init__(self,logger): self.clentoper = client.AcsClient("LTAIhfXlcjyln****","Gwf****4K2ELmt76184o****gRfAso","cn-shanghai") self.logger = logger self.logger.info("------------------------start exec rds backup API log-------------") def backup_instance(self): # 設(shè)置參數(shù) request = CreateBackupRequest.CreateBackupRequest() request.set_accept_format("json") request.add_query_param("DBInstanceId", "rm-uf6xv3**1x842y61y") #如果為單庫(kù)備份,可以添加DBName # request.add_query_param("DBName", "mydb") #BackupMethod為備份方式:Logical:邏輯備份,Physical:物理備份 request.add_query_param("BackupMethod", "Physical") #BackupType為備份類型: Auto:自動(dòng)計(jì)算是全量備份還是增量備份;FullBackup:全量備份。默認(rèn)值為Auto。 request.add_query_param("BackupType", "Auto") response = self.clentoper.do_action_with_exception(request) self.logger.info("rdsbackup mission submission successful!") self.logger.info(response) print(response) class Rds_Log: def __init__(self,filename): self.filename = filename def createDir(self): _LOGDIR = os.path.join(os.path.dirname(__file__), "rdsbackuplog") print(_LOGDIR) _TIME = time.strftime("%Y-%m-%d", time.gmtime()) + "-" _LOGNAME = _TIME + self.filename print(_LOGNAME) LOGFILENAME = os.path.join(_LOGDIR, _LOGNAME) print(LOGFILENAME) if not os.path.exists(_LOGDIR): os.mkdir(_LOGDIR) return LOGFILENAME def createlogger(self,logfilename): logger= logging.getLogger() logger.setLevel(logging.INFO) handler = logging.FileHandler(logfilename) handler.setLevel(logging.INFO) formater = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") handler.setFormatter(formater) logger.addHandler(handler) return logger if __name__ == "__main__": glploger = Rds_Log("rdsbackup.log") logfilename = glploger.createDir() logger = glploger.createlogger(logfilename) app = rdsOper(logger) app.backup_instance()三、配合定時(shí)任務(wù)
在隨便服務(wù)器上傳代碼安裝好相關(guān)python的sdk后
制作定時(shí)任務(wù)
查看日志
查看后天有備份任務(wù)已經(jīng)提交完成
舉一反三,類似的可以參考阿里云rds的API完成其他需求,如何客戶對(duì)應(yīng)rds的備份頻率很高的話,可以開(kāi)通災(zāi)備實(shí)例,來(lái)完成異地的實(shí)時(shí)備份,如果橫向擴(kuò)展讀寫操作,可以開(kāi)通多個(gè)只讀實(shí)例來(lái)分?jǐn)倲?shù)據(jù)庫(kù)壓力。
https://help.aliyun.com/docum...
支持ECS自建數(shù)據(jù)庫(kù)的異地備份
支持RDS數(shù)據(jù)庫(kù)的異地備份
支持本地IDC自建數(shù)據(jù)庫(kù)的異地備份
支持公網(wǎng)數(shù)據(jù)庫(kù)的異地備份(還包含部署在AWS、Azure、騰訊云等其他云計(jì)算廠商的數(shù)據(jù)庫(kù))
此產(chǎn)品不僅支持眾多場(chǎng)景的數(shù)據(jù)庫(kù)備份,將其存儲(chǔ)在阿里云的OSS,并且可以設(shè)置加密存儲(chǔ),上保障了備份數(shù)據(jù)的安全和可靠性,同時(shí)可以設(shè)置備份對(duì)象精細(xì)到表級(jí)別并且支持增量備份,同時(shí)可以配置備份的生命周期,可隨時(shí)利用備份數(shù)據(jù)簡(jiǎn)單幾部就可以進(jìn)行數(shù)據(jù)恢復(fù),測(cè)試了下,發(fā)現(xiàn)很好用,但是目前查看官網(wǎng)沒(méi)有對(duì)應(yīng)API,對(duì)于每天需要超過(guò)兩次以上的備份發(fā)現(xiàn)只能創(chuàng)建多個(gè)備份任務(wù)。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/41916.html
摘要:回滾部署開(kāi)發(fā)者每次部署的程序包會(huì)自動(dòng)備份到歷史版本,發(fā)布異常時(shí),可以指定回滾部署到某一歷史版本。網(wǎng)絡(luò)方面采用了硬件防火墻設(shè)施,提供四層到七層的全面防護(hù),防護(hù)類型包括等所有攻擊方式,支持清洗和黑洞機(jī)制,還接入了防護(hù)等功能。 TAE2.0(Taobao App Engine)是針對(duì)移動(dòng)互聯(lián)網(wǎng)場(chǎng)景的定制化PaaS云服務(wù),基于阿里云基礎(chǔ)設(shè)施,采用Docker容器技術(shù)封裝應(yīng)用運(yùn)行環(huán)境,并且針對(duì)互...
摘要:回滾部署開(kāi)發(fā)者每次部署的程序包會(huì)自動(dòng)備份到歷史版本,發(fā)布異常時(shí),可以指定回滾部署到某一歷史版本。網(wǎng)絡(luò)方面采用了硬件防火墻設(shè)施,提供四層到七層的全面防護(hù),防護(hù)類型包括等所有攻擊方式,支持清洗和黑洞機(jī)制,還接入了防護(hù)等功能。 TAE2.0(Taobao App Engine)是針對(duì)移動(dòng)互聯(lián)網(wǎng)場(chǎng)景的定制化PaaS云服務(wù),基于阿里云基礎(chǔ)設(shè)施,采用Docker容器技術(shù)封裝應(yīng)用運(yùn)行環(huán)境,并且針對(duì)互...
閱讀 2952·2021-09-26 10:18
閱讀 5279·2021-09-22 15:02
閱讀 2795·2019-08-30 15:53
閱讀 1840·2019-08-29 18:41
閱讀 2691·2019-08-27 10:58
閱讀 2622·2019-08-26 13:49
閱讀 2749·2019-08-26 12:17
閱讀 900·2019-08-26 11:49