Oracle Client 를 처음으로 설치해보았다.
요즘에는 Oracle이 없어지는 추세이긴 하나, 그래도 DB 공부를 위하여 설치하였다.
우선 Oracle Client가 왜 필요한지부터 알아 보았다.
Oracle Client 가 필요한 이유는 DB 서버에 접근하기 위함이다.
보통은 AP서버 (Application 서버) 와 DB서버(DBMS가 설치되어있는 서버) 가 분리되어 있기 때문에 서로 연결하기 위해서는 이 Oracle Client 가 필요하다. (큰 회사일수록 AP 서버와 DB 서버는 분리되어있었다.)
필요한 이유와 DB의 구조에 대해서는 아주 잘 정리되어있는 글을 첨부한다.
참고 : https://loosie.tistory.com/506
따라서 Oracle Client가 필요하고 대부분은 linux 를 사용할 것이기 때문에 OS는 linux 용으로 설치하였다.
필자의 Oracle 버전은 12.2 버전이였다.
버전확인을 위한 명령어를 아래에 적는다.
select * from v$version
버전 확인이 끝났다면 해당 버전의 Oracle Client 를 설치한다.
12.2 버전이였으므로 12.2 버전에 해당하는 Oracle Client를 다운받았다.
Oracle Client 버전이 DB 버전보다 낮은건 호환이 잘 될테지만, Oracle Client 버전이 더 높다면 호환이 잘 안될 가능성이 높다. 따라서 버전은 그냥 맞춘다고 외우면 될 것 같다.
rpm 파일로 받아도 된다. rpm으로 받을 경우 rpm 작업으로 설치가 가능하다.
그러나 필자는 root 로 설치를 하지 않고 경로도 default 값으로 셋팅을 하지 않기 위하여 .zip 파일로 받았다.
다운을 받은 항목은 다음과 같다.
- instantclient-basic-linux.x64-12.2.0.1.0.zip
- instantclient-sqlplus-linux.x64-12.2.0.1.0.zip
- instantclient-sdk-linux.x64-12.2.0.1.0.zip
- instantclient-precomp-linux.x64-12.2.0.1.0.zip
precomp 를 제외하고 3개만 있어도 괜찮다.
필자가 precomp를 다운받은 이유는 소스를 빌드하기 위함이다.
당연한 얘기지만 Proc 로 개발이된 소스들은 *.h 파일들이 존재해야 빌드가 가능하다. 따라서 precomp 파일도 필요하다.
따라서 설치해놓는 것이 좋다.
이제 Ap서버 (Application 서버) 에 해당 *.zip 파일들을 모두 배포한다. (Filezilla , Winscp 등으로 배포)
설치할 계정으로 접속하여 zip 파일을 모두 푼다.
위와같이 나오게 된다.
이제 실행할 계정의 .bash_profile 에 환경변수를 물려준다. ( 로그인 시 계속 환경변수가 적용되어야 함으로 .bash_profile 에 적용 )
export ORACLE_HOME=/home/dbms/instantclient_12_2
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME/bin:$PATH
export NLS_LANG=KOREAN_KOREA.AL32UTF8
적용이 완료되었다면 이제 마지막 단계이다.
tnsnames.ora 를 생성하여 설정하여준다.
tnsnames.ora 는 연결할 DB 서버의 정보들을 넣는 것이다. (ip, port, sid)
"DBNAME" =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP) (HOST = "X.X.X.X") (PORT = "port번호"))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = "sid")
)
)
"" 가 있는 부분들을 전부 기입하여 넣으면 된다. ("" 는 지우면된다)
이 tnsnames.ora는 아무곳에다 넣어도 된다. 왜냐하면 TNS_ADMIN 이라는 환경변수를 만들어서 넣어줄거라서 명시하면 해주면 된다.
필자는 tnsnames.ora 파일을 생성 후 /home/dbms에 놓았다.
이제 .bash_profile에 맨 밑부분에 아래 항목을 추가해 준다.
export TNS_ADMIN=/home/dbms
이제 .bash_profile 을 다시 물린다.
# 1번 방법
cd ~; source .bash_profile
# 2번 방법
cd ~; . .bash_profile
# 3번 방법
# 재기동한다.
안될 경우 .bash_profile 이 홈디렉토리 밑에 없는 것이니 위치 잘 이동하길 바란다.
이후 sqlplus 를 실행하면 잘 작동 될 것이다.
sqlplus 계정/password@sid이름
위와 같이 접속해서 접속이 잘 되는지 확인하면 된다.