Oracle DB管理還原資料

來源:互聯網
上載者:User

• 說明DML 和還原資料的產生• 監視和管理還原資料• 描述還原資料和重做資料之間的不同• 配置還原保留時間• 保證還原保留時間• 使用還原指導 1、資料操縱 可使用DML 類的SQL 陳述式操縱或修改資料:INSERT、UPDATE、DELETE和MERGE。這些語句作為交易處理的一部分執行,交易處理以第一個成功的DML 語句作為開始,以COMMIT或ROLLBACK命令作為結束。交易處理始終整個提交。除非使用SAVEPOINT子句回退到特定儲存點,否則交易處理整個回退。除了使用顯式COMMIT或ROLLBACK命令之外,還可以隱式地執行這些命令。例如,如果進程或系統失敗,則可能會發生回退。執行如CREATE TABLE這樣的DDL 命令後可能會發生提交。附註• 使用MERGE命令可執行DML 命令的組合,從而將一個表中的資料合併到另一個表中。• 提交始終在執行DML 命令之前和之後發生。 2、還原資料 還原資料是:• 原始的、修改之前的資料副本• 是針對更改資料的每個交易處理所捕獲的• 至少保留到交易處理結束• 用於支援:– 後援動作– 讀取一致性查詢– 閃回查詢、閃回交易處理和閃回表– 從失敗的交易處理中進行恢複 當某個進程更改了資料庫中的資料時,Oracle DB 會儲存舊值(還原資料)。按資料修改前的原樣儲存資料。如果捕獲了還原資料,則可以回退未提交的資料。還原資料用於支援。還原還可用於“倒回”(閃回)交易處理和表。在中,提供與查詢開始時的資料一致的結果。如果要成功完成讀取一致性查詢,原始資訊必須仍作為還原資訊存在。如果未經處理資料不再可用,則會收到“快照太舊”錯誤。只要保留了還原資訊,Oracle DB 就能通過重建資料來滿足讀取一致性查詢的要求。 有目的地尋找過去某個時間存在的某個版本的資料。只要過去那個時間的還原資訊仍存在,閃回查詢就能成功完成。使用還原功能來建立補償交易處理,以便回退交易處理及其相關交易處理。使用功能可將表恢複到特定的時間點。 還原資料也可用於。如果在使用者決定提交或回退交易處理之前使用者會話異常結束(可能因為網路錯誤或客戶機故障),就會導致交易處理失敗。當執行個體崩潰或發出SHUTDOWN ABORT命令時,交易處理也可能會失敗。 如果交易處理失敗,則選擇最安全的行為,即讓Oracle DB 撤銷使用者做出的所有更改,從而還原未經處理資料。所有交易處理的還原資訊將至少保留到交易處理結束,即使用以下方法之一結束交易處理時:• 使用者還原交易處理(回退交易處理)。• 使用者結束交易處理(提交交易處理)。• 使用者執行DDL 語句,如CREATE、DROP、RENAME或ALTER語句。如果當前交易處理包含任何DML 語句,則資料庫首先提交該交易處理,然後在新的交易處理中執行並提交DDL。• 使用者會話異常終止(回退交易處理)。• 使用者會話正常終止並退出(提交交易處理)。保留的還原資料量及其保留時間取決於資料庫活動量以及資料庫配置。註:Oracle 閃回交易處理利用聯機重做日誌來挖掘用於執行的相應還原SQL。如果閃回交易處理調用中未提供交易處理開始時間,則只使用還原資料作為人為的時間邊界,以此確定目標交易處理的重做挖掘開始時間。 3、交易處理和還原資料• 每個交易處理只分配給一個還原段。• 一個還原段可以同時服務多個交易處理。 交易處理開始時就會分配還原段。在交易處理的整個過程中,更改資料時,原始(更改之前)值會被複製到還原段。通過選中V$TRANSACTION動態效能檢視,可以查看哪些交易處理被分配到哪些還原段。 還原段是為了支援交易處理,由執行個體自動建立的專用段。像所有段一樣,還原段由區組成,區又由資料區塊組成。還原段根據需要可自動成長和收縮,它充當所分配的交易處理的迴圈儲存緩衝區。 交易處理會填充其還原段中的區,直至完成了交易處理或佔用了所有空間為止。如果填充完區之後還需要更多的空間,交易處理則擷取段中下一個區的空間。佔用了所有區之後,交易處理會自動轉回到第一個區或請求為還原段分配新區。註:並行DML 和DDL 操作實際上可導致交易處理使用多個還原段。 4、儲存還原資訊還原資訊儲存在還原段中,還原段又儲存在還原資料表空間中。還原資料表空間:• 僅用於還原段• 包含特殊的恢複注意事項• 只能與單個執行個體相關聯 • 要求在任意指定時間,一個給定的執行個體只能有一個資料表空間是當前可寫還原資料表空間特定形式的資料表空間中,這種形式的資料表空間稱為“在還原資料表空間中不能建立其它段類型)安裝進程可自動建立“小檔案”還原資料表空間。使用者還可以建立“大檔案”還原資料表空間。但是,在同時執行大量短交易處理的大量聯機交易處理(OLTP) 環境中,會在檔案頭上發生爭用。儲存在多個資料檔案中的還原資料表空間可以解決這種潛在的問題。儘管資料庫可能有許多還原資料表空間,但是對於資料庫中的任何執行個體而言,一次只能有一個還原資料表空間被指定為其當前還原資料表空間。將自動建立始終由SYS擁有的還原段。由於還原段充當迴圈緩衝區,因此每個段最少包含兩個區。預設的最大區數取決於資料庫塊大小,但是此值非常大(塊大小為8 KB 時區數為32,765)。還原資料表空間是永久的、本地管理的資料表空間(具有自動區分配)。它們由資料庫自動進行管理。由於需要有還原資料才能從失敗的交易處理(如執行個體崩潰時可能會導致交易處理失敗)中進行恢複,所以。 5、還原資料與重做資料 還原資料和重做資料初看很相似,但是二者的作用卻截然不同。 如果需要,則,而且為了。在因某種原因而丟失了更改時,如果需要再次執行更改,則需要用到重做資料。還原塊更改也可以寫入重做日誌。提交過程需要驗證在交易處理中所做的更改是否已寫入重做記錄檔。這個重做記錄檔會永久儲存在磁碟上,而不是儲存在記憶體中。此外,重做記錄檔通常被多工。 因此,磁碟上有重做資料的多個副本。雖然更改可能尚未寫入實際儲存表塊的資料檔案,但只要寫入到持久重做日誌,就足以確保資料庫的一致性。假設在已提交的更改反映到資料檔案中之前剛好發生斷電。因為交易處理已提交,所有這種情況不會導致問題。當系統再次啟動時,就能夠前滾斷電時尚未反映到資料檔案中的任何重做記錄。 6、管理還原自動還原管理:• 在專用還原資料表空間中對還原資料和空間進行完全自動的管理• 用於所有會話• 在AUTOEXTEND資料表空間中進行自最佳化,以滿足長時間啟動並執行查詢的需求• 在固定大小的資料表空間中進行自最佳化,以實現最佳的保留時間用來支援閃回操作的DBA 任務:• 配置還原保留時間• 將還原資料表空間更改為固定大小• 避免空間錯誤和“快照太舊”錯誤 Oracle DB 提供了“自動還原管理”功能,這是一種完全自動的機制,用於管理所有會話的專用還原資料表空間中的還原資訊和空間。系統自動最佳化自身,從而儘可能地提供還原資訊的最佳保留時間。更準確地說,對於自動擴充的資料表空間,會將還原保留時間最佳化為略長於已耗用時間最長的活動查詢的期間。對於固定大小的還原資料表空間,資料庫會進行動態最佳化,儘可能地獲得最佳保留時間。 自動還原管理是Oracle Database 11g(和更高版本)中的預設功能。也支援手動還原管理,以便與Oracle8i及較早版本向後相容,但是這種模式下DBA 需要進行更多的互動操作。在手動還原管理員模式下,通過回退段而不是還原資料表空間來管理還原空間。註:Oracle 強烈建議使用自動還原管理。儘管在預設情況下,Oracle DB 自動管理還原資料和空間,但。還原管理功能可。 7、配置還原保留時間 UNDO_RETENTION指定已提交的還原資訊要保留多長時間(秒)。僅在以下情況下才必須設定這個參數:• 還原資料表空間啟用了AUTOEXTEND選項• 要設定LOB 的還原保留時間• 要保證保留時間 UNDO_RETENTION初始化參數指定還原保留時間的下限閾值(秒)。可將自動擴充的還原資料表空間的最短還原保留時間設定為預期的最長閃回操作所需的時間。對於自動擴充的還原資料表空間,系統至少按這個參數指定的時間保留還原資料,而且還會自動調整還原保留時間以滿足查詢的還原要求。但是,此自動最佳化的保留時間可能不足以執行閃回操作。對於固定大小的還原資料表空間,系統會根據還原資料表空間大小和使用記錄,自動調整到儘可能最優的還原保留時間;。因此,進行自動還原管理時,在以上中列出的三種情況都使用UNDO_RETENTION設定。對於這三種以外的情況,會忽略此參數。還原資訊分為三類:• 未提交的還原資訊(活動):支援當前啟動並執行交易處理,如果使用者要回退交易處理或交易處理失敗,需要用到這類資訊。絕對不會覆蓋未提交的還原資訊。• 提交的還原資訊(未到期):不再需要用來支援啟動並執行交易處理,但是為了符合還原保留時間間隔,仍然要用到這類資訊。這也稱為“未到期”還原資訊。當不是因為缺少空間而導致活動交易處理失敗時,就會保留提交的還原資訊。• 到期的還原資訊(到期):不再需要用來支援啟動並執行交易處理。活動交易處理需要空間時會覆蓋到期的還原資訊。 保證保留時間會改變此行為。。 RETENTION GUARANTEE是資料表空間屬性而不是初始化參數。此屬性只可使用SQL 命令列語句來更改。通過更改還原資料表空間來保證保留時間的文法是:SQL> ALTER TABLESPACE undotbs1 RETENTION GUARANTEE;  要將有保留時間保證的還原資料表空間返回到其常規設定,請使用以下命令:SQL> ALTER TABLESPACE undotbs1 RETENTION NOGUARANTEE; 。嘗試對非還原資料表空間設定保留時間會產生以下錯誤:SQL> ALTER TABLESPACE example RETENTION GUARANTEE; ERROR at line 1: ORA-30044: 'Retention' can only specified for undo tablespace 9、將還原資料表空間更改為固定大小原因:工作流程:1.運行正常工作量。2.自最佳化機制建立所需的最小大小。3.可以選擇使用還原指導,該指導可計算為了滿足未來增長而需要的大小。4.可以選擇將還原資料表空間更改為固定大小。 可能出於以下兩個原因,將還原資料表空間更改為固定大小:(預期將來會使用還原功能)或。如果決定將還原資料表空間更改為固定大小,則必須選擇一個足夠大的大小以避免以下兩類錯誤:Oracle 建議運行正常的滿負荷工作量,使還原資料表空間增長到所需的最小大小。自動搜集的統計資訊包括。對於不執行閃回操作的系統以及將來不打算對其執行已耗用時間更長的查詢的系統,建議根據這些統計資訊計算最小還原資料表空間大小。對於已耗用時間更長的查詢和閃回操作,可以使用來輸入所需的還原時段長度。 10、一般還原資訊 在Enterprise Manager 中,選擇“Server > Automatic Undo Management(伺服器> 自動還原管理)”。有以下兩頁:“General(一般資訊)”和“System Activity(系統活動)”。在“General(一般資訊)”頁的頂部,可以看到還原保留時間設定和有關該執行個體中還原資料表空間的資訊。11、使用還原指導 在“General Undo(常規還原)”頁的中間部分,可以訪問還原指導。通過它可估計滿足指定的還原保留時間所需要的還原資料表空間大小。該指導的分析地區會顯示支援保留時間所需的資料表空間大小。可以通過單擊圖上的某個點來查看支援選定期間所需要的資料表空間大小。  單擊“Edit Undo Tablespace(編輯還原資料表空間)”按鈕,然後在“Datafile(資料檔案)”部分單擊“Edit(編輯)”,將還原資料表空間更改為固定大小。   情境:修改還原保留時間並計算還原資料表空間大小,以支援要求的48小時保留時間。a)單擊“General(一般資訊)”選項卡返回到“General Automatic Undo Management(常規自動還原管理)”頁。  b)在“Undo Advisor(還原指導)”部分,選中“Specified manually to allow for longer duration queries or flashback(手動指定以允許期間更長的查詢或閃回)”。  c)在“Duration(期間)”欄位中輸入48 小時,然後單擊“Run Analysis(運行分析)”按鈕。  結果顯示的還原資料表空間大小非常接近於建議的還原資料表空間大小。此大小適用於大多數工作量,但建議將還原資料表空間大小設定為最小大小的三倍。也就是說,應將還原資料表空間大小更改為372 MB。  12、查看系統活動 頁面頂部將顯示所選期間的系統活動。在此部分的下方,有三個圖形: 1.還原資料表空間使用方式:按天數顯示資料表空間大小(以MB 為單位) 2.還原保留時間自動最佳化:按天數查看最佳化的還原保留時間(以分鐘為單位) 3.還原產生速率:按天數顯示還原產生速率(以KB/秒為單位)

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.