本文介紹Oracle數據庫周期性采集SQL信息以及數據分析的方法。
前提條件
Oracle數據庫版本為10g、11g、12c。背景信息
周期性采集可以根據自定義的采集周期,持續采集Oracle的SQL信息,并對SQL信息自動合并。說明 周期性采集目前只在離線采集器中支持,線上采集暫未支持。您需要先采集Oracle數據庫的SQL信息,詳情操作請參見采集信息。
使用流程
- 采集SQL信息。說明 由于周期性采集目前只在離線采集器中支持,線上采集暫未支持。
- 分析SQL信息。說明 通過創建周期性采集項目,上傳數據文件,系統則會為您進行SQL信息自動合并與分析。詳情操作請參見分析信息 。
采集信息
- 下載采集器。
- 登錄數據管理DMS 5.0。
- 在頂部菜單欄中,選擇 。
- 在SQL周期性采集區域,單擊下載。
- 在資源下載頁面的數據庫采集器下載區域,單擊下載。
- 選擇數據庫采集器的版本,并同意協議,完成數據庫采集器的下載。說明
- 數據庫采集器運行環境要求:
- 數據庫采集器所在的機器網絡可連接Oracle源數據庫即可,無需安裝在源數據庫物理機上。
- 內存需達到6 GB以上,同時硬盤空間需滿足50 GB以上。
- 源庫結構采集時,對收集結果數據自動進行參數脫敏。
- 源庫結構采集時,自動監測目標庫負載。當負載超過系統設定閾值時,自動暫停采集;當負載恢復后繼續采集。
- 數據庫采集器運行環境要求:
- 登錄Oracle源數據庫,使用具有SYSDBA權限的賬號創建數據采集的臨時賬號并配置權限。說明
- 若您已有包含下面權限的賬號,請忽略此步驟,直接使用。
- 以下權限用于連接Oracle數據庫,收集相關信息并對結果數據脫敏導出。
- Oracle 10g、11g、12c(非CDB模式,創建LOCAL USER類型用戶)
--創建采集用戶eoa_user, 并設置密碼為eoaPASSW0RD create user eoa_user identified by "eoaPASSW0RD" default tablespace users; --授予查詢權限 grant connect,resource,select_catalog_role,select any dictionary to eoa_user; --授予DBMS_LOGMNR權限 --版本為Oracle 10g的數據庫需要先執行如下語句: CREATE OR REPLACE PUBLIC SYNONYM dbms_logmnr FOR sys.dbms_logmnr; grant execute on DBMS_LOGMNR to eoa_user; --授予DBMS_METADATA權限 grant execute on dbms_metadata to eoa_user; --授予查詢事務權限 grant select any transaction to eoa_user; --授予分析表權限 grant analyze any to eoa_user; --授予產生隨機編號權限 grant execute on dbms_random to eoa_user;
- Oracle 12c(CDB模式,需要連接到CDB,創建COMMON USER類型用戶)
create user c##eoa_user identified by "eoaPASSW0RD" default tablespace users; grant connect,resource,select_catalog_role,select any dictionary to c##eoa_user container=all; grant execute on DBMS_LOGMNR to c##eoa_user container=all; grant execute on dbms_metadata to c##eoa_user container=all; grant select any table to c##eoa_user container=all; grant select any transaction to c##eoa_user container=all; grant analyze any to c##eoa_user container=all; grant execute on dbms_random to c##eoa_user container=all; alter user c##eoa_user set container_data=all container=current;
- 啟動采集(在Windows環境下執行.bat;在Linux 環境下執行.sh,本文以Linux環境介紹如何進行數據采集)。
- Oracle 10g、11g
sh collect_10g_cycle.sh –h <ip> -u <username> -p <password> -d <service_name> -c <cron>
sh collect_11g_cycle.sh –h <ip> -u <username> -p <password> -d <service_name> -c <cron>
- Oracle 12c
sh collect_12c_cycle.sh –h <ip> -u <username> -p <password> -d <service_name> -s <sid> -c <cron>
說明 上述命令各參數解釋如下:- -h(必選):采集數據庫的IP地址。
- -u(必選):采集用戶。
- -p(必選):采集用戶的密碼。
- -d(必選): 采集數據庫的服務名。
- -s(僅Oracle 12c需要提供此參數):采集數據庫實例名。
- -c(必選):cron表達式,用來指定采集的周期性。格式為:
秒分時 日月周[年]
。
周期性采集會根據cron表達式配置的周期持續進行,為了幫助您理解,下面介紹一些常用的cron表達式示例。同時您也可以隨時可以停止采集(kill進程號)。
表達式 說明 0 */1 * * * ? 每隔1分鐘觸發一次。 0 0 5-15 * * ? 每天5:00~15:00整點觸發。 0 0/3 * * * ? 每隔3分鐘觸發一次。 0 0-5 14 * * ? 每天14:00~14:05期間每隔1分鐘觸發一次。 0 0/5 14 * * ? 每天14:00~14:55期間每隔5分鐘觸發一次。 0 0/5 14,18 * * ? 每天14:00~14:55和18:00~18:55兩個時間段內每5分鐘觸發一次。 0 0/30 9-17 * * ? 每天9:00~17:00內每半小時觸發一次。 0 0 10,14,16 * * ? 每天10:00、14:00和16:00觸發。 0 0 12 ? * WED 每周三12:00觸發。 0 0 17 ? * TUES,THUR,SAT 每周二、周四、周六17:00觸發。 0 10,44 14 ? 3 WED 每年3月的每周三的14:10和14:44觸發。 0 15 10 ? * MON-FRI 周一至周五的上午10:15觸發。 0 0 23 L * ? 每月最后一天23:00觸發。 0 15 10 L * ? 每月最后一天10:15觸發。 0 15 10 ? * 6L 每月最后一個周五10:15觸發。 0 15 10 * * ? 2021 2021年的每天10:15觸發。 0 15 10 ? * 6L 2021-2025 2021年~2025年的每月的最后一個周五上午10:15觸發。 0 15 10 ? * 6#3 每月的第三個周五10:15觸發。 - Oracle 10g、11g
- 導出采集結果。采集結束后,會提示您已生成數據包,日志文件如下:
[***] ****************************************************************** [***] * Collect Successfully! [***] * [***] * Complete the file packaging, the package result path is: [***] * ~rainmeter/out/data.zip ******************************************************************
查看分析信息
- 登錄數據管理DMS 5.0。
- 在頂部菜單欄中,選擇 。
- 在遷移實驗室頁面,單擊SQL周期性采集區域的詳情。
- 單擊創建項目。
- 在創建周期性采集項目面板,輸入項目名和數據庫類型,單擊上傳,將本地采集的out/data.zip上傳。
- 單擊創建。
- 單擊目標項目號右側操作列中的詳情,查看采集結果。說明 您可以點擊目標SQL的查看按鈕,查看具體SQL錯誤信息的分析情況。
文檔內容是否對您有幫助?