問題定位:每天晚上十點的時候運行自動SQL優化的任務時報錯內存不足。
alert報錯:
Errors in file /u01/app/oracle/diag/rdbms/cpty/cpty/trace/cpty_j003_28000.trc (incident=28312):
ORA-04030: 在嘗試分配 432 字節 (kxs-heap-c,kprbalo temp memory) 時進程內存不足
Incident details in: /u01/app/oracle/diag/rdbms/cpty/cpty/incident/incdir_28312/cpty_j003_28000_i28312.trc
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
Errors in file /u01/app/oracle/diag/rdbms/cpty/cpty/trace/cpty_j003_28000.trc (incident=28313):
ORA-04030: 在嘗試分配 8168 字節 (kxs-heap-c,kdbmal allocation) 時進程內存不足
ORA-04030: 在嘗試分配 432 字節 (kxs-heap-c,kprbalo temp memory) 時進程內存不足
Incident details in: /u01/app/oracle/diag/rdbms/cpty/cpty/incident/incdir_28313/cpty_j003_28000_i28313.trc
解決:
適當增大pga,給sharepool、largerpool等設置一個最小值。
Mon Jan 07 08:30:49 2019
ALTER SYSTEM SET java_pool_size='100M' SCOPE=SPFILE;
ALTER SYSTEM SET large_pool_size='100M' SCOPE=SPFILE;
ALTER SYSTEM SET shared_pool_size='500M' SCOPE=SPFILE;
Mon Jan 07 08:31:26 2019
ALTER SYSTEM SET db_cache_size='1000M' SCOPE=SPFILE;
Mon Jan 07 08:32:03 2019
ALTER SYSTEM SET pga_aggregate_target='3000M' SCOPE=SPFILE;
內存自動管理的問題,建議不適用內存自動管理,設置sga_target=0.
永久解決關閉sql優化任務
關閉自動優化
BEGIN
dbms_auto_task_admin.disable(
client_name => 'sql tuning advisor',
operation => NULL,
window_name => NULL);
END;
/
開啟自動優化
BEGIN
dbms_auto_task_admin.enable(
client_name => 'sql tuning advisor',
operation => NULL,
window_name => NULL);
END;
/