本文解釋一些數據庫采集問題。
- 采集對數據庫壓力大嗎?
- 采集過程全部都是讀取操作,唯一消耗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=''
)。
- 如何在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 數據庫運行環境設定。