■ 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';
'Data Base > Linux' 카테고리의 다른 글
240105 Architecture_ Client - Server 환경, Database Link (0) | 2024.01.05 |
---|---|
240105 Oracle DB Linux _ Static Service 등록 (0) | 2024.01.05 |
240104 Oracle DB Linux _ PORT 변경 방법 (0) | 2024.01.04 |
240104 Oracle DB Linux_Oracle Network (2) | 2024.01.04 |
240104 Oralce DB Linux _ SQL LOADER (0) | 2024.01.04 |