資料庫回檔解決方案

wangsys發表於2021-09-09

歡迎大家前往騰訊雲+社群,獲取更多騰訊海量技術實踐乾貨哦~

本文由騰訊雲資料庫 TencentDB 發表於雲+技術週刊特別版

作者介紹:李明,騰訊雲資料庫架構師華南區負責人,曾在某專業資料庫服務商、51job任職DBA。

作為一名DBA,日常工作中免不了需要做一些救火的事情,比如DB使用人員在使用過程中update、delete手誤沒有寫where條件、遊戲程式bug導致玩裝潢備異常……,此時的你是不需要找一臺機器,然後拉取下今天的備份,然後還原,必要的時候還需在解析下binlog,然後在把需要恢復的資料匯入到誤操作的例項上,是不感覺步驟好繁瑣,浪費時間?

若你是一名雲資料庫DBA且使用的是騰訊雲資料庫,用控制檯點點按鈕,後臺幫你自動回檔到任意時間點(具體參看官網文件),是不是為你節約了時間?這個時間你可以用來泡杯“菊花枸杞茶”、為相關人員普及一下“如何正確使用資料庫”等……,把時間浪費在美好的事情上,這才是我們的追求嘛。

本文詳細講解,騰訊雲資料庫是如何做到讓你有時間浪費在美好事情上呢?

Redis

Redis作為當前系統架構中不可或缺的潤滑劑,已在各類應用中得到廣泛的應用。當前TencentDB for Redis支援整例項恢復、指定key恢復。

1、恢復例項

  1. 在”備份與恢復”中,選中需要回檔的備份,點選【恢復例項】

  2. 在彈出的恢復例項確認框中,輸入例項密碼,點選【恢復】

注意:此處需要輸入的密碼為使用者設定的例項密碼,並非訪問例項時所用的<例項ID:例項密碼>連結密碼

img

  1. 例項進入”按備份Id恢復備份中”,可在任務中心檢視任務狀態,待例項狀態進入”例項執行中”即可正常使用

img

2、恢復指定Key

1) 在”備份與恢復”中,選中需要回檔的備份,點選【恢復例項】

2) 在彈出的恢復例項確認框中,輸入例項密碼,點選【下一步】

注意:此處需要輸入的密碼為使用者設定的例項密碼,並非訪問例項時所用的<例項ID:例項密碼>連結密碼

img

  1. 輸入需要從備份中恢復的key,多key之間以英文分號做間隔,點選【完成】,例項進入”按key恢復備份中”狀態,可在任務中心檢視任務狀態,待例項狀態進入”例項執行中”即可正常使用

img

img

MySQL

MySQL是資料庫產品中目前使用者數最大且儲存增速最塊的品種,TencentDB for MySQL當前支援整例項、選庫、選表恢復,誤操作的資料會恢復到原例項中。

1、例項回檔

1)進入所需要回檔的例項後,點選【回檔】按鈕。

img

2)點選進入回檔提交頁面,選擇所需要回檔的庫或表(如需回檔整個例項,請全選),以及需要回檔至的時間點(單例項回檔),確認無誤後提交回檔任務。

img

3)回檔完成後,可在原例項中看到回檔後的新庫表。

2、批量回檔

img

1)勾選所需要回檔的例項後,選擇【更多操作】->【批量回檔】。

2)點選進入回檔提交頁面,選擇所需要回檔的庫或表(如需回檔整個例項,請全選),以及需要回檔至的時間點(單例項回檔),確認無誤後提交回檔任務。

img

回檔完成後,可在原例項中看到回檔後的新庫表。

3、檢視回檔日誌和進度

回檔過程中,可實時查詢回檔的進度.

img

4、回檔原理

1.原理

最近一次冷備+對應的binlog 回檔到指定時間點

2.流程

img

1.冷備系統每天會從MySQL從機匯出資料到冷備系統;

2.回檔時,首先從回檔系統申請一臺回檔例項,然後從冷備系統匯出冷備資料匯入臨時例項(根據回檔方式匯入不同資料);

3.回檔例項和MySQL主例項建立主從關係,並設定需要回檔的時間和資料庫表;

4.將回檔後的資料庫表拷貝到MySQL主例項;

3.功能

1.支援主例項回檔,不支援只讀例項和災備例項回檔

2.支援7天內任意時間點回檔,具體時間有MySQL例項的冷備和Binlog決定

3.支援三種回檔方式:

o普通:匯入該例項的全量備份,再在對選中的庫、表進行回檔。該回檔模式無限制,但回檔速度較慢。

o快速:僅匯入所選中庫級別的備份和binlog,如有跨庫操作,且關聯庫未被同時選中,將會導致回檔失敗

o極速:僅匯入所選中表級別的備份和binlog,如有跨表操作,且關聯表未被同時選中,將會導致回檔失敗

4.限制

1.目前只支援指定庫表回檔,回檔後的庫表會回寫到源例項(需要重新命名),不支援整例項回檔

2.一次最多選擇任意數量個例項 (需要限制一次選擇的最大例項數量)

3.所有回檔例項總共最多選擇20個庫表 (需要改成一個庫表最大選擇20個庫表)

4.選擇的庫表只能包含數字、字母、下劃線

5.併發控制:流程限制總共同時發起10個任務,每個AppId同時發起5個任務

5.注意點

1.如果需要回檔的庫表不存在,在頁面操作時,需要先建立庫表,再選擇。

SQL server

TencentDB For SQL Server完美支援Windows平臺的.NET架構,附帶微軟企業版許可授權,大大節約企業成本。TencentDB for SQL Server的全量備份和日誌備份儲存7天,因此可以回檔到7天內的任意時刻。

1、回檔

1.進行例項詳情頁,點選回檔按鈕

img

2.設定需要回檔的資料庫,回檔時間和是否覆蓋原庫,並進入下一步

img

3.確認設定的引數後,點選“回檔”按鈕,啟動回檔任務

img

4.例項狀態變成“任務執行中”,可在任務列表中檢視回檔進度

img

5.回檔成功,由於之前選擇不覆蓋原庫,因此可以在資料庫管理頁看到生成的複製庫

img

注意:回檔目前僅支援在本地例項進行,可以選擇覆蓋原庫或生成一份複製庫。如果選擇生成一份複製庫,則需要注意回檔後的磁碟空間不能超過例項可用的磁碟空間,否則會出現回檔失敗

2、回檔原理

原理:

img

備份服務:

每天發起1次完整備份,20分鐘發起1次日誌備份

問答

有哪些常見的資料層容災架構?

相關閱讀

關於客戶“前沿數控”資料完整性受損的技術覆盤

就算雲廠商水逆了,服務也不能倒

軟體領域沒有銀彈 —— 建立正確的雲端計算認知

此文已由作者授權騰訊雲+社群釋出,原文連結:https://cloud.tencent.com/developer/article/1180540?fromSource=waitui

歡迎大家前往騰訊雲+社群或關注雲加社群微信公眾號(QcloudCommunity),第一時間獲取更多海量技術實踐乾貨哦~

海量技術實踐經驗,盡在雲加社群! https://cloud.tencent.com/developer?fromSource=waitui

相關文章