多項研究表明,40% 的應用程序故障都是由操作員或用戶的錯誤造成的。人非聖賢,孰能無過?但是,這些錯誤很難避免,而且在沒有事先規劃和使用正確技術的情況下尤其難以恢復。這樣的錯誤會導致“邏輯”數據損壞,或者導致 IT 基礎架構的壹個或多個組件停止運行。糾正個別組件的錯誤相對來說簡單,而檢測並糾正邏輯數據的損壞,例如意外刪除了有價值的數據時,所耗費的操作將導致業務產出的巨大損失。典型的用戶錯誤可能包括意外刪除了有價值的數據,錯誤刪除了數據和錯誤刪除了表。避免人為錯誤Oracle 數據庫體系結構利用了人為錯誤數據庫恢復領域獨有的技術進展。Oracle 閃回技術提供了壹組新特性,可及時查看數據並在時間上前後滾動數據。使用閃回特性,可以查詢歷史數據、執行更改分析,以及執行自助修復,以便在數據庫聯機時從邏輯損壞中恢復。利用 Oracle 閃回技術,您完全可以撤銷過去的操作!Oracle9i 引入了閃回查詢,從而提供了可從人為錯誤中恢復的簡單、強大和全面的非破壞性機制。它允許用戶查看過去某個時間點的數據狀態,而無需更改任何數據庫結構。 Oracle 數據庫 10g 擴展了閃回技術,提供了基於數據庫、表、行和事務級別的快速、方便的恢復。閃回技術使恢復過程實現了革命性變化,您只需對更改的數據進行操作。現在,錯誤恢復所需的時間就相當於錯誤發生的時間。Oracle 10g 閃回技術包括閃回數據庫、閃回表、閃回刪除、閃回版本查詢以及閃回事務查詢。 可以輕松地利用閃回技術進行非修復性操作,如使用閃回查詢進行歷史審計、利用閃回數據庫撤銷測試更改。Oracle 數據庫 11g 引進了壹個創新的方法,使用閃回數據存檔來管理和查詢長期的歷史數據。該版本還提供了簡單的壹步式事務撤銷操作,實現了新的閃回事務功能。 Oracle 數據庫 11g 中的新特性閃回數據存檔 閃回數據存檔能夠以高度的應用程序透明性、安全性及高效的方式自動跟蹤和維護對所有 Oracle 數據的歷史更改。作為 Oracle Total Recall 選件的組成部分,閃回數據存檔為企業提供了快速、集中和極其高效的解決方案,以滿足管理所有歷史數據的需要。閃回數據存檔自動跟蹤對數據庫中所存儲數據的每個更改,同時維護壹個安全、高效和易於訪問的歷史數據存檔。捕獲的歷史數據可以根據業務需要保存任意長的時間,並且可以使用閃回 SQL 查詢方便地進行訪問。在現有表和新建表上均可立即啟用歷史數據跟蹤,更重要的是,以壹種完全應用程序透明的方式進行跟蹤。 閃回數據存檔提供了壹個高性能的、存儲優化的、具有集中管理界面的解決方案,可以滿足組織對數據保留和更改控制的需求。使用閃回數據存檔進行歷史數據跟蹤的主要好處包括: 應用程序透明: 在應用程序沒有更改或更改很小的情況下,可以在壹個或多個表上立即啟用歷史數據捕獲。因此,客戶可以使用該特性捕獲打包應用程序以及自行開發的應用程序的歷史數據。 無縫訪問: 可以使用熟悉的閃回 SQL 結構輕松訪問歷史數據。閃回數據存檔包括對閃回查詢的支持。應用程序可以及時無縫地查詢不同時間點的表歷史數據。無需拍攝特殊快照既可利用該特性。 安全性: 歷史數據壹旦生成,任何用戶都不能進行修改。這就實現了即取即用,而無需特殊或額外的設置。對內部歷史表的訪問限制為只讀。不允許用戶(包括管理員)進行 DML 操作。由於通過閃回查詢機制提供了無縫訪問,因此應用程序無需直接查詢內部歷史表。 最小的性能開銷: 常規用戶事務幾乎沒有影響。閃回數據存檔采用輕型機制來標記要存檔的跟蹤表上的 DML 操作。通過稍後介紹的後臺進程異步生成實際歷史記錄並進行存檔。 存儲優化: 在內部對歷史數據進行分區和高度壓縮,以減少占用的存儲空間。閃回數據存檔采用高效的壓縮模式來壓縮內部歷史表。此外,它還依據範圍分區模式對內部歷史表進行自動分區。閃回數據存檔中的壓縮和分區都是自動管理的,無需特殊管理。 集中管理: 閃回數據存檔提供了壹個基於策略的集中管理界面,實現了大量正在進行中的管理任務自動化。使用閃回數據存檔,可以方便地對表進行分組並設置常規保留策略。新表將從所在的閃回數據存檔中自動繼承保留參數。Oracle 將根據指定的保留策略自動清除所有跟蹤表中過期的歷史數據。這就可以將管理員從重復的歷史數據管理中解放出來,避免了與人工維護有關的成本高昂的錯誤(如,錯誤清除了歷史數據)。 閃回事務大型數據庫應用程序依賴復雜的事務序列,以確保壹組插入、更新或刪除的原子性和壹致性。如果出現壹個“問題”事務,管理員必須向前追溯,了解哪些更改受該事務的影響並確定任何依賴關系(例如,“問題”事務之後修改了相同數據的事務),從而確保撤銷該事務,保留原始的、好的數據狀態和任何相關數據。執行這種事務分析可能很費力,尤其對非常復雜的應用程序。通過閃回事務,使用壹個 PL/SQL 操作即可實現單個事務(還可以包含它依賴的所有事務)的閃回,或者使用直觀的 EM 向導來識別並閃回有問題的事務。閃回事務依賴於給定事務及其相關事務的撤銷數據和存檔重做日誌的可用性,以便撤銷更改。Oracle 數據庫 10g 第 2 版中的新特性恢復點當需要進行 Oracle 數據庫時間點恢復操作時,DBA 必須確定數據必須回滾到的時間或 SCN。Oracle 數據庫 10g 第 2 版用恢復點簡化了時間點恢復。恢復點是用戶定義的壹個名稱,與閃回數據庫、閃回表和恢復管理器 (RMAN) 結合使用時可以代替 SCN 或時鐘時間,可以通過企業管理器或者用 SQL*Plus 或 RMAN 以命令行方式創建。使用恢復點,無需調查事務的 SCN 或時間,使用戶能夠收藏數據庫事務事件。有保證的恢復點確保了始終維護足夠的閃回日誌,以便返回到恢復點。這意味著快速恢復區將不刪除閃回日誌,除非當前的保證恢復點不再需要這些日誌。可在進行主要數據庫更改(如數據庫批處理作業或模式升級)之前創建這些特殊恢復點,從而可在需要撤銷更改時使用這些恢復點進行閃回。通過RESETLOGS 閃回數據庫通過RESETLOGS 閃回數據庫使 RESETLOGS 操作之前創建的閃回日誌可用於閃回數據庫操作。在 Oracle 數據庫 10g 第 2 版中,使用 RESETLOGS 打開數據庫後即保留閃回日誌。如果直到執行了 RESETLOGS 之後才發現長期存在的邏輯錯誤,這種情況下該特性非常有用,需要在 RESETLOGS 之前進行閃回。在 Oracle Data Guard 環境中,該功能允許物理備用數據庫以讀寫方式打開,以便稍後閃回更改並將更改轉換回物理備用數據庫。如果切換操作後發現邏輯錯誤,可以將主數據庫和備用數據庫閃回到切換操作前的 SCN 或時間點。Oracle 數據庫 10g 第 1 版中的新特性閃回數據庫閃回數據庫可快速地將 Oracle 數據庫倒回至以前的某個時間,以便糾正由邏輯數據損壞或用戶錯誤造成的任何問題。閃回數據庫就像數據庫的“倒退按鈕”。它提供數據庫的時間點恢復,而無需先恢復數據庫備份。當您希望消除從磁帶恢復數據庫備份所花的時間時,數據庫時間點恢復是壹種快速方法。 閃回數據庫功能(可使用 FLASHBACK DATABASE 命令從 RMAN 和 SQL*Plus 啟用)與傳統的時間點恢復的效果類似。它允許您將數據庫返回到其近期的狀態。若要啟用閃回數據庫功能,用 DBA 配置閃回恢復區。快速恢復區是 Oracle 數據庫 10g 的壹個新特性,它為 Oracle 數據庫中所有與恢復相關的文件和操作提供了統壹的存儲位置。除了閃回數據庫日誌外,恢復區還包含存檔重做日誌和 RMAN 備份。有關快速恢復區的詳細信息,請參考 Oracle 備份和恢復文檔。 Oracle 在快速恢復區內自動創建和管理閃回日誌。因為快速恢復區配置了空間定額,閃回日誌要受制於這些磁盤空間限制。閃回日誌的大小區別很大,這取決於在給定的閃回日誌間隔期間數據庫更改的讀/寫速度。舊程序塊版本的副本被寫入到閃回日誌中。如果壹天之內更新了 10% 的數據庫程序塊,則 24 小時閃回日誌的大小約為您數據庫大小的十分之壹。如果將數據庫恢復到過去較早時期可能要求更多的磁盤空間,則 DBA 可能會動態地更改此磁盤定額。 閃回為 Data Guard 提供了易於使用的方法來糾正用戶錯誤。閃回數據庫既可用在主數據庫上又可用在備份數據庫上,可快速地將數據庫恢復到較早的時間點,從而避免用戶錯誤。同時,如果管理員決定故障切換到備用數據庫,但那些用戶錯誤已被應用於備用數據庫(例如,由於啟用了實時應用特性),則管理員只需將備用數據庫閃回到某個安全的時間點。啟用閃回數據庫的性能開銷不到 2%。您可能不希望犧牲任何生產數據庫的性能開銷,而是實現壹種平衡。如果能在數分鐘而不是數小時內恢復數據庫,則可避免公司上百萬美元的收益損失,您願意將 2% 的資源用於閃回數據庫嗎?啟用閃回數據庫功能有以下幾方面好處: 免去了恢復備份的時間。當數據庫因遇到災難性故障而關閉時,公司因無法做生意而導致大量收入損失。 消除了備用數據庫重做應用延遲。 閃回數據庫與 Data Guard 無縫集成。備用數據庫現在可以輕松快速閃回到過去的任意時間點,這樣在應用重做過程中就不需要延遲。 意外錯誤糾正。 閃回數據庫提供了 Oracle 數據庫的連續快照。數據庫可以回退到 SCN 或時間戳。 閃回表當發生人為錯誤或應用程序錯誤時,您可能想將壹個或多個表狀態恢復至故障發生以前的時間點。使用閃回表,DBA 能夠將壹個或壹組表快速輕松地聯機恢復到指定時間點。閃回表可在恢復表的同時自動保留其相關屬性(如當前索引、觸發器和限制),而無需 DBA 查找和恢復應用程序特有的屬性。閃回表緩解了執行更為復雜的時間點恢復操作的需求。以下命令將 ORDERS 和 ORDER_ITEMS 表閃回到 7 月 7 日下午 2:33。 FLASHBACK TABLE orders, order_items TO TIMESTAMP (JUL-07-2003, 02:33:00);和閃回查詢壹樣,閃回表也依靠撤銷數據來恢復表。因此撤銷數據必須可用,這樣閃回表才能成功。自動撤銷管理特性允許您使用 UNDO_RETENTION 初始化參數指定保留撤銷數據的時間。通過使用此參數並適當地規定撤銷表空間大小,DBA 能夠控制使用閃回表的情況下可修復表的回退時間長短。 DBA 可以使用閃回表特性快速地從人為錯誤中恢復,它還可以用作自助式修復工具以便從意外修改或刪除中恢復。應用程序開發人員可以將閃回表功能合並到他們定制的應用程序中。憑借基於時間點對象的恢復可用性、快速恢復和易用性,該工具相比於介質恢復提供更多的好處。閃回表聯機執行恢復操作 將指定表中的所有數據恢復到時間戳或 SCN 描述的先前的時間點。 自動恢復所有的表屬性(如索引、觸發器以及應用程序所必需的內容),這些應用程序利用閃回的表才能發揮作用。 在分布式環境中維護任何遠程狀態。例如,所有應用程序要求的表修改都被閃回。 按照約束規定保持數據完整性。Oracle 保留了所有從屬對象和參考的完整性。 即使在閃回操作以後,仍然能夠將其恢復到最初狀態。 閃回刪除回收站是壹個虛擬容器,所有被刪除的對象都駐留在這裏。在回收站中,這些對象占據與創建它們時所占據的相同空間。如果在 USERS 表空間中創建表 EMP,那麽刪除的表 EMP 保留在 USERS 表空間中。並不移動刪除的表和任壹相關對象(如索引、約束、嵌套表和其他相關對象),僅對它們進行重命名,使其前綴為 BIN$$。可以繼續訪問刪除表中的數據,甚至可以依據刪除表使用閃回查詢。在刪除回收站對象前,每個用戶對回收站對象都擁有相同的權利和權限。可以通過查詢新回收站視圖來查看刪除表。回收站中的對象將保留在數據庫中,直到刪除對象的所有者決定使用新清除命令永久性刪除這些對象。按用戶的定額對回收站中的對象計數。但閃回刪除是壹種非破壞性特性。如果發生下面的情況,將通過空間恢復過程自動清除回收站中的對象用戶創建新表或添加導致其超出定額的數據。 表空間需要擴展其文件大小,以適應創建/插入操作。 錯誤刪除了表?沒問題。使用閃回刪除快速撤銷刪除。 閃回查詢閃回查詢是隨 Oracle9i 壹起引入的,它提供了查看存在於以前的數據的能力。默認情況下,數據庫上的操作使用最近提交的可用數據。如果希望查詢過去某個時間的數據庫,那麽,可以使用閃回查詢特性進行此項操作。此特性可以指定時間或系統更改編號 (SCN),並使用提交的數據從對應時間中進行查詢。當使用自動撤銷管理時,閃回查詢機制最有效。 Oracle 數據庫將撤銷操作當作第壹等級的數據庫對象。撤銷操作具有持久性,可使數據庫系統繼續有效,也可導致數據庫系統崩潰或關閉。為獲取更佳性能,它還與其他數據庫對象分享數據庫緩沖存儲器。Oracle 數據庫使用超出事務處理提交範圍的撤銷操作,提供長期運行查詢的讀取壹致性,並從邏輯損壞中恢復。 Oracle 數據庫提供了直接指定為保留而進行的撤銷數量的方法。此系統自動回收過期的撤銷操作,以便為新事務生成撤銷提供空間。撤銷保留值的選擇取決於長期運行查詢的長度以及邏輯損壞的恢復需求。然而,用戶可以不選擇指定的撤銷保留,以及允許系統為指定的撤銷空間提供最佳保留。此最佳保留考慮到長期運行查詢以及從邏輯損壞中恢復的最佳可能範圍。並不保證默認的撤銷保留。如果用盡用於現行事務的過期撤銷,那麽,系統可以使用最早的未過期撤銷操作。 如果UNDO_RETENTION 設置為大於 5 天,那麽,Oraclee 數據庫 10g 第 1 版中的壹項新功能是可以查詢過去 5 天以前的數據。只要為撤銷表空間數據文件分配足夠的磁盤空間,那麽,Oracle 將維護壹段時間內的撤消操作。下面描述了確保數據庫可以使用依賴於撤銷操作的閃回查詢和其他閃回特性所需要的步驟:確保數據庫使用壹個撤銷表空間。將 UNDO_MANAGEMENT 初始化參數設置為自動指定。 將UNDO_RETENTION 初始化參數設置為壹個可以使撤銷操作保留足夠時間的值,從而可以及時成功返回您的最長查詢或者從人為錯誤中恢復。 為了保證未過期的撤銷不被覆蓋,設置撤銷表空間的 RETENTION GUARANTEE 子句。 閃回查詢的壹個獨有特性是可以查看過去的數據,然後正確選擇如何處理此信息。您可以進行分析,然後撤銷更改,或者捕獲更改的數據以供將來處理。閃回查詢機制非常靈活,可以用於很多場合。可用於:查詢過去存在的數據。 將當前數據與過去的數據進行比較。可以比較單獨行或進行更復雜的比較,如查找交集或合並。 恢復已刪除或更改的數據。 閃回版本查詢閃回版本查詢提供了審計表行以及檢索有關更改行事務信息的方法。它檢索所有提交的行版本,這些行位於或曾經位於發出查詢的時間和過去某壹時間點之間。它利用自動撤銷管理完成此項操作。 閃回版本查詢是 SQL 的擴展,可用於檢索指定表中不同行的版本,此表存在於特定時間段內。對於任壹指定的表,每次執行 COMMIT 語句時,都會創建壹個新行版本。閃回版本查詢返回存在於指定時間段內的每個行版本的行。使用 SELECT 語句的 VERSIONS BETWEEN 子句調用閃回版本查詢功能。 閃回版本查詢提供了新的附加列,這些列提供了有關行數據事務的詳細信息,此行數據允許 DBA 查明 Oracle 數據庫中數據更改的時間和方式。 VERSIONS_XID — 創建此行版本的事務 id VERSIONS_OPERATION — 創建此行版本的操作(如刪除、插入和更新) VERSIONS_STARTSCN — 此行版本首次中出現時的 SCN VERSIONS_ENDSCN — 此行版本首次進行更改時的 SCN。 閃回版本查詢是 DBA 運行分析和回答“這是怎麽發生的?”問題的強大工具。DBA 不僅可以運行手動分析,而且閃回版本查詢還是應用程序開發人員的強大工具。可以構建用於審計目的的自定義應用程序。並不是每個人都能夠真正解釋他/她的操作。 閃回事務查詢您可能會發現表中的數據不知何故被不正確地更改了。為了研究該更改,可使用多個閃回查詢及時查看指定點的行數據。更高效的方法是,使用閃回版本查詢特性查看壹定時間內對行進行的所有更改以及相關的事務 id。該特性允許將 VERSIONS BETWEEM 子句附加至 SELECT 語句,後者指定 SCN 或希望查看其間行值發生變化的時間戳範圍。 壹旦確定錯誤事務,就可使用閃回事務查詢特性識別該事務進行的其他更改,並請求撤銷 SQL 來沖銷這些更改。您可以通過 FLASHBACK_TRANSACTION_QUERY 視圖獲得事務歷史記錄和撤消 SQL。 如果需要將錯誤事務的結果倒退回去,可以手動執行撤銷 SQL 語句,從而可以輕松地從用戶或應用程序錯誤中恢復。閃回事務查詢可以提高對數據庫中問題的聯機診斷能力,並利於執行事務分析和審計。總結人為錯誤是導致系統故障的主要原因之壹。這些錯誤很難避免,而且在沒有事先規劃和使用正確技術的情況下尤其難以恢復。“正確”技術是:Oracle 數據庫 11g。為什麽犯錯誤只需幾秒,而恢復卻要花費數小時或數天?不應如此並且現在也不會如此。閃回通過只在更改數據上運行引發了恢復變革。壹條命令即可修復人為錯誤導致的損壞。閃回技術在去除了恢復的復雜性的同時,縮短了從難以預測的人為錯誤恢復的時間。
上一篇:小學美術作品總結下一篇:市場營銷專業畢業生論文3000字