✔️ 오라클 설치 다운로드 사이트에 오라클 클라이언트 설치 프로그램이 있는데, 이것을 설치하면 오라클넷이 설치된다.
✔️ Oracle Net 구성파일에는 4가지가 있는데, 내가 접속하려는 서버 ip 주소
, 내가접속하려는 서버의 인스턴스이름(sid)- 서비스이름
, 포트번호
, 프로토컬
✔️ 클라이언트에서 데이터 베이스 서버로 접속하기 위해서 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
이렇게 하면 리스너를 통해 접속하는 것! -> 자기자리에서 노트북이나 컴퓨터로 응용프로그램 통해 들어가는 것은 이렇게 들어간다.
오라클 넷 리스너는 명령행 유틸리티lsnrctl
나 em을 통해 제어가능
. oraenv
ORACLE_SID = [+ASM] ? +orcl
[+ASM:~]$ lsnrctl status
[+ASM:~]$ srvctl -h -- help 명령어
[+ASM:~]$ srvctl stop listener
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 를 써라 !
✅ 데이터베이스 관리
✅ 백업 및 recovery 작업
✅ 일괄 처리 및 대량 로드 작업
✅ 데이터 웨어하우스 작업
✅ 디스패처와 서버프로세스 사이에 응답Q, 요청Q가 있는데 유저가 sql요청하면 요청Q에 디스패처가 올려놓고 서버프로세스가 결과를 응답Q에 두면 이 결과를 디스패처가 유저에게 전달한다.
💡
Dedicated server 프로세서 구조는
하나의 유저프로세서당 ----------> 하나의 서버 프로세서 구조이고
Shared server 프로세서 구조는
여러개의 유저프로세서 -------- 디스패처들 ---------> 서버 프로세서들이 있다.유저수가 많은 쿠팡이나 인터파크 같은 사이트에서는 shared server 구조를 구성하고 있습니다.
그런데 Shared server 구조로 구성하게 되면 pga 영역에 있는 상당수의 영역들이 전부 SGA 영역으로 들어갑니다.
✅ shared server 는 PGA가 저거밖에 없어서 라지풀을 늘려야한다.
💡 shared server procecss 구성에 대한 팁!
: shared server procecss 구성을 하게 되면 PGA 영역의 거의 모든 영역이 SGA내로 들어가기 때문에 (SGA내)large pool 사이즈를 늘려주어야 한다. 그래야 shared server process 구조로 구성했을 때의 여러 문제들을 예방할 수 있다.
정적 서비스 등록(static service registration)
listner.ora에 4가지 정보를 다 등록해주는 방법 * 호스트 이름 * 포트 * 프로토콜 * 서비스 이름
동적 서비스 등록(dynamic service registration)
★ listner.ora 파일에 아래 3가지만 있고, 서비스 이름은 pmon이 spfile.ora 파라미터 파일 안에 service_name 파라미터를 보고 서비스 이름을 찾아서 직접 리스너에게 서비스 이름을 알려준다. * 호스트 이름 * 포트 * 프로토콜
⭐ 정적과 동적 서비스 등록의 차이점 잘 알고있기 !
💡 내가 짝꿍의 emp테이블을 select 하고 싶다면 dbLink를 생성해야 한다.
CREATE DATABASE LINK <remote_global_name>
CONNECT TO <user> IDENTIFIED BY <pwd>
USING '<connect_string_for_remote_db>';