背景介紹
PolarDB-X 1.0 SQL閃回針對SQL誤操作,提供行級資料的恢複能力。
當您在PolarDB-X 1.0上執行誤操作SQL(如INSERT、UPDATE或DELETE) 後,使用SQL閃回,提供相關的誤操作SQL資訊,即可從BINLOG中找到匹配的事件,產生對應的恢複檔案,下載後根據需求恢複資料。
SQL閃回針對誤操作SQL,支援模糊比對與精確匹配兩種遺失資料的定位策略,以及自動選擇匹配策略的能力,請參見名詞解釋。
面向不同的使用情境,SQL閃回提供復原SQL與原始SQL兩種方式來恢複資料。
功能優勢
操作簡單:輕鬆配置,填寫少量誤操作SQL資訊,即可助您找回丟失的資料。
快速輕量:不依賴RDS的備份策略,只需在誤操作SQL執行前開啟RDS記錄備份即可快速恢複誤操作資料。
靈活的恢複方式:針對不同的情境,提供復原SQL與原始SQL兩種能力,恢複方式靈活多樣。
SQL級精確匹配能力:SQL級的誤操作資料精確匹配能力,提高資料恢複的精準性。
限制與說明
SQL閃回依賴RDS BINLOG儲存時間,請開啟RDS記錄備份。RDS BINLOG存在儲存時限,誤操作資料後請儘快使用SQL閃回產生恢複檔案。
SQL閃回產生的恢複檔案預設儲存7天,產生後請儘快下載。
SQL閃回精確匹配需要滿足如下條件:
PolarDB-X 1.0執行個體版本在5.3.4-15378085版本及以上。
PolarDB-X 1.0資料庫使用的RDS是5.6及以上版本。
執行誤操作SQL前,SQL閃回精確匹配開關已開啟。
提供誤操作SQL的TRACE_ID資訊。
為了保證資料恢複的精準性,PolarDB-X 1.0對於在5.3.4-15378085版本及以上執行個體建立的資料庫,預設開啟精確匹配的開關。開啟後,RDS BINLOG中會預設帶上執行SQL的資訊,增加一定的RDS儲存空間。如您需要使用精確匹配的能力,建議升級PolarDB-X 1.0後開啟,詳情請參見開啟精確匹配。
產生恢複檔案
如果您之前未使用過SQL閃回功能,可以任選一條範例SQL,按照下文的操作步驟試用,觀察產生的恢複檔案,有助於更好地理解SQL閃回。
登入PolarDB分布式版控制台,選擇指定地區。
選擇執行個體所在地區。
在執行個體列表頁面單擊執行個體名稱。
在左側導覽列中單擊SQL閃回,進入SQL閃回頁面。
按照操作提示,填寫誤操作SQL的基本資料,包括資料庫、誤操作SQL執行的時間範圍、表名、TRACE_ID,SQL類型。關於如何擷取誤操作SQL的相關資訊,請參見定位誤操作SQL。
參數說明:
SQL執行時間範圍:誤操作SQL執行的大致時間範圍,開始時間早於誤操作SQL開始執行時間,結束時間晚於誤操作SQL執行結束時間。為了保證恢複的效率,建議時間範圍儘可能精確,限定在5分鐘範圍內。
TRACE_ID:PolarDB-X 1.0會為每條執行的SQL分配唯一的TRACE_ID,誤操作SQL的TRACE_ID值可以通過PolarDB-X 1.0 SQL審計擷取。
單擊預檢按鈕,檢查提供的時間範圍內,RDS BINLOG是否存在,如上圖中2所示。
如果您提供的時間範圍內,已不存RDS BINLOG,則提示預檢失敗,無法恢複資料。
如果您提供的時間範圍內,存在RDS BINLOG,則預檢通過。
選擇恢複方式,支援選擇復原SQL和原始SQL。關於恢複方式的選擇,詳情請參見復原SQL與原始SQL。
單擊產生SQL按鈕,即可產生SQL閃回任務。SQL閃回頁面會展示當前執行個體啟動並執行SQL閃回任務狀態。
SQL閃回任務完成後,會顯示該任務是否是精確匹配,實際恢複的資料行數等資訊。 您可以單擊下載按鈕下載對應的恢複檔案,進行資料恢複。
恢複檔案預設儲存7天,請儘快下載。
定位誤操作SQL
選擇誤操作的資料庫。
單擊SQL閃回頁面的SQL審計與分析連結,前往SQL審計與分析頁面。如果您未開啟SQL審計,請使用SQL審計的匯入歷史資料功能,最多支援匯入7天內的歷史SQL記錄。

使用SQL審計與分析,定位誤操作SQL的審計記錄。
擷取誤操作SQL資料中的
sql_time、table_name、sql_type和trace_id欄位。
開啟精確匹配
前提條件:您的PolarDB-X 1.0執行個體版本需為5.3.4-15378085及以上,如果低於該版本,建議升級後開啟。
登入PolarDB分布式版控制台,前往指定執行個體的參數設定頁面,詳情請參見參數設定。
修改對應資料庫的SQL閃回精確匹配開關的參數值為ON。
名詞解釋
SQL閃回根據您提供的誤操作SQL資訊,在RDS BINLOG中尋找對應的匹配事件,反向產生對應的恢複SQL。受執行個體版本,參數設定的影響,SQL閃回支援兩種BINLOG事件的匹配策略:精確匹配與模糊比對。具體的匹配策略無需選擇,PolarDB-X 1.0 SQL閃回會自動檢測,選擇最優的匹配策略,並在閃回任務結束後通知您。
精確匹配
針對誤操作SQL,在RDS BINLOG中精確匹配出該SQL誤操作的事件,產生恢複檔案。
優點:恢複檔案中僅包含誤操作SQL誤刪(誤改)的資料,可直接使用,保證資料恢複的精準性與效率。
缺點:需要滿足以下的條件:
PolarDB-X 1.0執行個體版本在5.3.4-15378085版本及以上。
PolarDB-X 1.0資料庫使用的RDS是5.6及上版本。
執行誤操作SQL前,SQL閃回精確匹配開關已開啟。開啟SQL精確匹配開關後,RDS BINLOG中會預設帶上執行SQL的資訊,增加一定的RDS儲存空間。
提供誤操作SQL的TRACE_ID資訊。
說明SQL閃回精確匹配開關對於5.3.4-15378085版本及以上的建立資料庫預設開啟,低版本執行個體建議升級後手動開啟,詳情請參見開啟精確匹配。
模糊比對
針對誤操作SQL的相關資訊(執行時間範圍、動作表名、SQL類型等),在RDS BINLOG中匹配滿足條件的事件,產生對應的恢複檔案。
優點:不依賴執行個體版本、參數設定等,所有執行個體都支援。
缺點:無法精準匹配誤刪(誤改)的資料,恢複檔案中包含其它業務SQL改動的資料,需要您從中篩選出所需資料。
復原SQL與原始SQL
為了支援不同的業務情境,PolarDB-X 1.0 SQL閃回提供產生復原SQL與產生原始SQL兩種恢複方式,您在產生恢複SQL檔案前,需要根據使用情境,選擇對應的恢複方式。
復原SQL
逆序遍曆BINLOG中的匹配事件,對INSERT、UPDATE、DELETE事件進行逆反操作,產生的SQL。
INSERT逆反等價於DELETE。
DELETE逆反等價於REPLACE。
UPDATE逆反等價於UPDATE SET value = 變更前。
使用方式:在原表執行,對現有資料進行覆蓋性恢複。
適用情境:當需要恢複的資料沒有衝突或者接受部分衝突資料被覆蓋,建議產生復原SQL。
原始SQL
順序遍曆BINLOG中的匹配事件,對INSERT、UPDATE、DELETE事件進行全記錄的鏡像構造處理,產生的SQL。
INSERT鏡像等價於INSERT。
DELETE鏡像等價於INSERT。
UPDATE鏡像等價於INSERT變更前的值。
使用方式:在暫存資料表執行,寫入誤操作前的未經處理資料,與現有資料進行對比,分析衝突後決定最終資料。
適用情境:當需要恢複的資料與當前資料存在衝突時,建議產生原始SQL。