本文解釋一些資料庫採集問題。
採集對資料庫壓力大嗎?
- 採集過程全部都是讀取操作,唯一消耗CPU資源的操作來自於getddl操作,一般壓力都很小。但為了採集順利進行,建議在業務低峰期執行,否則容易出現Socket Timeout的逾時錯誤(採集sql無法執行完成),導致必須重新採集。
採集的資料量大嗎?主要採集哪些內容?
- 採集主要收集資料庫本身記錄的一些統計資訊,主要的資料量來自資料庫物件的DDL和記錄的歷史SQL文本資訊,所有大小取決於客戶的對象數量、大小和SQL文字大小,一般都不會超過1G。
終端提示“ connection to database fail, please check connection parameters ”如何處理?
- 請查看資料庫使用者名稱(-u)、密碼(-p )、連接埠號碼(-P)、服務名(-d)是否正確。
終端提示“ TNS:listener does not currently know of service requested in connect descriptor"如何處理?
- 請查看串連參數中的-d 參數是否為ServiceName。
機器本地安裝有 jdk(版本低於 1.8),造成啟動失敗?
- 採集端運行時會優先選擇本地的 jdk 運行,如果 jdk 低於 1.8 版本會提示版本不支援, 請將運行指令碼 collect_.sh 中 JAVA_PATH 強制指定為安裝目錄 jdk (將
JAVA_PATH=`which java`
換成JAVA_PATH=''
)。
- 採集端運行時會優先選擇本地的 jdk 運行,如果 jdk 低於 1.8 版本會提示版本不支援, 請將運行指令碼 collect_.sh 中 JAVA_PATH 強制指定為安裝目錄 jdk (將
如何在Mac OS上面運行採集器?
- 需要本地自行安裝 jdk 1.8 以上版本 jre,下載Linux版本採集端,運行命令即可。
採集結果中index對象數量不一致?
- Oracle 資料庫中的 Unique Index 與 Primary Index 對象合并至 Table 對象的 DDL 中, 不單獨展示。
Oracle express版本採集少sqltext 資訊?
- 需要在資料庫上執行:
alter system set control_management_pack_access="DIAGNOSTIC+TUNING";exec dbms_workload_repository.create_snapshot();
開啟此參數不用重啟 Oracle 資料庫。然後再開始採集即可。
- 需要在資料庫上執行:
終端提示“ insufficient account permission, please refer to user guide and re-configure account ”如何處理?
- 請確認設定資料庫採集帳號時許可權是否齊全,或重新授權採集帳號。
終端提示“ GC overhead limit exceeded ”如何處理?
- 擴大採集器的實體記憶體,並調整啟動指令碼中的JVM_OPTIONS參數為更大啟動記憶體(-Xmx16g )。
如何在 Mac OS / Linux 上面查看採集結果中的大檔案?
- 將大檔案拷貝到一個臨時目錄下,使用
split -b 10m eoa_tmp_objects_ext.csv
命令將大檔案切分成小檔案分別查看(內容與大檔案一致)即可。其中,小檔案以 xaa / xab 等檔案名稱存在同級目錄下。
- 將大檔案拷貝到一個臨時目錄下,使用
終端提示“ transaction log is not configured, please refer to FAQ and modify log configuration ”如何處理?(開機記錄有風險,操作需謹慎)。
- 設定歸檔檔案存放路徑,根據 Oracle 資料庫運行環境設定。
alter system set log_archive_dest_1='location=<file_path>';
- 關閉資料庫並啟動到 mount 狀態(在允許的情況下)。
shutdown immediate startup mount
- 設定資料庫歸檔模式。
alter database archivelog;
- 開啟資料庫。
alter database open;
- 驗證 supplemental log data 是否開啟。
select t.SUPPLEMENTAL_LOG_DATA_MIN from v$database t;
如果傳回值為 NO(未開啟),則執行:
alter database add supplemental log data;
- 設定歸檔檔案存放路徑,根據 Oracle 資料庫運行環境設定。