데이터베이스 프로세스 매개변수 증가 실패 [실패 101]
10313 단어 oracledbaoraclefailing101tutorial
프로젝트 42가 시작된 이후로 저는 항상 "섹션"또는 "기사 시리즈"를 갖고 싶었습니다. 여기에서 우리 모두가 저지르는 실수 중 일부를 보여주고 특정 오류와 해결 방법을 언급하는 대신 실수를 피하는 방법에 초점을 맞춥니다. 그것을 해결하거나 "무엇을 하지 않는 방법"을 배울 때
이것이 "번들"의 시작으로 끝날지 아니면 "일회용"으로 끝날지 확실하지 않지만 다음과 같습니다.
시스템이 현재 허용되는 최대값보다 더 많은 프로세스를 생성하려고 했기 때문에 최근에 데이터베이스가 보고하는 문제ORA-20 errors가 발생했습니다.
응용 프로그램 중 하나에서 생성된 세션을 줄인 후 해결 방법은 프로세스 매개 변수를 늘리는 것이었습니다.
프로세스 중에 실제로 첫 번째 인스턴스를 다시 시작하지 못했습니다.
"srvctl 시작"실행 중에 시스템이 "ORA-01078: 시스템 매개변수 처리 실패"를 보고하고 시작할 수 없습니다.
시스템이 안정적이었기 때문에 프로세스 변경이 되돌려졌고 실제로 변경을 실행해야 하는 다른 사람이 매개변수를 변경하고 시스템을 다시 시작하는 것을 불가능하게 만드는 문제를 실제로 발견했습니다.
동료가 팀과 문제 및 해결 방법을 공유하고 향후 문제를 방지하기 위해 집에 있는 내 데이터베이스 중 하나에서 문제를 재현하기로 결정했습니다.
내가 한 것은 내가 언급한 대로 시스템 프로세스 매개변수를 늘리는 것이었습니다.
이 테스트에서는 640에서 12000으로 증가시킵니다.
[oracle@rac1-node1 ~]$ sqlplus / as sysdba
SQL> show parameter processes
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
[....]
processes integer 640
SQL> alter system set processes=12000 scope=spfile;
System altered.
SQL> exit
이제 데이터베이스 인스턴스 cdb1221을 다시 시작하면 언급한 것과 동일한 오류가 발생하지만 시스템을 시작할 수 없는 이유에 대한 더 많은 단서는 없습니다.
[oracle@rac1-node1 ~]$ srvctl stop instance -d cdb122 -i cdb1221
[oracle@rac1-node1 ~]$ srvctl start instance -d cdb122 -i cdb1221
PRCR-1013 : Failed to start resource ora.cdb122.db
PRCR-1064 : Failed to start resource ora.cdb122.db on node rac1-node1
CRS-5017: The resource action "ora.cdb122.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-node1/crs/trace/crsd_oraagent_oracle.trc".
CRS-2674: Start of 'ora.cdb122.db' on 'rac1-node1' failed
[oracle@rac1-node1 ~]$
언급된 CRS 로그를 확인하면 실제 문제를 볼 수 없으며 시스템이 인스턴스를 시작할 수 없다는 사실만 볼 수 있습니다.
021-02-22 18:31:01.329 : USRTHRD:1293846272: [ INFO] {1:62087:1895} Thread:InstSta
rtThread: InstStartThread::didExceptionOccur excp:0x7f71100a3060
2021-02-22 18:31:01.329 : USRTHRD:1293846272: [ INFO] {1:62087:1895} Thread:InstStartThread: InstStartThread::didExceptionOccur excp:0x7f71100a3060
2021-02-22 18:31:01.329 :CLSDYNAM:1293846272: [ora.cdb122.db]{1:62087:1895} [start] InstAgent::start 380 thread exception:ORA-01078: failure in processing system parameters
2021-02-22 18:31:01.329 :CLSDYNAM:1293846272: [ora.cdb122.db]{1:62087:1895} [start] clsnUtils::error Exception type=2 string=
CRS-5017: The resource action "ora.cdb122.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-node1/crs/trace/crsd_oraagent_oracle.trc".
2021-02-22 18:31:01.330 : AGFW:1327466240: [ INFO] {1:62087:1895} Agent sending reply for: RESOURCE_START[ora.cdb122.db 1 1] ID 4098:5986
[....]
.0/dbhome_1 oracleSid:cdb1221 instanceType:1 instanceVersion:12.2.0.1.0
2021-02-22 18:31:01.396 :CLSDYNAM:1293846272: [ora.cdb122.db]{1:62087:1895} [check] clsnInstConnection::makeConnectStr UsrOraEnv ,ORA_SERVER_THREAD_ENABLED=FALSE,ORACLE_BASE=
m_oracleHome /u01/app/oracle/product/12.2.0/dbhome_1 Crshome /u01/app/19.3.0/grid
2021-02-22 18:31:01.396 :CLSDYNAM:1293846272: [ora.cdb122.db]{1:62087:1895} [check] clsnInstConnection::makeConnectStr = (DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=/u01/app
/oracle/product/12.2.0/dbhome_1/bin/oracle)(ARGV0=oraclecdb1221)(ENVS='ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1,ORACLE_SID=cdb1221,LD_LIBRARY_PATH=,ORA_SERVER_THRE
AD_ENABLED=FALSE,ORACLE_BASE=')(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))')(CONNECT_DATA=(SID=cdb1221))))
2021-02-22 18:31:01.397 :CLSDYNAM:1293846272: [ora.cdb122.db]{1:62087:1895} [check] InstConnection::connectInt 020 server not attached
2021-02-22 18:31:01.403 : USRTHRD:3552564992: [ INFO] {1:62087:2} Thread:UpgradeCheckThread UpgradeCheckThread running 0
2021-02-22 18:31:01.430 :CLSDYNAM:1293846272: [ora.cdb122.db]{1:62087:1895} [check] 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: 3701
Additional information: -1151133049
Process ID: 0
Session ID: 0 Serial number: 0
Database alertlog와 관련하여 중지된 이후로 아무 것도 등록하지 않았습니다.
[oracle@rac1-node1 trace]$ tail -f /u01/app/oracle/diag/rdbms/cdb122/cdb1221/trace/alert_cdb1221.log
Archiving is disabled
2021-02-22T18:16:55.285384+00:00
JIT: pid 15083 requesting stop
2021-02-22T18:16:56.674745+00:00
freeing rdom 4
freeing rdom 3
freeing rdom 2
freeing rdom 0
2021-02-22T18:16:58.375228+00:00
Instance shutdown complete (OS id: 15083)
그러나 sqlplus를 사용하여 인스턴스를 시작하려고 하면 무엇이 문제인지 확인할 수 있습니다.
SQL> startup
ORA-00093: pga_aggregate_limit must be between 36000M and 100000G <<<<<<<<<<<<<<
ORA-01078: failure in processing system parameters
SQL>
해당 매개변수의 현재 값을 확인하고 아직 실행 중인 다른 인스턴스에서 변경할 수 있습니다.
SQL> show parameter pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_limit big integer 3154M
pga_aggregate_target big integer 1577M
SQL> alter system set pga_aggregate_limit=36000M scope=spfile;
System altered.
SQL>
시스템을 다시 시작하려고 하면 올바르게 시작하는 방법을 확인할 수 있습니다.
SQL> startup
ORACLE instance started.
Total System Global Area 7365197824 bytes
Fixed Size 8809808 bytes
Variable Size 3170894512 bytes
Database Buffers 4177526784 bytes
Redo Buffers 7966720 bytes
Database mounted.
Database opened.
SQL>
그렇다면 여기서 pga_aggregate_limit가 문제가 된 이유는 무엇입니까?
답은 pga_aggregate_limit가 PROCESSES 매개변수의 3MB 이상이어야 하기 때문입니다.
프로세스 매개변수가 12000으로 변경되었으므로 12000*3M = 36000M이 필요합니다.
Oracle Documentation pga_aggregate_limit
일부 매개변수는 다른 매개변수에 직접적인 영향을 미치며 이러한 매개변수 관리는 21c 및 향후 버전에서 간소화되었습니다.
여기서 기억해야 할 몇 가지 좋은 교훈은 몇 가지 기본 규칙을 따르는 것입니다.
Reference
이 문제에 관하여(데이터베이스 프로세스 매개변수 증가 실패 [실패 101]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/project42/failing-to-increase-database-processes-parameter-failing-101-3hin텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)