DATA 전문가로 가는 길

[Admin][Oracle] User Process 파라미터 지정 본문

Data Architecture/Admin

[Admin][Oracle] User Process 파라미터 지정

EstenPark 2016. 2. 29. 11:04

1. User Process란 무엇인가?

특정 SQL을 수행하여 원하는 내용을 추출하고 싶다면 데이터베이스에 접속해야 한다. 이때 SQLPLUS를 사용하여 접속하였다면 해당 SQLPLUS는 유저 프로세스를 생성하게 된다. 유저 프로세스는 해당 세션의 정보와 수행하고자 하는 SQL 정보를 데이터베이스 서버로 전달하게 된다.(토드, SQL Developer)   


2. 현재 Oracle에 설정된 유저 프로세스 개수 확인

SQL> show parameter processes
NAME                                      TYPE        VALUE
------------------------------------     ----------- ------------------------------
aq_tm_processes                      integer     0
db_writer_processes                 integer     1
gcs_server_processes              integer     0
job_queue_processes               integer     10
log_archive_max_processes       integer     2
processes                       integer   150
  • processes : 하나의 서버에 동시에 접근 할 수 있는 유저 프로세스는 150개를 의미 합니다.

3. processes 파라미터 설정

[ 참고 #1 ] spfile을 사용하는지 pfile을 사용하는지 확인 해보는 방법은 VALUE 부분에 값이 있을 경우에는 spfile을 사용하는 것이고, 만약 VALUE 부분에 값이 없을 경우에는 pfile을 사용하는 것입니다.

[ 참고 #2 ] 주의 사항은 pfile과 spfile이 모두 같은 디렉토리에 존재한다면 spfile만 사용하게 됩니다.

 

# processes 파라미터 파일 확인

SQL> show parameter spfile;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /export/home/oracle/product/10g/dbs/spfiletestdb.ora
SQL> show parameter pfile;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /export/home/oracle/product/10g/dbs/spfiletestdb.ora

# processes 파라미터 파일 내용 확인
SQL> !
bash-3.00$ cd $ORACLE_HOME/dbs
bash-3.00$ ls
hc_testdb.dat     init.ora          orapwtestdb
initdw.ora        lkTESTDB          spfiletestdb.ora
bash-3.00$ grep "\*\.processes=" spfiletestdb.ora
*.processes=150

# processes 파라미터 파일 수정 및 확인
bash-3.00$ exit
exit
SQL> alter system set processes=200 scope=spfile;
System altered.
SQL> !
bash-3.00$ pwd
/export/home/oracle
bash-3.00$ cd $ORACLE_HOME/dbs
bash-3.00$ ls
hc_testdb.dat     init.ora          orapwtestdb
initdw.ora        lkTESTDB          spfiletestdb.ora
bash-3.00$ grep "\*\.processes=" spfiletestdb.ora
*.processes=200
[주의사항] 바이너리 파일에는 정상적으로 수정 되었지만 실제로 DB에는 방영되지 않습니다. 반영하기 위해서는 DB를 재 시작 해야 합니다.

SQL> show parameter processes
NAME                                      TYPE        VALUE
------------------------------------     ----------- ------------------------------
aq_tm_processes                      integer     0
db_writer_processes                 integer     1
gcs_server_processes              integer     0
job_queue_processes               integer     10
log_archive_max_processes       integer     2
processes                       integer   150

SQL> shutdown immediate
Database closed.
Database dismounted.

[ 참고 ] nomount 단계에서 파라미터 파일을 사용합니다.(spfile, pfile)
SQL> startup nomount
ORACLE instance started.
Total System Global Area  289406976 bytes
Fixed Size                  1279820 bytes
Variable Size              79694004 bytes
Database Buffers          205520896 bytes
Redo Buffers                2912256 bytes

SQL> show parameter processes
NAME                                      TYPE        VALUE
------------------------------------     ----------- ------------------------------
aq_tm_processes                      integer     0
db_writer_processes                 integer     1
gcs_server_processes              integer     0
job_queue_processes               integer     10
log_archive_max_processes       integer     2
processes                       integer   200


SQL> alter database mount;
Database altered.
SQL> alter database open;
D
atabase altered.

 

만약 pfile을 사용한다면 $ORACLE_HOME/dbs/initSID.ora 파일을 열어서 processes = 50 값을 변경 후 DB를 Open하시기 바랍니다.

Comments