• SID:

Instance의 고유명을 나타냄.

RAC 구조에서 instance가 2개라면,  각 instance 마다 고유의 SID를 가

 

 

• SERVICE_NAMES

개념적으로 DB에서 서비스되는 Database 서비스명을 의미,

일반적으로 1개 또는 여러 개의 instance가 결합되어 서비스 가능.

RAC구조에서 여러 인스턴스에 대해 service name을 하나로만 설정할 수 있다. (instance 마다 service name 이 달라야하는게 아님 ) + 한 instance에 여러 service name 이 있을 수 있다.

listener 가 service 명을 확인하고, 만일 해당 service name이 여러 instance를 가리킬 경우, 부하를 계산해서 접속을 한다 (load balancing)

 

서비스명만 알면 DB가 알아서 연결을 시켜준다 

- RAC구조라면 instance 들을 하나의 service name으로 설정하여, 가용성 (instance01 장애 시 instance02로 접속 가능)

 

 

• DB_NAME

DB의 NAME,

DB_UNIQUE_NAME은 DR을 고려한 DB의 고유 NAME,

DB_DOMAIN은 집합적인 DB 도메인

 

 

• GLOBAL_DBNAME

역시 DB 이름 이지만 DB_NAME + DB_DOMAIN으로 구성.

기본 SERVICE_NAME은 GLOBAL_DBNAME으로 설정함.

기본 service_name 이 global_dbname이 된다 

예시

한국지사/미국지사 이렇게 있다면, ORCL.KOR / ORCL.US 

 

 

 

예시

GLOBAL_DBNAME: ORCL.DUMMYCO

DB_NAME : ORCL

DB_DOMAIN: DUMMYCO

기본SERVICE_NAME: ORCL.DUMMYCO

 

보통은 다 동일하게 설정을 한다 

SID = DB_NAME = SERVICE_NAME = GLOBAL_DB_NAME

 

 

 

tnsnames.ora

ORCL = 
(DESCRIPTION = 
	(ADDRESS_LIST = 
    	(ADDRESS=(PROTOCOL=TCP)(HOST=10.0.0.1)(PORT=1521))
    )
    (CONNECT_DATA=
    	(SERVICE_NAME=ORCL)
    )
)

 

 

listener.ora

LISTENER = 
	( ADDRESS_LIST = 
    	(ADDRESS= (PROTOCOL=TCP)(HOST=10.0.0.1)(PORT=1521))
		(ADDRESS= (PROTOCOL=IPC)(KEY=PNPKEY))
    )
    
SID_LIST_LISTENER=
    (
    	( SID_LIST = 
        	(SID_DESC=
            	(GLOBAL_DBNAME=ORCL)
                (SID_NAME=ORCL)
                (ORACLE_HOME=/opt/oracle/.../)
            )
        )
    )

- listener하나에 여러 sid를 넣을 수 있다 

- listener에는 service_name 항목이 없다 ??

  - global_dbname이 default로 service_name 과 mapping된다