Oracle 12.2新特性掌上手冊 - 第六卷 ADG的性能與診斷
編輯手記:在Oracle 12.2中,ADG有許多驚人的改進,通過ADG standby數據庫的性能數據收集和診斷、快照standby數據庫的應用,以及實時的數據庫操作監控的實現,能夠根據用戶需求相協調來提高DBA效率,從而為業務應用程序提供更好的服務質量。
1、Oracle Data Guard Support for Oracle Diagnostics Pack(Oracle DG 提供診斷包的支持)
Oracle診斷包可以與以read-only的ADG standby數據庫一起使用。能夠將性能數據捕獲到ADG standby數據庫的AWR報告中,並對AWR數據運行自動數據庫診斷監視器(ADDM)分析。
此功能可以對在ADG standby數據庫上執行的隻讀工作負載進行性能調優。
從Oracle 12.2開始,可以為ADG standby數據庫捕獲AWR數據。此功能可以分析ADG standby數據庫的任何性能相關問題。
知識補充:
ADG standby數據庫的AWR快照稱為遠程快照。稱為目標的數據庫節點負責存儲從遠程ADG standby數據庫節點(稱為源)收集的快照。目標可以是ADG主數據庫或非ADG數據庫。如果目標是ADG主數據庫,則它也是源數據庫,其快照是本地快照。
實現該功能需要滿足以下兩個條件:
源通過唯一的名稱或源名稱識別,通過該唯一名稱或源名稱對目的地是已知的。可以在配置期間為目標節點或源節點分配名稱。否則,初始化參數DB_UNIQUE_NAME的值被默認指定為節點的名稱。
每個源必須具有兩個DBlink,目標到源數據庫DBlink和源到目標數據庫DBlink。在ADG部署期間為每個源配置這些DBlink。在某些ADG事件(例如故障轉移,切換,主機添加和刪除)之後,必須手動重新配置這些DBlink,以便數據庫應用程序在這些事件後繼續正常運行。
可以以預定的時間間隔自動或手動地拍攝遠程快照。遠程快照始終由目標節點啟動。目標啟動快照創建存儲過程後,源使用數據庫鏈接將其快照數據推送到目標。可以使用AWR報告,Oracle數據庫導入和導出功能以及用戶定義的查詢來訪問存儲在目標上的快照數據或AWR數據。自動數據庫診斷監視器(ADDM)應用程序可以使用AWR數據來分析任何數據庫性能相關的問題。
2、Active Data Guard Support for SQL Tuning Advisor(支持SQL Tuning Advisor的ADG)
SQL Tuning Advisor已得到增強,因此可以在一個數據庫上啟動調整,但實際的調整過程在不同的數據庫上遠程執行。這允許DBA將primary數據庫工作負載的調優卸載到ADG standby數據庫,並在ADG 自身上調整ADG SQL工作負載。
工作原理如下:
當將primary數據庫工作負載的SQL調整卸載到ADG standby數據庫時,SQL調整過程從primary數據庫啟動,但是調整過程在ADG standby數據庫上遠程執行,並且結果將寫回primary數據庫數據庫。調整ADG工作負載時,整個SQL調整過程在ADG standby數據庫上本地執行,同時保持數據庫為read-only狀態。這是通過從primary數據庫的DBlink接收集所需的信息並將任何數據庫狀態更改(例如SQL配置文件實現)寫回primary數據庫來實現的。在primary數據庫上實施的SQL配置文件建議將使用redo應用機製應用於ADG standby數據庫。
SQL Tuning Advisor的遠程SQL調優功能支持調整ADG工作負載,並將primary數據庫工作負載的調整卸載到ADG standby數據庫。 此功能的業務優勢如下:
通過支持應用程序調整來提高Active Data Guard數據庫的可管理性。
通過利用Active Data Guard上的可用資源提高主數據庫工作負載調整的投資回報率。
改進了Active Data Guard和主數據庫工作負載的應用程序性能。
提高了苛刻應用的讀取性能
靈活啟動SQL Tuning Advisor並將結果遠程存儲在不同的數據庫中。
當與SQL Performance Analyzer一起使用時,支持端到端調整和測試工作流程。
在Active Data Guard環境中,SQL Tuning Advisor可以調整主數據庫上的備用工作負載,通過DBlink,可以在一個數據庫上發出SQL Tuning Advisor語句,但在不同的數據庫上執行語句。
在某些情況下,standby數據庫可以承擔報告角色。 standby數據庫可以有自己的查詢工作負載,其中一些可能需要調整。 在這種情況下,通過在standby數據庫上發出每個調整語句來調整自身數據庫工作負載,但SQL Tuning Advisor通過使用standby數據庫到primary數據庫DBlink在primary數據庫上執行其分析。
為調整主數據庫上的standby數據庫工作負載,以下是必須執行的任務(任務必須按照給定的順序在備用數據庫中執行,使用DBMS_SQLTUNE PL / SQL包) :
1、執行DBMS_SQLTUNE.CREATE_TUNING_TASK語句以從主數據庫獲取創建任務所需的數據。因為standby數據庫是隻讀數據庫,所以有關任務的數據將遠程寫入primary數據庫。在此步驟中,需要DBlink參數寫入primary數據庫。
2、執行DBMS_SQLTUNE.EXECUTE_TUNING_TASK語句。最初,從遠程primary數據庫獲取執行任務所需的數據。執行調諧分析過程以找到可能的建議。因為standby數據庫是隻讀數據庫,所以當結果可用時,它們將遠程存儲在primary數據庫中。
3、執行DBMS_SQLTUNE.REPORT_TUNING_TASK語句。構建報告所需的數據遠程存儲在primary數據庫中。數據從主機遠程讀取,並在standby數據庫本地構建。
4、執行DBMS_SQLTUNE.ACCEPT_SQL_PROFILE語句。配置文件數據將寫入遠程primary數據庫,因為standby數據庫是隻讀的。
注:執行以上任務,必須要保證SQL配置文件在standby數據庫上使用重做應用程序可用。
快照standby數據庫是完全可更新的standby數據庫,它接收並歸檔從primary數據庫獲得的redo數據,但不會應用日誌。在將快照standby數據庫轉換回物理standby數據庫後,隻有在丟棄快照standby數據庫的所有本地更新後,才能應用從preimary數據庫接收的redo數據。
快照standby數據庫通常隨著時間的推移與其primary數據庫差別變大,因為來自primary數據庫的redo數據未應用。快照standby數據庫的本地更新更會導致額外的分歧。然而,primary數據庫中的數據受到完全保護,因為快照standby數據庫可以隨時轉換回物理standby數據庫,然後應用從primary數據庫接收的redo數據。
快照standby數據庫提供與物理standby數據庫類似的災難恢複和數據保護優勢。快照standby數據庫最適用於具有primary數據庫的臨時可更新快照的情況,增加從primary數據庫故障恢複的時間。
1、將物理standby數據庫轉換為快照standby數據庫
執行以下步驟將物理備用數據庫轉換為快照備用數據庫:
如果redo日誌處於active狀態,則應用。
確保數據庫以mount狀態打開。
確保已配置快速恢複區, 不用啟用閃回功能。
發出以下SQL語句以執行轉換:SQL> ALTER DATABASE CONVERT TO SNAPSHOT STANDBY;
通過發出以下SQL語句以讀/寫模式打開快照standby數據庫:SQL> ALTER DATABASE OPEN READ WRITE;
快照standby數據庫可以以讀寫模式打開,並且是完全可更新的。
快照standby數據庫具有以下特征:
快照standby數據庫不能是切換或故障轉移的目標。 在執行角色轉換之前,必須先將快照standby數據庫轉換回物理standby數據庫。
快照standby數據庫不能是最大保護Oracle Data Guard配置中唯一的standby數據庫。
注意:閃回數據庫用於將快照standby數據庫轉換回物理standby數據庫。 使用閃回數據庫技術無法撤消的任何操作都會阻止快照standby數據庫轉換回物理standby數據庫。
3、將快照Standby數據庫轉換為物理Standby數據庫執行以下步驟將快照備用數據庫轉換為物理備用數據庫:
1、在Oracle Real Applications集群(Oracle RAC)數據庫上,關閉除一個實例之外的所有實例。
2、確保數據庫已裝入,但未打開。
3、發出以下SQL語句以執行轉換:
SQL> ALTER DATABASE CONVERT TO PHYSICAL STANDBY;
3、SQL Performance Analyzer and SQL Tuning Sets Enhancements
(SQL性能分析器和SQL調優集增強功能)
SQL性能分析器(SPA)增強了提供三個新的任務參數:
EXECUTE_FULLDML_TRIGGERS:使用此參數可以啟用或禁用在FULLDML模式下運行SPA試用時遞歸觸發的數據庫觸發器。
EXECUTE_WITH_FIXED_DATE:在SPA試用中使用此參數為引用SYSDATE函數的SQL設置固定日期。
NUM_ROWS_TO_FETCH:此參數允許您限製SQL語句根據優化程序模式設置獲取的行數。
SQL調優集(STS)增強如下:
通過顯式使用DBMS_SQLTUNE PL / SQL包的start_capture和stop_capture API來啟動和停止STS捕獲。
增強了STS捕獲,以支持跨所有Oracle Real Application Cluster(Oracle RAC)實例的SQL工作負載捕獲。
STS捕獲現在包括特定於Exadata,SQL監視和內存數據庫的其他統計信息。
STS捕獲支持用於報告在備用數據庫或活動Oracle Data Guard數據庫上運行的工作負載。
這些增強功能可以準確地診斷性能問題,改進Oracle服務質量管理,並以最低的風險和工作量進行更好的質量測試。 這也提高了係統性能和可靠性,降低了整體管理成本。
4、Monitoring Real-Time Database Operations(監控實時的數據庫操作)
實時數據庫操作(DBOP)監視功能有顯著增強:
動態和外部啟動和停止DBOP,使我們能夠通過指定特定會話的會話標識符和序列號,從數據庫中的任何會話啟動和停止DBOP。
DBOP持久性和比較:DBOP監視的執行自動保留到AWR,可以使用它們做offline和曆史性能分析。可以比較多個相同DBOP的運行,以了解某些操作花費更長時間的原因。
DBOP報告和趨勢分析:增強報告現在包括在同一DBOP下的SQL和PL / SQL執行詳細信息。隨著時間的推移對DBOP的多次運行進行分析,可以更好地了解特定工作負載隨時間的變化。
多會話DBOP支持:這對於監視在多個會話上運行的SQL或PL / SQL非常有用,這在提取,轉換和加載(ETL)任務和批處理作業中很常見。
這些DBOP增強功能通過將業務操作監視與最終用戶需求相協調來提高DBA效率,從而為業務應用程序提供更好的服務質量。
文章轉自數據和雲公眾號,原文鏈接
最後更新:2017-07-18 10:33:43