Starting with 12.2, if pga_aggregate_limit parameter is set to a value smaller than 2G, the instance cannot be started due to below error:
SQL> startup
ORA-01078: failure in processing system parameters
ORA-00093: pga_aggregate_limit must be between 2048M and 100000G
RAC instance startup fails with error ORA-00093 ORA-01078.
Example
ORA-00093: pga_aggregate_limit must be between 5500M and 100000G
ORA-01078: failure in processing system parameters
The workaround is to manually set pga_aggregate_limit larger than 2G.
SQL> alter system set pga_aggregate_limit = 2G;
Check and take note of current database configuration by 'srvctl config database -db
Example
srvctl config database -db orcl
Database unique name: orcl
Database name: orcl
Oracle home: /u01/app/oracle/product/21.3.0
Oracle user: oracle
Spfile: +DATA/ORCL/PARAMETERFILE/spfile.280.1083267531
Password file: +DATA/ORCL/PASSWORD/pwdorcl.264.1083264595
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools:
Disk Groups: DATA
...
Try login to another instance.
If login is successful, descrease PROCESSES or increase PGA_AGGREGATE_LIMIT value for the failed instance.
Example: Assuming the failed instance name is 'orcl1'
alter system set pga_aggregate_limit=5800m scope=spfile sid='orcl1' --加不加这个都可以
Restart the failed instance.
If you cannot login to other RAC instance(s), then perform the following:
1. Open the instance alert log and move to the last successful startup time,
extract 'System parameters with non-default values' to a text init file.
This should contain a lower PROCESSES value.
Modify or add the following to file:
*.cluster_database=true
*.cluster_database_instances=
Note: cluster_database_instances is desupported in Oracle Database 21c.--19C R20 also
Example with partial parameters
orcl1.instance_number=1
orcl2.instance_number=2
orcl1.thread=1
orcl2.thread=2
*.cluster_database=true
*.cluster_database_instances=2 <--- For versions prior to 21c
orcl1.undo_tablespace='UNDOTBS1'
orcl2.undo_tablespace='UNDOTBS2'
2. Startup the instance with the text init file
3. Create spfile '+
4. Shutdown instance
5. From 'srvctl config database -db '
Example
srvctl config database -db orcl
Database unique name: orcl
Database name: orcl
Oracle home: /u01/app/oracle/product/21.3.0
Oracle user: oracle
Spfile: +DATA/ORCL/PARAMETERFILE/spfile.297.1100014747
...
6. Run srvctl start database -db
------------测试
[oracle@rac1 tmp]$ srvctl stop database -d cdb
[oracle@rac1 tmp]$ srvctl start database -d cdb
[oracle@rac1 tmp]$ s
SQL> alter system set pga_aggregate_limit=2G scope=spfile;
[oracle@rac1 tmp]$ srvctl stop database -d cdb
[oracle@rac1 tmp]$ srvctl start database -d cdb
PRCR-1079 : Failed to start resource ora.cdb.db
CRS-5017: The resource action "ora.cdb.db start" encountered the following error:
ORA-01078: failure in processing system parameters
. For details refer to "(:CLSN00107:)" in "/u01/app/grid/diag/crs/rac1/crs/trace/crsd_oraagent_oracle.trc".
CRS-5017: The resource action "ora.cdb.db start" encountered the following error:
ORA-01078: failure in processing system parameters
. For details refer to "(:CLSN00107:)" in "/u01/app/grid/diag/crs/rac2/crs/trace/crsd_oraagent_oracle.trc".
CRS-2674: Start of 'ora.cdb.db' on 'rac1' failed
CRS-2632: There are no more servers to try to place resource 'ora.cdb.db' on that would satisfy its placement policy
CRS-5017: The resource action "ora.cdb.db start" encountered the following error:
ORA-01078: failure in processing system parameters
. For details refer to "(:CLSN00107:)" in "/u01/app/grid/diag/crs/rac3/crs/trace/crsd_oraagent_oracle.trc".
CRS-2674: Start of 'ora.cdb.db' on 'rac2' failed
CRS-2674: Start of 'ora.cdb.db' on 'rac3' failed
[oracle@rac1 tmp]$ s
SQL*Plus: Release 19.0.0.0.0 - Production on Sun Jan 7 17:21:55 2024
Version 19.20.0.0.0
Copyright (c) 1982, 2022, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup force;
ORA-00093: pga_aggregate_limit must be between 5000M and 100000G
ORA-01078: failure in processing system parameters
SQL> show parameters spfile;
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
-----------------起不来 起不来 完全起不来
SQL> show parameters spfile;
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
[oracle@rac1 tmp]$ srvctl config database -d cdb
Database unique name: cdb
Database name: cdb
Oracle home: /u01/app/oracle/product/19.0.0/db_1
Oracle user: oracle
Spfile: +DATA/CDB/PARAMETERFILE/spfile.360.1157600503
Password file: +DATA/CDB/PASSWORD/pwdcdb.258.1148478551
Domain: cj.com
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools:
Disk Groups: DATA
Mount point paths:
Services: srv_rman
Type: RAC
Start concurrency:
Stop concurrency:
OSDBA group: dba
OSOPER group: oper
Database instances: cdb1,cdb2,cdb3
Configured nodes: rac1,rac2,rac3
CSS critical: no
CPU count: 0
Memory target: 0
Maximum memory: 0
Default network number for database services:
Database is administrator managed
[oracle@rac1 tmp]$ s
SQL*Plus: Release 19.0.0.0.0 - Production on Sun Jan 7 17:23:19 2024
Version 19.20.0.0.0
Copyright (c) 1982, 2022, Oracle. All rights reserved.
Connected to an idle instance.
SQL> create pfile='/tmp/pfile' from spfile;
SQL> create pfile='/tmp/pfile' from spfile;
File created.
SQL> exit
Disconnected
[oracle@rac1 tmp]$ vi /tmp/pfile----------------------spfile没有指定位置,不对的
SQL> create pfile='/tmp/pfile' from spfile='+DATA/CDB/PARAMETERFILE/spfile.360.1157600503';
File created.
SQL> exit
Disconnected
[oracle@rac1 tmp]$ vi /tmp/pfile
[oracle@rac1 tmp]$ s
SQL> startup pfile='/tmp/pfile';
ORACLE instance started.
Total System Global Area 1048573744 bytes
Fixed Size 9172784 bytes
Variable Size 620756992 bytes
Database Buffers 411041792 bytes
Redo Buffers 7602176 bytes
Database mounted.
Database opened.
SQL> create spfile='+data' from pfile;
File created.
SQL> startup force;
ORA-00093: pga_aggregate_limit must be between 5000M and 100000G
ORA-01078: failure in processing system parameters
SQL> create spfile='+data' from pfile='/tmp/pfile';
create spfile='+data' from pfile='/tmp/pfile'
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel
Process ID: 0
Session ID: 417 Serial number: 2613
SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.20.0.0.0
[oracle@rac1 tmp]$ s
SQL*Plus: Release 19.0.0.0.0 - Production on Sun Jan 7 17:27:14 2024
Version 19.20.0.0.0
Copyright (c) 1982, 2022, Oracle. All rights reserved.
Connected to an idle instance.
SQL> create spfile='+data' from pfile='/tmp/pfile';
create spfile='+data' from pfile='/tmp/pfile'
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel
Process ID: 0
Session ID: 0 Serial number: 0
SQL> startup pfile='/tmp/pfile';
SP2-0642: SQL*Plus internal error state 2133, context 3114:0:0
Unsafe to proceed
ORA-03114: not connected to ORACLE
SQL> startup pfile='/tmp/pfile';
SP2-0642: SQL*Plus internal error state 2133, context 3114:0:0
Unsafe to proceed
ORA-03114: not connected to ORACLE
SQL> exit
Disconnected
[oracle@rac1 tmp]$ s
SQL*Plus: Release 19.0.0.0.0 - Production on Sun Jan 7 17:27:35 2024
Version 19.20.0.0.0
Copyright (c) 1982, 2022, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup pfile='/tmp/pfile';
ORACLE instance started.
Total System Global Area 1048573744 bytes
Fixed Size 9172784 bytes
Variable Size 620756992 bytes
Database Buffers 411041792 bytes
Redo Buffers 7602176 bytes
Database mounted.
Database opened.
SQL> create spfile='+data' from pfile='/tmp/pfile';---不能偷懒,否则如上!!
注意spfile='+data'不需要全路径,这个命令后自动创建spfile并修改OCR
SQL> show parameters spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string +DATA/CDB/PARAMETERFILE/spfile
.364.1157603285
[oracle@rac1 tmp]$ srvctl config database -d cdb
Database unique name: cdb
Database name: cdb
Oracle home: /u01/app/oracle/product/19.0.0/db_1
Oracle user: oracle
Spfile: +DATA/CDB/PARAMETERFILE/spfile.364.1157603285
File created.
SQL> startup force
ORACLE instance started.
Total System Global Area 1048573744 bytes
Fixed Size 9172784 bytes
Variable Size 620756992 bytes
Database Buffers 411041792 bytes
Redo Buffers 7602176 bytes
Database mounted.
Database opened.
SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.20.0.0.0
[oracle@rac1 tmp]$ srvctl stop database -d cdb
srvctl start database -d cdb
[oracle@rac1 tmp]$ srvctl start database -d cdb
[oracle@rac1 tmp]$ s
SQL*Plus: Release 19.0.0.0.0 - Production on Sun Jan 7 17:30:59 2024
Version 19.20.0.0.0
Copyright (c) 1982, 2022, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.20.0.0.0
SQL> show parameters pga;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_limit big integer 5G
pga_aggregate_target big integer 755M
SQL> show spparameters pga;
SID NAME TYPE VALUE
-------- ----------------------------- ----------- ----------------------------
* pga_aggregate_limit big integer 5G
* pga_aggregate_target big integer 755M
SQL>
1.---------------------------
[oracle@rac1 tmp]$ s
SQL> show parameters pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_limit big integer 5000M
pga_aggregate_target big integer 755M
SQL> alter system set pga_aggregate_limit=2G;
alter system set pga_aggregate_limit=2G
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-00093: pga_aggregate_limit must be between 5000M and 100000G
SQL> alter system set pga_aggregate_limit=2G scope=spfile;----强制改
System altered.
SQL> startup force
ORA-00093: pga_aggregate_limit must be between 5000M and 100000G
ORA-01078: failure in processing system parameters
SQL> startup
ORA-00093: pga_aggregate_limit must be between 5000M and 100000G
ORA-01078: failure in processing system parameters
SQL> show sga;
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 448 Serial number: 14721
SQL> startup force;
ORA-00093: pga_aggregate_limit must be between 5000M and 100000G
ORA-01078: failure in processing system parameters
SQL> exit
Disconnected
------RAC2上改-----
SQL> alter system set pga_aggregate_limit=5G sid='cdb1';
[oracle@rac1 tmp]$ s
SQL*Plus: Release 19.0.0.0.0 - Production on Sun Jan 7 16:55:07 2024
Version 19.20.0.0.0
Copyright (c) 1982, 2022, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 1048573744 bytes
Fixed Size 9172784 bytes
Variable Size 620756992 bytes
Database Buffers 411041792 bytes
Redo Buffers 7602176 bytes
Database mounted.
Database opened.
SQL> show parameters pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_limit big integer 5G
pga_aggregate_target big integer 755M
SQL>
2.------------------------不加sid的 alter system 不影响本node,影响别的node---
[oracle@rac1 tmp]$ s
SQL*Plus: Release 19.0.0.0.0 - Production on Sun Jan 7 17:04:04 2024
Version 19.20.0.0.0
Copyright (c) 1982, 2022, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.20.0.0.0
SQL> alter system set pga_aggregate_limit=2G scope=spfile;
SQL> show spparameters pga
SID NAME TYPE VALUE
-------- ----------------------------- ----------- ----------------------------
* pga_aggregate_limit big integer 2G
cdb1 pga_aggregate_limit big integer 5G
* pga_aggregate_target big integer 755M
SQL>
SQL> show parameters pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_limit big integer 5G
pga_aggregate_target big integer 755M
SQL>
SQL> startup force;
ORACLE instance started.
Total System Global Area 1048573744 bytes
Fixed Size 9172784 bytes
Variable Size 620756992 bytes
Database Buffers 411041792 bytes
Redo Buffers 7602176 bytes
Database mounted.
Database opened.
SQL> show spparameters pga
SID NAME TYPE VALUE
-------- ----------------------------- ----------- ----------------------------
* pga_aggregate_limit big integer 2G
cdb1 pga_aggregate_limit big integer 5G
* pga_aggregate_target big integer 755M
一起重启可以起来,别的机器起不来了
oracle@rac2 ~]$ s
SQL> show spparameters pga
SID NAME TYPE VALUE
-------- ----------------------------- ----------- ----------------------------
* pga_aggregate_limit big integer 2G
cdb1 pga_aggregate_limit big integer 5G
* pga_aggregate_target big integer 755M
SQL> show parameters pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_limit big integer 5G
pga_aggregate_target big integer 755M
SQL>
--------------------改某个sid的 spfile 一定要加sid='cdb1'
SQL> startup force
ORA-00093: pga_aggregate_limit must be between 5000M and 100000G
ORA-01078: failure in processing system parameters
SQL>
3.---------------------reset spparameters 一致----------------------------
SQL> show spparameters pga
SID NAME TYPE VALUE
-------- ----------------------------- ----------- ----------------------------
cdb1 pga_aggregate_limit big integer 5G
* pga_aggregate_limit big integer 5G
* pga_aggregate_target big integer 755M
SQL> show parameters pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_limit big integer 5G
pga_aggregate_target big integer 755M
SQL> alter system reset pga_aggregate_limit sid='cdb1';
System altered.
SQL> show spparameters pga
SID NAME TYPE VALUE
-------- ----------------------------- ----------- ----------------------------
* pga_aggregate_limit big integer 5G------------------------少了CDB1的特殊配置了
* pga_aggregate_target big integer 755M
SQL> show parameters pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_limit big integer 5G
pga_aggregate_target big integer 755M
SQL>