針對邏輯錯誤 (誤刪/誤更新) 的快速恢復方案,利用 Data Guard 物理備庫開啟 Flashback 技術,提供交互式 Shell 腳本。
FLASHBACK TABLE owner.table TO SCN scn_num。FLASHBACK TABLE owner.table TO TIMESTAMP TO_TIMESTAMP('2024-05-18 20:34:21','YYYY-MM-DD HH24:MI:SS')。ENABLE/DISABLE ROW MOVEMENT (Flashback 前提)。sqlplus,解析 ORA- 錯誤碼反饋結果。#!/bin/bashexport LOGIN_USER=testexport LOGIN_PWD=testflashscn() { read -p "enter scn: " SCNNUM STR="flashback table $OWNER.$TABLE_NAME to scn $SCNNUM;" run_sql "$STR"}flashtime() { read -p "enter time (YYYY-MM-DD HH24:MI:SS): " STIME STR="flashback table $OWNER.$TABLE_NAME to timestamp to_timestamp('$STIME','YYYY-MM-DD HH24:MI:SS');" run_sql "$STR"}run_sql() { local sql=$1 local out=$(sqlplus -s $LOGIN_USER/$LOGIN_PWD < ROW MOVEMENT (腳本自動處理)。FLASHBACK DATABASE 並保留足夠 UNDO / FLASHBACK LOG。FLASHBACK ANY TABLE 或表級 FLASHBACK 權限。DBMS_FLASHBACK 包會話級時光旅行。