全部產品
Search
文件中心

Data Transmission Service:SQL周期性採集

更新時間:Jul 06, 2024

本文介紹Oracle資料庫周期性採集SQL資訊以及資料分析的方法。

前提條件

Oracle資料庫版本為10g、11g、12c。

背景資訊

周期性採集可以根據自訂的採集周期,持續採集Oracle的SQL資訊,並對SQL資訊自動合并。
說明 周期性採集目前只在離線採集器中支援,線上採集暫未支援。您需要先採集Oracle資料庫的SQL資訊,詳情操作請參見採集資訊

使用流程

  1. 採集SQL資訊。
    說明 由於周期性採集目前只在離線採集器中支援,線上採集暫未支援。
  2. 分析SQL資訊。
    說明 通過建立周期性採集專案,上傳資料檔案,系統則會為您進行SQL資訊自動合并與分析。詳情操作請參見分析資訊

採集資訊

  1. 下載採集器。
    1. 登入Data Management 5.0
    2. 在頂部功能表列中,選擇整合與開發(DTS) > 異構資料庫遷移(ADAM) > 遷移實驗室
    3. SQL周期性採集地區,單擊下載
    4. 資源下載頁面的資料庫採集器下載地區,單擊下載
    5. 選擇資料庫採集器的版本,並同意協議,完成資料庫採集器的下載。
      說明
      • 資料庫採集器運行環境要求:
        • 資料庫採集器所在的機器網路可串連Oracle來源資料庫即可,無需安裝在來源資料庫物理機上。
        • 記憶體需達到6 GB以上,同時硬碟空間需滿足50 GB以上。
      • 源庫結構採集時,對收集結果資料自動進行參數脫敏。
      • 源庫結構採集時,自動監測目標庫負載。當負載超過系統設定閾值時,自動暫停採集;當負載恢複後繼續採集。
  2. 登入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;
  3. 啟動採集(在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>
      運行結果1
    • Oracle 12c
      sh collect_12c_cycle.sh –h <ip> -u <username> -p <password> -d <service_name> -s <sid> -c <cron>
      yxjg2
    說明 上述命令各參數解釋如下:
    • -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 * * ? 20212021年的每天10:15觸發。
    0 15 10 ? * 6L 2021-20252021年~2025年的每月的最後一個周五上午10:15觸發。
    0 15 10 ? * 6#3每月的第三個周五10:15觸發。
  4. 匯出採集結果。
    採集結束後,會提示您已產生資料包,記錄檔如下:
    [***] ******************************************************************
    [***] *     Collect Successfully!
    [***] *
    [***] * Complete the file packaging, the package result path is: 
    [***] *        ~rainmeter/out/data.zip ******************************************************************

查看分析資訊

  1. 登入Data Management 5.0
  2. 在頂部功能表列中,選擇整合與開發(DTS) > 異構資料庫遷移(ADAM) > 遷移實驗室
  3. 遷移實驗室頁面,單擊SQL周期性採集地區的詳情
  4. 單擊建立專案
  5. 建立周期性採集專案面板,輸入專案名和資料庫類型,單擊上傳,將本地採集的out/data.zip上傳。
  6. 單擊建立
  7. 單擊目標專案號右側操作列中的詳情,查看採集結果。
    說明 您可以點擊目標SQL的查看按鈕,查看具體SQL錯誤資訊的分析情況。