Naming Method 설정

Download Report

Transcript Naming Method 설정

Naming Method 설정
김동오
-1-
목적
▣ Host Naming과 Local Naming의 차이점
▣ Oracle Net Configuration Assistant의 사용
▣ 간단한 연결 문제 해결 방법
-2-
Naming Method란?
▣ Oracle Net이 제공하는 Naming Method
◈ Host Naming
◈ Local Naming
◈ Directory Naming
◈ Oracle Names
◈ External Naming
-3-
Network 관련 파일 복사
▣ 접속
◈ 203.252.164.200
◈ dba번호/dba번호
▣ 생성 테스트
◈ sqlplus “/ as sysdba”
◈ Select 이용한 검색
▣ cd network/admin
▣ cp /ocp/network/* ./
-4-
Host Naming
▣ 클라이언트는 다음과 같은 경우에 host name을 이용하여 서
버에 연결
◈ Oracle Net Services Client 소프트웨어를 이용하여 오라클 데이타베
이스 서비스에 연결
◈ TCP/IP 프로토콜을 이용
◈ DNS, /etc/hosts 파일을 이용한 host name <-> IP 주소 전환
◈ 연결 관리자, 보안 옵션이 사용할 수 없음
-5-
Host Naming : Client Side
-6-
Host Naming : Server Side
-7-
Host Naming 예제
▣ listener.ora 파일
◈ SID_LIST_LISTENER =
◈ (SID_LIST =
◈ (SID_DESC =
◈
(GLOBAL_DBNAME = ORCL.konkuk.ac.kr)
◈
(ORACLE_HOME = C:\oracle\ora92)
◈
(SID_NAME = ORCL)
◈ )
▣ 클라이언트
◈ sqlplus scott/[email protected]
▣ 개인 컴퓨터에서 테스트 할 경우에는
WINDOWS\System32\drivers\etc\hosts 파일을 수정해야 함
-8-
Naming Methods 설정
▣ Oracle Net Configuration Assistant or Oracle Net Manager
-9-
Naming Methods 설정
-10-
Local Naming
▣ Local Naming
◈ 클라이언트가 접속할 서버의 이름을 tnsnames.ora 파일에 기록
▣ 분산 환경에서의 로컬 이름지정(Local Naming) 사용의 단점
◈ tnsnames.ora 파일이 대용량 분산 환경에서 사용될 경우 많은 문제들
이 나타남
◈ 변경사항들은 네트워크 노드들 간에 효율적으로 전파되어야 함
◈ tnsmames.ora 파일 내용의 정확성이 유지되어야 함
◈ 급속한 변경이 발생할 때 추가적인 관리 시간 및 리소스들이 요구됨
◈ 일관성은 모든 노드들 사이에서 유지되어야 함
-11-
Local Net Service Name 구성
▣ Local Net Service Name
◈ tnsnames.ora 파일을 수정
◈ 연결하고자 하는 데이타베이스 서비스의 이름 지정
◈ 예를 들어 원격지의 jinny2000.konkuk.ac.kr에 있는 데이타베이스 서
비스의 이름을 ORCL1으로 지정했다면 sqlplus scott/tiger@ORCL1
으로 접속 가능
-12-
클라이언트에서의 문제 해결
▣ 클라이언트에서의 오류 메시지들
◈ 12154 : tnsnames.ora 파일을 점검(오류, 파일 존재 여부 등)
◈ 12198, 12203 : 네트워크 점검, ADDRESS 파라미터 점검
◈ 12533 : ADDRESS 파라미터 점검
◈ 12541 : 리스너 연결 상태 점검, tnsping 이용
-13-
listener.ora 설정
[dba01@mars dba01]$ vi network/admin/listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = mars)(PORT = 1522))
)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = dba01.konkuk.ac.kr)
(ORACLE_HOME = /ocp/dba01)
(SID_NAME = dba01)
)
)
[dba01@mars dba01]$ lsnrctl start
-14-
tnsnames.ora 설정
[dba01@mars dba01]$ vi network/admin/tnsnames.ora
DBA01 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = mars)(PORT = 1522))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dba01.konkuk.ac.kr)
)
)
[dba01@mars dba01]$ sqlplus system/manager@dba01
-15-
요약
▣ Host Naming과 Local Naming의 차이점
▣ Oracle Net Configuration Assistant 설정
◈ Host Naming 설정
◈ Local Naming 설정
◈ Net Service Name 설정
▣ 문제 해결 방법
-16-
Oracle Shared Server의 사용 및 설정
김동오
-17-
목적
▣ Oracle Shared Server의 구조
▣ Oracle Shared Server의 설정
▣ 관련된 Data Dictionary
-18-
서버의 설정
▣ Dedicated Server Process
▣ Shared Server Process
-19-
Dedicated Server Processes
-20-
Oracle Shared Server
-21-
Oracle Shared Server 사용의 장점
▣ 하나의 인스턴스에 대한 프로세스 수를 줄일 수 있음
▣ 사용 가능한 사용자의 수를 늘일 수 있음
▣ 로드 밸런싱 사용
▣ 서버 프로세스의 수를 줄임
▣ 메모리 사용과 시스템의 오버헤드를 줄임
-22-
Dedicated Server의 사용
▣ 배치 작업일 경우에 유리함
▣ Sysdba로 접속해야 시작, 종료, 복구를 수행할 수 있음
▣ 메모리가 사용자를 충분히 감당할 수 있는 경우에는
Dedicated Server 방식을 사용하는 것이 좋음
-23-
연결
-24-
Request 수행 절차
-25-
SGA와 PGA
▣ Dedicated Server: User Session 데이터는 PGA에 저장
▣ Shared Server : User Session 데이터가 SGA에 저장
-26-
Oracle Shared Server의 구성
▣ 초기화 파라미터
◈ DISPATCHERS
◈ SHARED_SERVERS
▣ 부가적인 초기화 파라미터
◈ MAX_DISPATCHERS
◈ MAX_SHARED_SERVERS
◈ CIRCUITS
◈ SHARED_SERVER_SESSIONS
-27-
DISPATCHERS
▣ 디스패쳐의 수와 프로토콜을 지정
-28-
MAX_DISPATCHERS
▣ 동시에 실행되는 최대 디스패쳐의 수를 입력
▣ 초기에 실행된 디스패쳐의 수를 늘이려면 ALTER SYSTEM
명령을 이용
▣ 최대 디스패쳐의 개수 = CEIL(Maximun number of
concurrent sessions/Connections per dispatcher)
▣ V$CIRCUIT, V$DISPATCHER
▣ ALTER SYSTEM SET
DISPATCHER=‘(PROTOCOL=TCP)(DISPATCHER=3)’;
-29-
SHARED_SERVERS
▣ 인스턴스 시작 시에 생성되는 Shared server의 수를 지정
▣ ALTER SYSTEM SET SHARED_SERVERS = 2
▣ 초기 공유 서버 프로세스 수는 낮게 산정하는 것이 가장 좋습니다.
▣ 추가 공유 서버는 필요한 경우에 자동으로 시작되며 장기간 휴지 상태
로 있으면 자동으로 할당이 해제됩니다.
-30-
MAX_SHARED_SERVERS
▣ 시작할 수 있는 Shared server의 최대 개수를 지정
▣ 요청 대기열의 길이에 따라 공유 서버를 동적으로 할당할
수 있습니다.
-31-
CIRCUITS
▣ 가상 회로는 디스패처와 서버를 통해 이루어지는 데이터베
이스에 대한 사용자 연결입니다
▣ 수신 및 송신 네트워크 세션에 사용할 수 있는 가상 회로의
총 수를 지정합니다.
▣ 전체 SGA 크기에 영향을 줍니다.
▣ Oracle 공유 서버가 구성된 경우 CIRCUITS의 값은
SESSIONS의 값과 일치하며 그렇지 않은 경우 이 값은 0이
됩니다.
-32-
SHARED_SERVER_SESSIONS
▣ 특정 시점에 동시에 열려 있는 공유 서버 세션의 총 수
▣ 허용되는 Oracle 공유 서버 사용자 세션의 총 수
▣ 이 매개변수를 설정하면 전용 서버에 대해 사용자 세션을
예약할 수 있습니다.
-33-
-34-
Shared Server 설정(서버)
[dba01@mars]$ vi dbs/initdba01.ora
#맨 밑에 주석 처리된 부분에서 주석을 삭제하고 원하는 숫자로 수정
dispatchers="(PROT=TCP) (DISPATCHERS=2)"
shared_servers=2
max_dispatchers=3
max_shared_servers=4
[dba01@mars]$ sqlplus “/ as sysdba”
SQL> shutdown
SQL> startup
[dba01@mars]ps –aux | grep dba01
dba01
dba01
dba01
dba01
16748
16750
16752
16754
0.1
0.1
0.1
0.1
0.2
0.2
0.3
0.3
88272
88272
88156
88156
6152
6152
6484
6492
?
?
?
?
S
S
S
S
23:46
23:46
23:46
23:46
0:00
0:00
0:00
0:00
ora_s000_dba01
ora_s001_dba01
ora_d000_dba01
ora_d001_dba01
프로세스 확인
-35-
Shared Server 설정(클라이언트)
[dba01@mars]$ vi network/admin/tnsnames.ora
DBA01 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = mars)(PORT = 1522))
)
(CONNECT_DATA =
(SERVER = DEDICATED) -> 삭제
(SERVICE_NAME = dba01.konkuk.ac.kr)
)
)
[dba01@mars]$ vi network/admin/tnsnames.ora
(SERVER = DEDICATED) 삭제
[dba01@mars]$ sqlplus system/manager@dba01 <- shared server
mode로 접속
-36-
프로세스 검색
SQL> select name, status from v$shared_server;
NAME
---S000
S001
STATUS
---------------WAIT(COMMON)
WAIT(COMMON)
SQL> select name, status from v$dispatcher;
NAME
---D000
D001
STATUS
---------------WAIT
WAIT
SQL> select * from v$queue;
PADDR
-------00
5188D11C
5188D4CC
TYPE
QUEUED
WAIT
TOTALQ
---------- ---------- ---------- ---------COMMON
0
0
0
DISPATCHER
0
0
0
DISPATCHER
0
0
0
-37-
관련 매개변수
▣ Oracle 공유 서버의 영향을 받으며 조정이 필요할 수 있는
기타 매개변수는 다음과 같습니다.
◈ LARGE_POOL_SIZE
◈ SESSIONS
-38-
동적 성능 뷰
-39-
요약
▣ Oracle Shared Server 구성
▣ Shared Server와 관련된 동적 성능 뷰
-40-