oacle11g新特性數據庫重演(database replay)(1)

1.負載捕獲
    使用數據庫重演的第一步是捕獲負載,它包括記錄所有外部客戶端對服務器的請求。當捕獲開關開啓時,所有外部客戶端對服務器的請求都被跟蹤並保存在二進制文件當中,在文件系統中稱爲捕獲文件。這些文件平臺無關並可在不同系統中轉移。可指定捕獲負載的開始時間和持續時間,還有捕獲文件的保存位置。一旦開始捕獲,所有數據庫的外部調用都被記錄到文件。捕獲文件包含所有客戶端請求的相關信息,例如SQL文本、綁定值、事務信息,但不包含背景活動和數據庫調度作業。


2.分析和報表
    一旦負載被重演,就有報表提供,可以對負載捕獲和重演進行具體的分析了。報表摘要提供了負載捕獲和重演的基本信息,比如重演時遇到的錯誤和DML或SQL查詢返回的行數據錯誤。還提供一些統計數據的對比,例如在負載捕獲和重演間的DB time,平均活動會話數和用戶調用數。對於更高級的分析,提供了AWR(自動負載倉庫)對負載捕獲和重演進行更加詳細的統計比較。由於非常詳細,可以找出負載捕獲和重演之間的差別。
 對應用級的確認,可以考慮開發一個腳本來評估整個重演的成效。例如在負載捕獲期間處理了10000個訂單,也應該在重演中處理數量相當的訂單。

3.捕獲數據庫負載
    oracle捕獲的主要工具是Oracle Enterprise Manager, 假如沒有也可以用API來捕獲。
>捕獲數據庫負載的前提
負載重演之前重演系統上應用數據的狀態要和重演開始時捕獲系統上的狀態一樣。要實現一樣可以有一下一些方法。
1.恢復管理器(RMAN) duplicate命令  請看oracle database backup and recovery user’s guide for information about duplicating a database using RMAN
2.snapshot standby  請看Oracle data guard concepts and administration for information about managing snapshot standby databases
3.data pump import and export
這樣就可以把重演系統上的數據庫恢復到當負載捕獲開始時的應用狀態。
>負載捕獲選項
1.重啓數據庫  非必需的,只是用來確保進行的事務完成提交或者回滾。以免負載捕獲不完整。重啓時間在上班之前,沒有任何用戶連接的時候,爲了避免重啓後馬上有人連接數據庫,以限制模式啓動,這個時候只有SYSTEM用戶可以登錄並開啓負載捕獲,一旦開啓,服務器自動轉爲不受限制模式。
任何時間只有一個負載捕獲能夠運行,對oracle real application cluster來說,負載捕獲是對於整個數據庫而言的。爲了確保開始捕獲負載之前的乾淨的狀態,所有的實例都要被重啓。可以關閉所有實例,重啓一個實例,開始負載捕獲,在重啓其他的實例。
2.定義負載過濾器
負載捕獲缺省記錄所有用戶的會話,可以用負載過濾器從負載中指定包含或者排除的用戶會話。包含的會在負載中捕獲,排除的則相反。但是不能同時使用兩種過濾。
3.設置捕獲目錄
在負載捕獲開始之前就要設置好捕獲目錄,確保目錄爲空並且有足夠的磁盤空間,當空間不夠時捕獲自動停止。
>限制、侷限
下列客戶端請求的類型在負載中不會被捕獲:
1.利用工具比如SQL*Loader 從外部文件直接路徑導入數據
2.共享服務器請求(oracle MTS)
3.Oracle Streams
4.高級Replication 流
5.基於高級查詢的非PL/SQL
6.Flashback 查詢
7.基於對象導航的Oracle Call Interface
8.非基於SQL的對象訪問
9.分佈式事務(任何被捕獲的分佈式事務將作爲本地事務重演)
10.遠程DESCRIBE和COMMIT操作。

>用企業管理器捕獲
>用企業管理器監控負載捕獲
>使用API捕獲負載
>用視圖監控負載捕獲
DBA_WORKLOAD_CAPTURES DBA_WORKLOAD_FILTERS

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章