6장_오라클 네트워크 환경구성 정리

망구씨·2023년 10월 5일
0

오라클 DB 공부하기

목록 보기
4/10
post-custom-banner

oracle net 서비스

✔️ 오라클 설치 다운로드 사이트에 오라클 클라이언트 설치 프로그램이 있는데, 이것을 설치하면 오라클넷이 설치된다.
✔️ Oracle Net 구성파일에는 4가지가 있는데, 내가 접속하려는 서버 ip 주소, 내가접속하려는 서버의 인스턴스이름(sid)- 서비스이름, 포트번호, 프로토컬
✔️ 클라이언트에서 데이터 베이스 서버로 접속하기 위해서 oracle net을 사용한다.

oracle net 리스너

✔️ 어떤 유저가 올지 경비원처럼 리슨..(?)하는 애
✔️ 오라클 데이터베이스 서버에 떠있는 리스너는 4가지 정보를 항상 알고 있어야 한다. 호스트 이름 (ip주소), 포트 번호 (port), 프로토콜 (protocol) : 네트워크 통신 언어(TCPIP), 서비스 이름 (service name) : 인스턴스 이름
✔️ 이 4가지 정보가 listener.ora파일에 있고, 리스너가 이 네가지 정보를 listener.ora파일을 보고 알고 있는 것.
✔️ listener.ora가 있는쪽에 sqlnet.ora파일이 있는데, 이것은 회사 특정 데이터베이스 서버에 아무나 접속하지 못하도록 하고 허용된 ip주소만 접속할 수 있게 해주는 파일이다.

예) 오라클 엔지니어로 신한은행에 가서 기술지원을 하려고 하는데, 노트북을 들고 갈거다! 그 노트북에 오라클 클라이언트가 설치되어 있어야 한다. 신한은행에 도착하면 dba에게 내 노트북tnsnames.ora에 등록할 4가지 정보를 달라고 얘기해야한다.

내가 접속하려는 데이터 베이스 서버에 sqlnet.ora 에 내 노트북의 ip주소를 넣어놔달라고 꼭이야기 해야 한다.

네트워크 연결설정

✔️ 클라이언트 쪽에 있는 응용 프로그램이 oracle net을 통해서 데이터 베이스 서버에 접속하려면 리스너가 있는 주소, 포트, 프로토콜, 서비스 이름을 알아야 연결할 수 있다. -> tnsnames.ora 에 내용이 들어있다.

💡 tnsnames.ora파일 안에 있는 제목?으로 로그인 가능. sqlplus scott/tiger@orcl2 이렇게 하면 리스너를 통해 접속하는 것! -> 자기자리에서 노트북이나 컴퓨터로 응용프로그램 통해 들어가는 것은 이렇게 들어간다.

Listener Control 유틸리티

오라클 넷 리스너는 명령행 유틸리티lsnrctl나 em을 통해 제어가능

SRVCTL을 사용하여 리스너 시작 및 정지

. oraenv
ORACLE_SID = [+ASM] ? +orcl
[+ASM:~]$ lsnrctl status


[+ASM:~]$ srvctl -h -- help 명령어
[+ASM:~]$ srvctl stop listener

오라클에 접속하는 4가지 방법

1. 간단한 연결(easy connect)

$ sqlplus scott/tiger@edydr1p0.us.oracle.com:1521/orcl.us.oracle.com
        유저이름/패스워드@호스트명(ip주소):포트번호/서비스이름

2. tnsnames.ora 에 tns별칭으로 오라클에 접속하는 방법

sqlplus scott/tiger@orcl

3. 디렉토리 이름 지정

4. 외부 이름 지정
: 디렉토리 이름 지정하고 같은 방식인데 오라클 제품을 쓰느냐, 아니면 다른 third party 제품을 쓰느냐의 차이이다.

Dedicated server 프로세스

이럴 때는 Dedicated Server 를 써라 !
✅ 데이터베이스 관리
✅ 백업 및 recovery 작업
✅ 일괄 처리 및 대량 로드 작업
✅ 데이터 웨어하우스 작업

Shared server 프로세스


✅ 디스패처와 서버프로세스 사이에 응답Q, 요청Q가 있는데 유저가 sql요청하면 요청Q에 디스패처가 올려놓고 서버프로세스가 결과를 응답Q에 두면 이 결과를 디스패처가 유저에게 전달한다.

💡 Dedicated server 프로세서 구조는
하나의 유저프로세서당 ----------> 하나의 서버 프로세서 구조이고
Shared server 프로세서 구조는
여러개의 유저프로세서 -------- 디스패처들 ---------> 서버 프로세서들이 있다.

유저수가 많은 쿠팡이나 인터파크 같은 사이트에서는 shared server 구조를 구성하고 있습니다.
그런데 Shared server 구조로 구성하게 되면 pga 영역에 있는 상당수의 영역들이 전부 SGA 영역으로 들어갑니다.

SGA와 PGA


✅ shared server 는 PGA가 저거밖에 없어서 라지풀을 늘려야한다.

💡 shared server procecss 구성에 대한 팁!
: shared server procecss 구성을 하게 되면 PGA 영역의 거의 모든 영역이 SGA내로 들어가기 때문에 (SGA내)large pool 사이즈를 늘려주어야 한다. 그래야 shared server process 구조로 구성했을 때의 여러 문제들을 예방할 수 있다.

리스너에 서비스를 등록하는 방법 2가지

정적 서비스 등록(static service registration)

listner.ora에 4가지 정보를 다 등록해주는 방법
* 호스트 이름
* 포트
* 프로토콜
* 서비스 이름

동적 서비스 등록(dynamic service registration)

★ listner.ora 파일에 아래 3가지만 있고, 서비스 이름은 pmon이 spfile.ora 파라미터 파일 안에
service_name 파라미터를 보고 서비스 이름을 찾아서 직접 리스너에게 서비스 이름을 알려준다. 
* 호스트 이름
* 포트
* 프로토콜

⭐ 정적과 동적 서비스 등록의 차이점 잘 알고있기 !

데이터 베이스 간의 통신 구성(DB link만들기)

💡 내가 짝꿍의 emp테이블을 select 하고 싶다면 dbLink를 생성해야 한다.

CREATE DATABASE LINK <remote_global_name>
CONNECT TO <user> IDENTIFIED BY <pwd>
USING '<connect_string_for_remote_db>';

profile
Slow and steady wins the race.
post-custom-banner

0개의 댓글