什么是數據庫備份
RDS for MySQL會在數據庫實例的備份時段中創建數據庫實例的自動備份。系統根據您指定的備份保留期(1~732天)保存數據庫實例的自動備份。
每次備份完成后都會生成一個備份文件,當數據庫故障或數據損壞時,可以通過備份文件恢復數據庫,從而保證數據可靠性。
備份類型
RDS for MySQL包含多種備份類型,不同備份類型的概念介紹以及功能差異,請參見備份類型。
全量備份:對所有目標數據進行備份。全量備份總是備份所有選擇的目標,即使從上次備份后數據沒有變化。
全量備份觸發方式分為:自動備份、手動備份。
增量備份:即Binlog備份,RDS系統自動每5分鐘或一定數據量時對上一次全量備份或增量備份后更新的數據進行備份。
備份觸發過程
單機實例
采用單個數據庫節點部署架構。與主流的主備實例相比,它只包含一個節點,但具有高性價比。備份觸發后,從主庫備份數據并以壓縮包的形式存儲在對象存儲服務上,不會占用實例的磁盤空間。
主備實例
采用一主一備的經典高可用架構,主備實例的每個節點的規格保持一致。備份觸發后,從備庫備份數據并以壓縮包的形式存儲在對象存儲服務上(當主備復制延遲較高時會切換到主機備份),不會占用實例的磁盤空間。
當數據庫或表被惡意或誤刪除,雖然RDS支持主備高可用,但備機數據庫會被同步刪除且無法還原。因此,數據被刪除后只能依賴于實例的備份保障數據安全。
備份機制
RDS for MySQL默認開啟自動備份,且不支持關閉。RDS for MySQL自動全備按照備份策略中的備份時間段和備份周期進行全量備份。Binlog備份為實例每5分鐘或一定數據量時對上一次自動全備,或Binlog備份后更新的數據會進行備份,以保證數據庫可靠性。實例恢復到指定時間點,會從OBS備份空間中選擇一個該時間點最近的全量備份下載到實例上進行全量恢復,再重放Binlog備份到指定時間點。
圖 備份原理
備份清理
備份文件清理分為兩種場景:手動備份清理和自動備份清理。
? 手動備份是由用戶觸發產生的全量備份,需要用戶手動刪除,否則會一直保存。
? 自動備份的備份文件不支持手動刪除,可通過設置自動備份策略調整備份保留天數,超出備份保留天數的已有備份文件會被自動刪除。
Binlog本地日志清理:
清理Binlog日志時,即使設置保留時長為0,RDS也會保證主節點的Binlog同步到備節點、只讀節點全部完成,并且備份到OBS成功以后才會執行清理。
如果選擇的保留時長大于0,例如設置1天,那么在Binlog同步及備份成功后,本地Binlog日志將會繼續保留1天,到期后自動刪除。