4-1 Oracle 데이터베이스에 접속하는 소프트웨어
Oracle Net : 데이터베이스 서버와 다른 컴퓨터가 네트워크를 경유하여 Oracle 데이터베이스에 접속하기 위해서는, 그 컴퓨터와 데이터베이스 서버의 각각의 작업이 필요하다.
- 클라이언트 컴퓨터와 데이터베이스 서버에서의 필요한 작업
대상 | 필요한 작업 |
클라이언트 컴퓨터 | - Oracle 클라이언트의 설치 - Oracle Net의 구성 |
데이터베이스 서버 | - Oracle Net의 구성 |
클라이언트/서버형
Web어플리케이션형
리모트 접속의 전체상
- 리스너는 클라이언트로부터 지정된 데이터베이스 서버명(서비스명)에 대응하는 Oracle 데이터베이스 접속을 중계하여, 클라이언트와 Oracle 데이터베이스의 접속이 확립될 수 있게 한다. 단, 접속된 상태에서 리스너를 다시 종료하여도 접속은 유지된다.
Oracle Net 구성을 지원하는 Tool
Oracle Net에는 listener.ora, tnsnames.ora 등의 설정파일에 설정을 기재해 놓는다. GUI로 설정을 간편하게 조작할 수 있도록, 여러 툴이 지원되고 있다.
- Oracle Net Manager (NETMGR)
- Oracle Net Configuration Assistant (NetCA)
Oracle Enterprise Manager Cloud Control로도 Oracle Net 구성을 설정할 수 있다.
4-2 리스너 기동/정지 및 설정
리스너: 데이터베이스 서버에서 동작하는 것으로, 네트워크를 통해 접속요구를 받고, 접속요구를 Oracle 데이터베이스에 전송하는 역할을 담당한다. 인스턴스와는 별개의 독립된 프로세스이다.
listener.ora 리스너 설정
'LISTENER = ' : 리스너명
'PROTOCOL = TCP' : 리스너가 접속요구를 받는 프로토콜
'HOST = ' : 리스너가 기동하는 데이터베이스 서버 호스트명(IP주소 혹은 호스트 컴퓨터명)
'PORT = ' : 리스너가 접속요구를 받아들이는 포트번호
LISTENER 설정이 잘못되었다면 당연히, 인스턴스 접속은 불가하며 삽질의 길로 빠져들게 된다...
default listener
리스너명: LISTENER
포트번호: 1521 (간이 접속 네이밍에서, 포트번호가 1521인 경우에는 생략할 수 있다.)
프로토콜: TCP/IP
동일 데이터베이스상 여러 리스너의 기동
하나의 데이터베이스 서버에 이름이 다른 복수개의 리스너를 기동할 수 있다. 단, 리스너 각각이 서로 다른 포트번호를 사용하고 있어야 한다.
리스너 제어 유틸리티(lsnrctl)를 이용한 관리
리스너 제어 유틸리티는, 터미널이나 커맨드 프롬프트에서 사용하는 command line base tool이다.
커맨드 지정 | 처리내용 |
lsnrctl start [리스너명] | 리스너를 기동한다. |
lsnrctl stop [리스너명] | 리스너를 정지시킨다. |
lsnrctl status [리스너명] | 리스너의 가동상태와 리스너가 인식하는 데이터베이스 서버를 확인한다. |
lsnrctl services [리스너명] | 리스너의 가동상태와 리스너가 인식하는 데이터베이스 서비스의 상세정보를 확인한다. |
4-3 클라이언트 접속
리모트 접속과 접속식별자
접속형식 | SQL*Plus 커맨드 서식 |
로컬접속 | sqlplus <유저명>/<패스워드> |
리모트접속 | sqlplus <유저명>/<패스워드>@<접속식별자> |
로컬접속: 네트워크를 경유하지 않는 데이터베이스 서버 내의 클라이언트와 Oracle 데이터베이스의 접속형태이다. Oracle Net도 필요없다.
네이밍 메소드
네이밍 메소드 | 접속식별자로부터 접속 정보를 해결하는 방법 |
간이접속 네이밍 | sqlplus <유저명>/<패스워드>@<호스트명>:<포트번호>/<데이터베이스 서비스명> ex)sqlplus sh/sh@db.oracle.com:1521/orcl.us.oracle.com |
로컬 네이밍 | 클라이언트 컴퓨터의 설정파일 tnsnames.ora에 접속식별자와 접속정보의 대응관계를 기술해 놓는다. |
디렉토리 네이밍 | LDAP(유저의 조직, 컴퓨터 등 여러 정보를 집중관리하기 위해 사용하는 인터넷 준거) 디렉토리 서버에 접속식별자와 접속정보의 대응관계를 기술해 놓는다. |
외부 네이밍 | 외부 네이밍 서비스에 접속식별자와 접속정보의 대응관계를 기술해 놓는다. |
로컬 네이밍과 tnsnames.ora
로컬 접속의 경우에는 <유저명>/<패스워드>@<접속식별자>를 tnsnames.ora파일의 <넷 서비스명>에 대응하는지를 확인하고 리스너에 접속요구를 보낸다. 이 넷 서비스명(접속식별자)는 파일 내의 변경이 발생하더라도 밑의 설정만 변경하면 되므로 굳이 변경해줄 필요 없다.
연습문제
1. Oracle 데이터베이스의 Maintenance가 갑자기 실행되었다. 그 사이, 클라이언트로부터의 접속을 막기 위해, 리스너를 정지할 필요가 생겼다. 리스너를 정지하는 방법으로서 적절한 것을 모두 고르시오.
A. Net Manager를 사용하여 리스너를 정지한다.
B. Oracle Enterprise Manager Cloud Control를 사용하여 리스너를 정지한다,
C. lsnrctl stop 커맨드를 사용하여 리스너를 정지한다.
D. lsnrctl services 커맨드를 사용하여 리스너를 정지한다,
E. Oracle Enterprise Manager Database Express로 리스너를 정지한다.
2. default listener에 대해서 알맞은 설명을 모두 고르시오.
A. 포트번호는 1521이다.
B. 이름은 LISTENER이지만, 다른 이름으로 설정하는 것이 가능하다.
C. lsnrctl 커맨드로 리스너명을 생략하면, default listener을 지정한 것으로 인식한다.
D. listener.ora 파일이 존재하지 않아도 인식된다.
정답
1. B,C (A- Net Manager는 Net 구성 파일 (sqlnet.ora, listener.ora, tnsnames.ora)를 작성/편집하는 툴이다. 리스너의 기동/정지에는 관여하지 않는다.
2. A,C,D
'Oracle > Oracle Architecture' 카테고리의 다른 글
오라클마스터 브론즈(6) 데이터베이스 저장공간구조 관리 (0) | 2022.09.09 |
---|---|
오라클마스터 브론즈(5) Oracle 인스턴스 관리 (0) | 2022.09.07 |
오라클마스터 브론즈(3) Oracle Enterprise Manager Database Express 및 SQL 관리 TOOL (2) | 2022.09.05 |
오라클마스터 브론즈(2) Oracle 설치와 데이터베이스 작성 (0) | 2022.08.30 |
오라클마스터 브론즈(1) 오라클 데이터베이스 관리 개요 (0) | 2022.08.29 |