대략적인 oracle network(http://gyh214.tistory.com/112 )
기본적으로 $ORACLE_HOME/network/admin/ 안에 파일이 생성되고, 오라클엔진은 그 안 파일을 참고하여 네트워크설정을 합니다.
리스너, listener.ora
외부에서 들어오는 연결을 받아서 listener.ora안에 설정되어있는 Database들에 연결해주는 기능
파일안에 들어가는 항목들의 설명
참조사이트 : http://docs.oracle.com/cd/B28359_01/network.111/b28317/listener.htm
1. Protocol Address Section
: protocol addresses들을 정의하고, 접속요청을 허용하는 섹션입니다.
*아래와 같은 파라미터들이 사용됩니다. (이외에도 IP, RECV_BUF_SIZE, SEND_BUF_SIZE 가 사용됩니다.)
ADDRESS
2. SID_LIST Section
: using for database service, *external procedure, *Heterogeneous Services(HS), some management tools(OEM 포함)
* external procedure : PL/SQL코드에 의해 짜여진 function이나 procedure, C로 external procedure에 의해 지원이 됩니다.
* Heterogeneous Services : oracle에서 non-oracle로 접속하기 위한 서비스들,
oracle SQL을 이용해서 non-oracle data들을 oracle내에 있는 자료처럼 사용할 수 있게 합니다.
oracle procedure call을 이용해서 non-oracle 시스템, 서비스, APIs에 접속할 수 있게합니다.
SID_LIST 섹션안에는 아래와 같은 파라미터들이 사용됩니다.
예제
** extproc에 대한 여러가지 정보들
http://gyh214.tistory.com/206
http://www.datadisk.co.uk/html_docs/oracle/external_procedures.htm
http://www.orafaq.com/forum/t/91778/2/
2.7 이 외에도 SDU파라미터가 사용됩니다.(맨위 참조사이트 참조)
리스너를 제어하는 방법
lsnrctl을 사용합니다.
$ lsnrctl OPERATIONS listener_name
OPERATION의 종류
* listener_name을 적어주지 않으면, default값인 LISTENER을 제어합니다.
** 여러개의 리스너가 존재한다면 마지막에 listener_name을 반드시 적어줍시다.
기본적으로 $ORACLE_HOME/network/admin/ 안에 파일이 생성되고, 오라클엔진은 그 안 파일을 참고하여 네트워크설정을 합니다.
리스너, listener.ora
외부에서 들어오는 연결을 받아서 listener.ora안에 설정되어있는 Database들에 연결해주는 기능
파일안에 들어가는 항목들의 설명
참조사이트 : http://docs.oracle.com/cd/B28359_01/network.111/b28317/listener.htm
1. Protocol Address Section
: protocol addresses들을 정의하고, 접속요청을 허용하는 섹션입니다.
*아래와 같은 파라미터들이 사용됩니다. (이외에도 IP, RECV_BUF_SIZE, SEND_BUF_SIZE 가 사용됩니다.)
ADDRESS
DESCRIPTION
QUEUESIZE
1.1 ADDRESS : single listener protocol address를 정의할때 사용됩니다. DESCRIPTION 파라미터 안에 선언됩니다.
예제 :
예제 :
istener_name=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=hr-server)(PORT=1521))
(ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1522)))
1.2 DESCRIPTION : listener protocol address들을 묶어주는 역할을 합니다.
(여러개의 주소를 사용하고, 그 여러개의 주소를 하나의 리스너만을 사용해서 관리하고 싶을 때)
listener_name=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=hr-server)(PORT=1521))
(ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1522)))
1.3 QUEUESIZE : 접속요청을 허용할 수 있는 최대값입니다.
Default
Solaris Operating System: 5
Windows NT 4.0 Workstation: 5
Windows NT 4.0 Server: 50
예시
listener_name=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=hr-server)(PORT=1521)(QUEUESIZE=20)))
2. SID_LIST Section
: using for database service, *external procedure, *Heterogeneous Services(HS), some management tools(OEM 포함)
* external procedure : PL/SQL코드에 의해 짜여진 function이나 procedure, C로 external procedure에 의해 지원이 됩니다.
* Heterogeneous Services : oracle에서 non-oracle로 접속하기 위한 서비스들,
oracle SQL을 이용해서 non-oracle data들을 oracle내에 있는 자료처럼 사용할 수 있게 합니다.
oracle procedure call을 이용해서 non-oracle 시스템, 서비스, APIs에 접속할 수 있게합니다.
예제 :
SID_LIST_listener_name=
SID_LIST_listener_name=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=global_database_name)
(SID_NAME=sid)
(ORACLE_HOME=oracle_home))
(SID_DESC=...))
SID_LIST 섹션안에는 아래와 같은 파라미터들이 사용됩니다.
ENVS
GLOBAL_DBNAME
ORACLE_HOME
PROGRAM
SID_DESC
SID_LIST
SID_NAME
SDU
2.1 ENVS : PROGRAM parameter안에 명시된 program을 실행시키기 위한 환경변수를 지정해주는 파라미터
SID_DESC파라미터 안에 포함됩니다.
* windows에서는 지원이 되지 않는 파라미터입니다.
* 적어주지 않는다면, listener의 환경설정을 기본으로 가집니다.
사용법
(ENVS="variable1=value1, variable=value2")
예제
SID_LIST_listener_name=
(SID_LIST=
(SID_DESC=
(SID_NAME=plsextproc)
(ORACLE_HOME=/oracle11g)
(PROGRAM=extproc)
(ENVS="LD_LIBRARY_PATH=/oracle/11g/lib:/oracle/11g/ctx/lib"))
(SID_DESC=
(SID_NAME=test)
(PROGRAM=/tmp/myexec)
(ENVS="LD_LIBRARY_PATH=/private/xpm/lib:/private/mylibs,MYPATH=/usr/ucb:/usr/local/packages,
APL_ENV_FILE=/apl/conf/env.txt")))
(ENVS="LD_LIBRARY_PATH=/private/xpm/lib:/private/mylibs,MYPATH=/usr/ucb:/usr/local/packages,
APL_ENV_FILE=/apl/conf/env.txt")))
2.2 GLOBAL_DBNAME : database service를 정의하기 위한 파라미터
클라이언트쪽에서 서버로의 접속요청이 진행되는 동안, 리스너는 GLOBAL_DBNAME와
클라이언트쪽 local naming parameter(tnsnames.ora)안의 SERVICE_NAME을 같은지 살펴봅니다.
클라이언트쪽 local naming parameter(tnsnames.ora)안의 SERVICE_NAME을 같은지 살펴봅니다.
만약에 클라이언트의 tnsnames.ora의 connect descriptor가 SID 파라미터로 사용되었으면, GLOBAL_DBNAME은 사용되지 않습니다.
이 파라미터는 oracle7, oracle8.0의 네트워크구성을 위해서 존재하지만, Oracle9i의 몇몇 구성이나, 관리툴에 의해서도 필요합니다.
해당 파라미터의 값은 일반적으로 DB_NAME.DB_DOMAIN 형식입니다.
SID_DESC파라미터 안에 적어줘야합니다.
예제
SID_LIST_listener_name=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=sales.us.example.com)
(SID_NAME=sales)
(ORACLE_HOME=/usr/oracle)))
2.3 PROGRAM : 실행할 서비스프로그램이름을 명시합니다., SID_DESC안에 명시됩니다.
예제
SID_LIST_listener_name=
(SID_LIST=
(SID_DESC=
(SID_NAME=sales)
(ORACLE_HOME=/usr/oracle)
(PROGRAM=extproc)))
* extproc : External Procedure** extproc에 대한 여러가지 정보들
http://gyh214.tistory.com/206
http://www.datadisk.co.uk/html_docs/oracle/external_procedures.htm
http://www.orafaq.com/forum/t/91778/2/
2.4 SID_DESC : 특정 database instance나 non-database service들의 service정보들을 명시하기 위한 파라미터
SID_LIST 파라미터안에 명시됩니다.
예제:
SID_LIST_listener_name=
(SID_LIST=
(SID_DESC=...)
(SID_DESC=...))
*SID_DESC 안에는 아래와 같은 파라미터들이 사용될 수 있습니다.
ENVS
GLOBAL_DBNAME
ORACLE_HOME
PROGRAM
SID_NAME
SDU
2.5 SID_LIST : SID description들을 정의하기 위한 파라미터
예제 :
SID_LIST_listener_name=
(SID_LIST=
(SID_DESC=...)
(SID_DESC=...))
2.6 SID_NAME : instance의 SID를 명시하기 위해서 사용하는 파라미터
파라미터파일에서 INSTANCE_NAME 파라미터의 내용과 같아야 합니다.
예제 :
SID_LIST_listener_name=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=sales.us.example.com)
(SID_NAME=sales)
(ORACLE_HOME=/usr/oracle)))
2.7 이 외에도 SDU파라미터가 사용됩니다.(맨위 참조사이트 참조)
리스너를 제어하는 방법
lsnrctl을 사용합니다.
$ lsnrctl OPERATIONS listener_name
OPERATION의 종류
start stop status services version reload save_config trace spawn change_password quit exit set* show*
* listener_name을 적어주지 않으면, default값인 LISTENER을 제어합니다.
** 여러개의 리스너가 존재한다면 마지막에 listener_name을 반드시 적어줍시다.
'Oracle > Admin' 카테고리의 다른 글
ORACLE NETWORK정리 ; Procotol Address Configuration (0) | 2012.04.03 |
---|---|
oracle network doc ; 링크 (0) | 2012.04.03 |
생성된 INDEX를 다른 tablespace로 옮기기 (0) | 2012.03.18 |
Job scheduling from (Oracle 10g) with dbms_scheduler (1) | 2012.03.18 |
Constraint violated 시 어디서 에러가 났는지 보여주는 exceptions 테이블 사용예제 (0) | 2012.03.02 |