目的 說明DML和數據還原的生成 監控和管理數據還原 描述數據還原和重做數據之間的不同 配置還原保留期 保證還原保留期 使用還原指導 還原數據 -原始的,修改之前的數據副本 -針對更改數據的每個事務處理而捕獲 -至少保留到事務處理結束 -用於支持 -回退操作 -讀取一致性查詢 -Oracle 閃回查 ...
目的 說明DML和數據還原的生成 監控和管理數據還原 描述數據還原和重做數據之間的不同 配置還原保留期 保證還原保留期 使用還原指導 還原數據 -原始的,修改之前的數據副本 -針對更改數據的每個事務處理而捕獲 -至少保留到事務處理結束 -用於支持 -回退操作 -讀取一致性查詢 -Oracle 閃回查詢,Oracle閃回事務處理和Oracle閃回表 -從失敗的事務處理中進行恢復 以下事件會結束事務處理: -用戶還原事務處理(回退事務處理) -用戶結束事務處理(提交事務處理) -用戶執行DDL語句,如CREATE,DROP,RENAME或ALTER語句。如果當前事務處理包含任何DML語句,則資料庫首先提交該事務處理,然後在新的事物處理中執行並提交DDL。 -用戶會話異常終止(回退事務處理) -用戶會話正常終止並退出(提交事務處理) 保留的還原數據量及其保留時間取決於資料庫活動量以及資料庫配置 註:Oracle閃回事務處理利用聯機重做日誌來挖據用於執行的相應還原SQL。如果閃回事務處理調用中未提供事務處理開始時間,則使用人為提供的時間邊界,以此確定目標事務處理的重做挖據開始時間。 事務處理和還原數據 事務處理開始到結束,分配一個還原段,原始數據複製到還原段。V$TRANSACTION動態性能視圖可以查看哪些事務處理分配到哪些還原段。 還原段是由實例根據需求自動創建的專用段,用於事務處理。段->區->塊。還原段可以自動增長和收縮,事務處理的迴圈存儲緩衝區。 事務處理會填充還原段中的所有區。填充完區之後還需要更多的空間,則事務處理將獲取段中的下一個區的空間。占用所有區後,事務處理會轉回第一個區或請求為還原段分配新區。
SQLPLUS(session1)> begin for i in 1..100000 loop insert into t_date values(sysdate); delete from t_date; end loop; end; / SQLPLUS(session2)> SET PAGESIZE 600 SET LINESIZE 600 COL SQL_TEXT FORMAT A40 SELECT B.SID, B.SERIAL#, S.SQL_TEXT, C.USED_UBLK * 8192 / (1024 * 1024) USED FROM V$SQL S, V$SESSION B, V$TRANSACTION C WHERE S.ADDRESS = B.SQL_ADDRESS AND S.HASH_VALUE = B.SQL_HASH_VALUE AND B.SADDR = C.SES_ADDR; SELECT s.sid, s.username, s.PROGRAM, s.MACHINE, u.name, t.used_ublk FROM v$transaction t, v$rollstat r, v$rollname u, v$session s WHERE s.taddr = t.addr AND t.xidusn = r.usn AND r.usn = u.usn ORDER BY s.username;
存儲還原信息 還原信息存儲在還原段中,還原段又存儲在還原表空間中。 -僅用於還原段 -有特殊的恢復註意事項 -只能與單個實例相關聯 -在任意給定時間,一個給定的實例只能有一個表空間是當前可寫的還原表空間 在執行大量短事務處理的大容量聯機事務處理(OLTP)環境中,會在文件頭部上發生爭用。存儲多個數據文件中的還原表空間可以解決這種潛在的問題。 還原段由SYS自動創建並始終歸其所有。由於還原段充當迴圈緩衝區,每個段最少包含兩個區。預設的最大區數取決於資料庫塊大小,但是此值預設非常大(塊大小為8KB時,區數量為32765) 還原表空間是永久的,本地管理的表空間(具有自動區分配)。它們由資料庫自動進行管理。 還原表空間恢復只能是在實例處於MOUNT狀態時才可恢復。 還原數據與重做數據 管理還原 自動還原管理 -在專用還原表空間中對還原數據和空間進行完全自動的管理 -用於所有會話 -在AUTOEXTEND表空間中進行自動優化,以滿足長時間運行的查詢需求 -在固定大小的表空間中進行自動優化,以實現最佳的保留期 用來支持閃回操作的DBA任務 -配置還原保留期 -將還原表空間更改為固定大小 -避免空間錯誤和“快照太舊”錯誤 配置還原保留時間 UNDO_RETENTION指定已提交的還原信息要保留多長時間(秒)。僅在以下情況才必須設置此參數: -還原表空間啟用了AUTOEXTEND選項 -需要設置LOB的還原保留時間 -需要保證保留時間 對於固定大小的還原表空間,系統會根據還原表空間大小和使用歷史記錄進行自動優化,儘可能獲得最佳還原保留期;除非啟用了保留時間保證,否則系統會忽略UNDO_RETENTION。 還原信息分為三類 -未提交的還原信息(活動):用來支持當前運動的事務處理;如果用戶要回退事務處理或事物處理失敗時,需要用到這類信息。絕對不會覆蓋未提交的還原信息。 -提交的還原信息(未過期):不再需要用來支持運行的事務處理,但是為了符合還原保留間隔,仍然要用到這類信息。這也稱為“未過期”還原信息。只要不會因缺少空間而導致活動事務處理失敗,就會保留提交的還原信息。 -過期的還原信息(過期):不再需要用來支持運行的事務處理。活動事務處理需要空間時會覆蓋過期的還原信息。 保證還原保留時間 ALTER TABLESPACE UNDOTBS1 RETENTION GUARANTEE; 將還原表空間改為固定大小 原因 -支持閃回操作 -限製表空間增長 工作流 -運行正常工作量 -自動優化機制確定所需的最小大小 -可以選擇使用還原指導,該指導可計算為了滿足未來增加而需要的大小。 -可以選擇將還原表空間改為固定大小。 需避免兩類錯誤 -DML失敗(因為空間不夠大,無法存儲新事務處理的還原數據) -“快照過久”錯誤(因為沒有足夠的還原數據來實現讀取一致性) 小結: DML和還原數據的生成(存放舊數據) 監視和管理還原數據 描述還原數據和重做數據之間的不同 配置還原保留期 保證還原保留期 使用還原指導