RAC 环境下spfile 下参数的修改,所有node或个别node

------+ 和没有+

SQL> create spfile='+data' from pfile='/tmp/pfile';

File created.

SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.20.0.0.0
[oracle@rac1 ~]$ 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.329.1157608177


SQL> create spfile='data' from pfile='/tmp/pfile';

File created.

SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.20.0.0.0
[oracle@rac1 ~]$  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

[oracle@rac1 dbs]$ pwd
/u01/app/oracle/product/19.0.0/db_1/dbs

-rw-r-----. 1 oracle asmadmin     6656 Jan  7 18:46 data
-rw-rw----. 1 oracle asmadmin     1544 Jan  7 18:47 hc_cdb1.dat
-rw-r-----. 1 oracle asmadmin  2097152 Jan  7 18:47 id_cdb1.dat


 

SYMPTOMS

Case 1 PGA_AGGREATE_LIMIT lowering

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

Case 2 RAC Instance startup failure

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

SOLUTION

Solution for Case 1

The workaround is to manually set pga_aggregate_limit larger than 2G.


SQL> alter system set pga_aggregate_limit = 2G;

Solution for Case 2

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:

.thread
.instance_number
.undo_tablespace
.processes
.pga_aggregate_limit
*.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 '+' from pfile

4. Shutdown instance

5. From 'srvctl config database -db '' you will find a changed spfile name.

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; 指定好刚刚的文件,from memory  如下

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> 

------create spfile  from memory---RAC下不行 没有nodeX 后面的参数

[oracle@rac1 ~]$ grep -i instan* /tmp/pfile*
/tmp/pfile:family:dw_helper.instance_mode='read-only'
/tmp/pfile:cdb3.instance_number=3
/tmp/pfile:cdb2.instance_number=2
/tmp/pfile:cdb1.instance_number=1
/tmp/pfile1:*.instance_number=1
[oracle@rac1 ~]$ 

SQL> show parameters pga
SQL> alter system set pga_aggregate_limit=2G scope=spfile;

System altered.

SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.20.0.0.0
[oracle@rac1 ~]$ srvctl stop database -d cdb
srvctl start database -d cdb
[oracle@rac1 ~]$ 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/rac2/crs/trace/crsd_oraagent_oracle.trc".

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 memory;

File created.

SQL> show spparameters pga; 
SQL> show parameters pga; 
SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.20.0.0.0
[oracle@rac1 ~]$  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.300.1157606999
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 ~]$ s

SQL*Plus: Release 19.0.0.0.0 - Production on Sun Jan 7 18:31:17 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> startup force;
ORA-00304: requested INSTANCE_NUMBER is busy
SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.20.0.0.0
[oracle@rac1 ~]$  srvctl stop database -d cdb
[oracle@rac1 ~]$ 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-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
Additional information: 4476
Additional information: -243946057
Process ID: 0
Session ID: 0 Serial number: 0
. For details refer to "(:CLSN00107:)" in "/u01/app/grid/diag/crs/rac2/crs/trace/crsd_oraagent_oracle.trc".

CRS-5017: The resource action "ora.cdb.db start" encountered the following error: 
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
Additional information: 4476
Additional information: -996112533
Process ID: 0
Session ID: 0 Serial number: 0
. For details refer to "(:CLSN00107:)" in "/u01/app/grid/diag/crs/rac1/crs/trace/crsd_oraagent_oracle.trc".

CRS-2674: Start of 'ora.cdb.db' on 'rac2' failed
CRS-2674: Start of 'ora.cdb.db' on 'rac1' failed
[oracle@rac1 ~]$ srvctl stop database -d cdb
[oracle@rac1 ~]$ srvctl status database -d cdb
Instance cdb1 is not running on node rac1
Instance cdb2 is not running on node rac2
Instance cdb3 is not running on node rac3
[oracle@rac1 ~]$ 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-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
Additional information: 4476
Additional information: -243946057
Process ID: 0
Session ID: 0 Serial number: 0
. For details refer to "(:CLSN00107:)" in "/u01/app/grid/diag/crs/rac2/crs/trace/crsd_oraagent_oracle.trc".

CRS-5017: The resource action "ora.cdb.db start" encountered the following error: 
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
Additional information: 4476
Additional information: -1748279009
Process ID: 0
Session ID: 0 Serial number: 0
. 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 ~]$ vi /u01/app/grid/diag/crs/rac2/crs/trace/crsd_oraagent_oracle.trc
[oracle@rac1 ~]$ vi /u01/app/grid/diag/crs/rac3/crs/trace/crsd_oraagent_oracle.trc
[oracle@rac1 ~]$ s

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> 

你可能感兴趣的:(oracle)