Data Base/Linux

240105 Architecture _ server 구성

잇꼬 2024. 1. 5. 18:48
728x90
반응형
SMALL

■ server 구성
1. dedicated server process
- user process : server process 인 1:1 환경
- 하나의 server process가 하나의 user process 만 처리하는 프로세스이다.

dedicated server 환경에서는 server process 안에 PGA 안에 UGA가 있다
PGA(Program Global Area)
 - UGA(User Global Area)
- UGA : user session data , cursor state (sql문 처리)
- stack space (바인드 변수 생성 및 처리)


2. shared server process
- server process : user process인 1:N 환경
- 하나의 server process가 여러의 user process 만 처리하는 프로세스이다.
- user process 는 dispatcher 와 연결하는 방식이다.
- pmon 프로세스는 dispatcher 정보를 listener 한테 등록한다.
- 이점 
1) instance 에 대한 process 수를 줄인다. 
2) 메모리 사용량과 시스템(cup)오버헤드를 줄인다.

shared server 환경에서는 server process 내에는 UGA가 존재하지 않고 stack space 영역만 존재한다.
(large pool 에 UGA 생성된다.)
PGA(Program Global Area)
- stack space : 바인드 변수 생성 및 처리

※ shared server 환경에서 수행하지 말아야 할 작업

( 일반적으로 dba 작업은 dedicated server 환경에서 수행해야 한다. )
- 데이터베이스 관리 
- 백업 및 복구 작업 
- 대량로드 작업

 


shared server 환경으로 구성 ora11g 에서 수행(putty에서 수행)

[oracle1@oracle admin]$ sqlplus / as sysdba 접속

1. dispatchers 구성 
#) dispatchers 구성 전 확인
SQL> show parameter dispatchers

NAME                               TYPE       VALUE
------------------------------------ -----------   ---------------------------------------------------------
dispatchers                      string      (PROTOCOL=TCP) (SERVICE=ora11gXDB)
max_dispatchers              integer

#) dispatchers 구성 
SQL> alter system set dispatchers = "(protocol=tcp)(dispatchers=2)";


#) 변경 확인
SQL> show parameter dispatchers

NAME                               TYPE     VALUE
------------------------------------ ----------- -----------------------------------------
dispatchers                       string    (protocol=tcp)(dispatchers=2)
max_dispatchers               integer

#) 최대 10개로 설정
SQL> alter system set max_dispatchers = 10;


#) 설정 확인
SQL> show parameter dispatchers



2. shared server process 구성 
#) 확인
SQL> show parameter shared_servers

NAME                              TYPE     VALUE
------------------------------------ ----------- ------------------------------
max_shared_servers        integer
shared_servers                 integer   1

#) instance 시작시에 생성할 shared server process 수
SQL> alter system set shared_servers = 2;



# 최대로 사용할 수 있는 shared server process 수
SQL> alter system set max_shared_servers = 10;



#) shared server process 수 확인
SQL> show parameter shared_servers



#) 수정
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN\tnsnames.ora
ora11g_d =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.108)(PORT = 1522))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ora11g)
    )
  )

ora11g_s =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.108)(PORT = 1522))
    (CONNECT_DATA =
      (SERVICE_NAME = ora11g)
    )
  )

[SQL developer]
#) hr session

select * from tab;


#) sys session

select * from v$session where username = 'HR';

 

dedicated 확인이 되지 않을 경우!

방법1) listener 중지 했다가 시작 해보기

[putty]
[oracle1@oracle admin]$  lsnrctl stop L01
[oracle1@oracle admin]$  lsnrctl start L01
[oracle1@oracle admin]$  lsnrctl status L01
[oracle1@oracle admin]$  lsnrctl service L01

방법2) 백업본인 listener.bak 에 있는 LISTENER 문장을 복사 해서 기존에 있는 listener.ora 에 붙여놓기

#1) listener.ora 수정

[oracle1@oracle admin]$ vi listener.ora
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.108)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )


#2) 기본 listener 시작
[oracle1@oracle admin]$ lsnrctl start

# 프로세스 작업 속도 향상
SQL> alter system register;

#2) 기본 listener 상태 확인

- dedicated 확인
[oracle1@oracle admin]$ lsnrctl status

#3) listener service 확인

- dedicated server 인지 확인 : DISPATCHER 있는지 체크!

[oracle1@oracle admin]$ lsnrctl service

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 05-JAN-2024 16:21:32

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.108)(PORT=1521)))
Services Summary...
Service "ora11g" has 1 instance(s).
  Instance "ora11g", status READY, has 3 handler(s) for this service...
    Handler(s):
      "D001" established:0 refused:0 current:0 max:1022 state:ready
         DISPATCHER <machine: oracle, pid: 1452> : dedicated server 
         (ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=9349))
      "D000" established:0 refused:0 current:0 max:1022 state:ready
         DISPATCHER <machine: oracle, pid: 1448>
         (ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=28529))
      "DEDICATED" established:0 refused:0 state:ready
         LOCAL SERVER
The command completed successfully

#) tnsnames.ora 메모장으로 열기 → port 수정
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN\tnsnames.ora
dedicated server 환경
ora11g_d =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.108)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ora11g)
    )
  )

shared server 환경
ora11g_s =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.108)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = ora11g)
    )
  )

#) sys 계정
v$session 에서 SERVER 컬럼 확인
DEDICATED : dedicated server 환경 
NONE : shared server 환경

SELECT * FROM v$session WHERE username = 'HR';

 

728x90
반응형
LIST