SID 와 Service name 의 차이는 무엇일까요? 오라클 데이터베이스를 운영하면서 SID와 Service name은 거의 구분하지 않고 사용해 왔습니다. 보통 일반적인 테스트 환경이나 소규모 사이트의 경우 데이타베이스가 하나만으로 구성되어 있고 이런 경우라면 SID와 service name을 구분할 필요가 없기 때문에 데이터베이스 이름(service name)이 SID가 됩니다. 하지만 RAC 로 구성하여 데이타베이스 두개가 동시 가동되는 경우라면 이 SID 가 서로 다를 수 있기 때문에 개념을 인지하고 중복 확인을 진행 하는게 좋을 것 같습니다. ( Service name이 더 큰 개념으로 SID 2개를 합쳐서 Service name으로 서비스가 가능합니다.) 오라클 클라이언트 프로그램 연결 로직 설명입니다. DB에 접속하는 클라이언트 프로그램의 경우에는 접속하고자 하는 오라클 인스턴스 정보를 필요로 합니다. 프로그램에 접속하는데 필요한 정보로는 서버의IP 오라클SID 접속 프로토콜 같은 정보가 필요합니다. 이 정보를 하나로 묶어서 서비스명으로 대표하고, 이 서비스명으로 클라이언트 프로그램이 서버에 접속하는데 사용합니다. 해당 정보는 클라이언트 서버의 tnsnames.ora 라는 파일에 기재되어 있습니다. 1. 오라클 데이타베이스에 SQLPLUS로 접속합니다. 오라클 클라이언트가 설치된 서버에서 윈도우와 R 키를 눌러 실행창을 띄웁니다. 입력란에 cmd라고 입력하여 명령 프롬프트 창을 활성화합니다. SQLPLUS로 오라클 데이터베이스에 DAB 계정으로 접속을 진행합니다. DBA로 접속하는 명령어 입니다. SQLPLUS " / as sysdba" 2. 오라클 데이타베이스 'service name'를 확인하는 방법입니다. SQLPLUS로 DB에 접속한 다음 아래의 명령어를 실행하여 SID SQL> SELECT NAME, DB_UNIQUE_NAME FROM v$database; 3. 오라클 SID를 확인하는 방법입니다. SQL> SELECT instance FROM v$thread; Oracle 오라클 sid, service name 값 확인◈ SID DBMS(데이터 베이스를 관리 시스템) 서버를 기동하기 위해서는 DB서버가 기동하는 서버의 IP 오라클의 경우 인스턴스가 서버 역할을 하는 DBMS프로세스인데, 인스턴스가 기동할때 SID를 필요로 합니다. 즉 SID는 인스턴스의 이름인 셈입니다. SID가 필요한 이유는 한 서버(H/W)에 여러개의 인스턴스가 기동될 수 있으므로 구별하는 태그가 필요합니다. 따라서 SID는 DB서버에서 필요한 정보입니다. SID정보는 환경변수와, LISTENER.ORA라는 파일에서 정의 됩니다. DB에 접속하는 클라이언트 프로그램의 경우 접속하고자 하는 오라클 인스턴스 정보를 필요로 합니다. 클라이언트 프로그램이 접속하는데 필요한 정보는 서버IP, 오라클SID, 접속프로토콜 같은 정보가 필요합니다. 이 정보는 클라이언트쪽의 TNSNAMES.ORA라는 파일에 정의 되어있습니다. - sid 확인방법 1. SQLPLUS에서 확인 SQL> conn / as sysdba 2. 제어판 >관리도구 > 서비스에서 OracleSrvice 서비스명 ------------------------------------------------------------------- sqlgate나 sqldeveloper같은 툴에서 db에 연결할때, 간단하게
설명하면, 고로 DB장비가 2대로 구성이
되어있으면, 자세한 설명은 -> http://blog.naver.com/myshyz/50037204012
select name from v$database; select instance from v$thread; jdbc 에서 thin 드라이버로 오라클에 접속할 때는 SID를 알아야 한다. <tnsname.ora 의 작성 예> PRODDB = 서비스명과 인스턴스명과 데이타베이스명과 SID는 서로 비슷한 듯 하면서 약간 다르다. 1. 오라클 데이타베이스명을 확인하는 방법 SELECT NAME, DB_UNIQUE_NAME FROM v$database; 2. 오라클 SID를 확인하는 방법 SELECT instance FROM v$thread; 일반적인 경우 데이타베이스가 하나만으로 구성 되어 있다면 데이타베이스명이 SID가 된다. 하지만 RAC 로 구성하여 데이타베이스 두개가 동시 가동되는 경우라면 이 SID 가 서로 다를 수 있기 때문에 중복
확인해야 한다.JDBC 로 접속할 때 url 정보 작성 방법 : 아래의 예제에서 보면 RAC로 묶여 있는 경우 DATABASE NAME 과 실제 INSTANCE NAME 은 서로 다를 수 있다. 데이타베이스명은 ORCL 이지만 인스턴스명은 ORCL1 과 ORCL2 로 이름이 다름. thin 드라이브 URL 에서는 이 인스턴스명을 사용해야 한다. 사용자명 입력: system/manager@PRODDB 다음에 접속됨: SQL> SELECT NAME, DB_UNIQUE_NAME FROM V$DATABASE; NAME
DB_UNIQUE_NAME SQL> SELECT INSTANCE FROM V$THREAD; INSTANCE SQL> <2012년2월10일> |