Roadmap PGA triggered the error ORA-04030

Case of a fault, the following error message 
ORA-04030: attempting to allocate 16,328 bytes (koh-kghu call, kollrsz) when the process is out of memory 

oerr see the error message, is the process not obtain enough memory, server process is consumed PGA, rather than the SGA 
[Oracle @ febdb ~] $ OERR ORA 04030 
04030, 00000, "OUT of   Process   Memory When Trying bytes to the allocate% S (% S,% S)" 
// * the Cause: the Operating System   Process Private Memory   WAS exhausted. 
// * Action: 
lack of PGA, the main idea to view the PGA, since statistics parameter values and examples workarea start, can be divided into four steps to deal with, the first step query parameter value, the second step implicit query parameter values, the third step query v $ pgastat statistics, the fourth step in front of the three-step analysis of the worth concluded 

the first step 

SQL> show parameter pga 
NAME                                 TYPE        VALUE 
------------------------------------ ----------- ------------------------------ 
pga_aggregate_target                 big integer 8G 

SQL> show parameter area_size 
NAME                                 TYPE        VALUE 
------------------------------------ ----------- ------------------------------ 
bitmap_merge_area_size               integer     1048576 
create_bitmap_area_size              integer     8388608 
hash_area_size                       integer     131072 
sort_area_size                       integer     65536 
workarea_size_policy                 string      AUTO 


The second step 
SQL> col NAME format a25 
SQL> col VALUE format a20 
SQL> col DESCRIPTION format a55 
SQL> set linesize 110 
SQL> select a.ksppinm name, b.ksppstvl value, a.ksppdesc description from x$ksppi a, x$ksppcv b where a.indx = b.indx and a.ksppinm like '%_pga_max%'; 
NAME            VALUE           DESCRIPTION 
--------------- --------------- -------------------------------------------------- 
_pga_max_size   1717985280      Maximum size of the PGA memory for one process 


SQL> select a.ksppinm name, b.ksppstvl value, a.ksppdesc description from x$ksppi a, x$ksppcv b where a.indx = b.indx and a.ksppinm like '%smm_max%'; 
NAME                 VALUE           DESCRIPTION 
-------------------- --------------- ------------------------------------------------------- 
_smm_max_size_static 838860          static maximum work area size in auto mode (serial) 
_smm_max_size        838860          maximum work area size in auto mode (serial) 

SQL> select a.ksppinm name, b.ksppstvl value, a.ksppdesc description from x$ksppi a, x$ksppcv b where a.indx = b.indx and a.ksppinm like '%smm_px%'; 
NAME                      VALUE           DESCRIPTION 
------------------------- --------------- ------------------------------------------------------- 
_smm_px_max_size_static   4194304         static maximum work area size in auto mode (global) 
_smm_px_max_size          4194304         maximum work area size in auto mode (global) 

PGA maximum value of a process, in this case is 1717985280B (_Pga_max_size in units B) 
In automatic mode, the maximum value of PGA work area of a process, in this case is 838860KB (_smm_max_size unit is  KB  , the value is generally 50% _pga_max_size of) 
In automatic mode, PGA maximum work area of the total value of all the processes, this case is 4194304KB (_smm_px_max_size unit is  KB  , the value is generally 50% PGA_AGGREGATE_TARGET parameters) 

Zhengzhou infertility hospital: http: //jbk.39.net/yiyuanzaixian/zztjyy//

third step 
SQL> col value format 9999999999999999 
SQL> col name format a40 
SQL> select * from v$pgastat where name in ('aggregate PGA target parameter','maximum PGA allocated','maximum PGA used for auto workareas','maximum PGA used for manual workareas','total PGA allocated','total PGA inuse','cache hit percentage') order by 1; 
NAME                                                 VALUE UNIT 
---------------------------------------- ----------------- ------------ 
aggregate PGA target parameter                  8589934592 bytes 
cache hit percentage                                    97 percent 
maximum PGA allocated                          29975256064 bytes 
maximum PGA used for auto workareas             3414564864 bytes 
maximum PGA used for manual workareas              2713600 bytes 
total PGA allocated                            15749543936 bytes 
total PGA inuse                                12480521216 bytes 

aggregate PGA target parameter 
Current value of the PGA_AGGREGATE_TARGET initialization parameter 
- The current parameter values ​​of the PGA, in this case the same as 8589934592bytes, and parameter values ​​pga_aggregate_target 
cache hit percentage 
A value of 100% means that all work areas executed by the system since instance startup have used an optimal amount of PGA memory. 
- less than 100% means sorting and other operations are not necessarily consumed by work areas are in the PGA complete, but work areas to go disks use a temporary table space, in this case 97% 
maximum PGA allocated 
Maximum number of bytes of PGA memory allocated at one time since instance startup 
maximum PGA has been reached  , this case is 29975256064bytes 
maximum PGA used for auto workareas   
Maximum amount of PGA memory consumed at one time by work areas running under the automatic memory management mode since instance startup 
- maximum work areas in the automatic mode has been reached, this case is 3414564864bytes 
maximum PGA used for manual workareas 
Maximum amount of PGA memory consumed at one time by work areas running under the manual memory management mode since instance startup. 
- maximum work in manual mode areas have achieved, this case is 2713600bytes 
total PGA allocated 
Current amount of PGA memory allocated by the instance. The Oracle Database attempts to keep this number below the value of the PGA_AGGREGATE_TARGET initialization parameter. However, it is possible for the PGA allocated to exceed that value by a small percentage and for a short period of time when the work area workload is increasing very rapidly or when PGA_AGGREGATE_TARGET is set to a small value. 
The current real value of PGA This case is 15749543936 bytes 
Oracle Database trying to keep that number at initialization parameter values ​​PGA_AGGREGATE_TARGET below. However, PGA with a smaller percentage distribution exceeds the value in a short time, when the workload is very fast growth in the work area, or when PGA_AGGREGATE_TARGET is set to a small value, it is possible. 

total PGA inuse   
Indicates how much PGA memory is currently consumed by work areas 
The current real value of the work areas  . This case is 12480521216bytes 

the fourth step 
According to the data above 1, 2, or workarea_size_policy analysis is inadequate PGA is set to AUTO the problem. 
If the PGA is insufficient, re-set the parameters pga_aggregate_target, use a larger value 
If the PGA is set large, or security error, then set parameter values ​​workarea_size_policy to MANUAL, then according to business settings * area_size values ​​for these parameters. 
- This case is obviously caused because of lack of PGA, PGA set the parameter value 20G solved.

Guess you like

Origin blog.51cto.com/14393782/2408531