5단계. 데이터베이스 구성
웹서버에서 오라클 클라이언트로 DB 시스템 연결
DB 시스템 로컬에서 SQL Plus로 데이터베이스 상태를 확인해 봤다. 이번에는 웹서버에서 DB 서버로 접속 테스트를 해 보겠다.
웹서버와 오라클 데이터베이스의 통신은 오라클 리스너를 통해서 TCP 1521 포트로 이루어진다. 이를 위해 먼저 다음과 같이 데이터베이스 사용 시큐리티 리스트 “secListDB”에 웹서버 서브넷(2개)에서 오는 1521 포트 트래픽에 대한 Stateful Ingress 규칙을 추가한다.
Ingress / Egress |
Source CIDR |
IP 프로토콜 |
Source 포트 범위 |
Destination 포트 범위 |
Ingress |
10.0.3.0/24 |
TCP |
ALL |
1521 |
Ingress |
10.0.4.0/24 |
TCP |
ALL |
1521 |
시큐리티 리스트 설정이 끝나면 웹서버#1,2에 root 권한으로 오라클 인스턴트 클라이언트를 설치한다. 먼저 YUM 레파지토리 정보를 최신 버전으로 것으로 다운로드 받는다.
※ 아래 내용은 오라클 리눅스 블로그 (https://blogs.oracle.com/linux/oracle-instant-client-rpms-now-available-on-oracle-linux-yum-servers-in-oci) 내용을 참조했다.
[opc@web1 ~]$ cd /etc/yum.repos.d/ [opc@web1 yum.repos.d]$ sudo mv public-yum-ol7.repo public-yum-ol7.repo.org [opc@web1 yum.repos.d]$ export REGION=`curl http://169.254.169.254/opc/v1/instance/ -s | jq -r '.region'| cut -d '-' -f 2` [opc@web1 yum.repos.d]$ sudo -E wget http://yum-$REGION.oracle.com/yum-$REGION-ol7.repo --2019-01-11 04:18:54-- http://yum-iad.oracle.com/yum-iad-ol7.repo Resolving yum-iad.oracle.com (yum-iad.oracle.com)... 129.213.70.49 Connecting to yum-iad.oracle.com (yum-iad.oracle.com)|129.213.70.49|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 17396 (17K) [application/octet-stream] Saving to: ‘yum-iad-ol7.repo.1’
100%[================================================================================>] 17,396 --.-K/s in 0s
2019-01-11 04:18:54 (161 MB/s) - ‘yum-iad-ol7.repo.1’ saved [17396/17396] |
그리고, YUM 레파지토리 정보에 “ol7_oci_included” 옵션을 활성화한다.
[opc@web1 yum.repos.d]$ sudo yum-config-manager --enable ol7_oci_included Loaded plugins: langpacks ========================================================================= repo: ol7_oci_included ========================================================================== [ol7_oci_included] async = True : : username = |
YUM list 명령으로 확인하면 현재 가용한 오라클 인스턴트 클라이어트를 볼 수 있다.
[opc@web1 yum.repos.d]$ yum list oracle-instantclient* Loaded plugins: langpacks, ulninfo Installed Packages oracle-instantclient18.3-basic.x86_64 18.3.0.0.0-2 @ol7_developer Available Packages oracle-instantclient12.2-basic.x86_64 12.2.0.1.0-1 ol7_oci_included oracle-instantclient12.2-basiclite.x86_64 12.2.0.1.0-1 ol7_oci_included oracle-instantclient12.2-devel.x86_64 12.2.0.1.0-1 ol7_oci_included oracle-instantclient12.2-jdbc.x86_64 12.2.0.1.0-1 ol7_oci_included oracle-instantclient12.2-odbc.x86_64 12.2.0.1.0-1 ol7_oci_included oracle-instantclient12.2-precomp.x86_64 12.2.0.1.0-1 ol7_oci_included oracle-instantclient12.2-sqlplus.x86_64 12.2.0.1.0-1 ol7_oci_included oracle-instantclient12.2-tools.x86_64 12.2.0.1.0-1 ol7_oci_included oracle-instantclient18.3-basiclite.x86_64 18.3.0.0.0-1 ol7_oci_included oracle-instantclient18.3-devel.x86_64 18.3.0.0.0-1 ol7_oci_included oracle-instantclient18.3-jdbc.x86_64 18.3.0.0.0-1 ol7_oci_included oracle-instantclient18.3-odbc.x86_64 18.3.0.0.0-1 ol7_oci_included oracle-instantclient18.3-precomp.x86_64 18.3.0.0.0-1 ol7_oci_included oracle-instantclient18.3-sqlplus.x86_64 18.3.0.0.0-1 ol7_oci_included oracle-instantclient18.3-tools.x86_64 18.3.0.0.0-1 ol7_oci_included |
이번 테스트에서는 웹서버에서 데이터베이스로 SQL Plus로 접속 테스트를 할 것이므로 sqlplus 버전의 오라클 인스턴트 클라이언트를 설치했다. 버전은 12.2 버전을 선택했다.
[opc@web1 yum.repos.d]$ sudo yum install oracle-instantclient12.2-sqlplus.x86_64 -y Loaded plugins: langpacks, ulninfo ol7_UEKR5 | 2.5 kB 00:00:00 : : Dependency Installed: oracle-instantclient12.2-basic.x86_64 0:12.2.0.1.0-1
Complete! |
sqlplus 버전을 설치하면 basic 버전도 함께 설치된다.
[opc@web1 yum.repos.d]$ rpm -qa | grep oracle oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64 oracle-logos-70.0.3-4.0.9.el7.noarch oracle-cloud-agent-0.0.2-146.el7.x86_64 oracle-instantclient12.2-sqlplus-12.2.0.1.0-1.x86_64 oraclelinux-release-7.6-1.0.15.el7.x86_64 |
웹서버#2에 대해서도 위와 동일하게 오라클 인스턴트 클라이언트 설치 작업을 수행한다.
이제 웹서버에서 데이터베이스로 SQL Plus를 이용해서 접속 테스트를 해 본다. 다음은 웹서버#1에서 테스트한 결과이다. 웹서버#2에서도 동일하게 테스트한다.
$ ssh -t -o ProxyCommand='ssh -i C:\\Users\\youjung\\.ssh\\id_rsa opc@129.213.62.228 -W %h:%p %r' -i C:\\Users\\youjung\\.ssh\\id_rsa opc@10.0.3.2 Last login: Tue Jan 15 02:10:28 2019 from bastion.subnetbs.dbappvcn.oraclevcn.com [opc@web1 ~]$ hostname web1 |
SQL Plus 실행을 위한 환경 변수 설정을 하고, SQL Plus를 실행한다. 서비스 이름은 앞서 메모해 둔 Pluggable 데이터베이스 “pdb1”의 서비스 이름을 사용한다. 아래는 데이터베이스에 접속해서 현재 데이터베이스 상태와, 현재 세션 정보를 조회한 내용이다.
환경 변수 설정은 .bash_profile에 저장해서 사용할 수 있다. 또한 아래는 easy connect 방식으로 SQL Plus 실행시 접속에 필요한 모든 정보를 기술했으나, tnsname.ora 파일을 만들고 tnsnames.ora 파일을 바라보는 환경 변수를 OS에서 지정해서 사용할 수도 있다. (Ex. export TNS_ADMIN=$ORACLE_HOME)
[opc@web1 ~]$ export ORACLE_HOME=/usr/lib/oracle/12.2/client64 [opc@web1 ~]$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib [opc@web1 ~]$ export PATH=$PATH:$ORACLE_HOME/bin [opc@web1 ~]$ sqlplus sys/xxxxxxxxxxxx@10.0.5.3:1521/pdb1.subnetdbp.dbappvcn.oraclevcn.com as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on Tue Jan 15 03:41:40 2019
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Connected to: Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
SQL> select instance_name,status from v$instance;
INSTANCE_NAME STATUS ---------------- ------------ oradbp OPEN
SQL> select sys_context('USERENV','HOST'), sys_context('USERENV','IP_ADDRESS') from dual;
SYS_CONTEXT('USERENV','HOST') -------------------------------------------------------------------------------- SYS_CONTEXT('USERENV','IP_ADDRESS') -------------------------------------------------------------------------------- web1 10.0.3.2 |
작성자: 정영균
OCI를 이용해서 데이터베이스 어플리케이션 아키텍쳐 구성하기 시리즈
1. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – Intro
2. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – VCN
3. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – VCN
4. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – VCN (인터넷게이트웨이)
5. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – VCN (라우트테이블)
6. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – VCN (시큐리티리스트)
7. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – VCN (서브넷)
8. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – Bastion 서버
9. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – Bastion 서버 (시큐리티 리스트)
10. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – Bastion 서버 (인스턴스)
11. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – Bastion 서버 (웹서버 연결)
12. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – Bastion 서버 (NAT 설정)
13. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 웹서버
14. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 웹서버 (rsync)
15. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 웹서버 (NFS 설정)
16. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 웹서버 (NFS 설정, 파일시스템)
17. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 웹서버 (NFS 설정, 파일시스템마운트)
18. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 로드밸런서
19. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 로드밸런서 (아파치웹서버)
20. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 로드밸런서 (로드밸런서생성)
21. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 로드밸런서 (백엔드서버)
22. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 로드밸런서 (리스너)
23. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 데이터베이스
24. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 데이터베이스 (DB 시스템)
25. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 데이터베이스 (데이터베이스구성)
26. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 데이터베이스 (DB 시스템연결)
27. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 데이터베이스 (DB 시스템연결)
'Cloud > Oracle Cloud Infrastructure' 카테고리의 다른 글
29. OCI를 이용해서 데이터베이스 어플리케이션 아키텍쳐 구성하기 - 데이터베이스 (DR 구성) (0) | 2019.01.17 |
---|---|
28. OCI를 이용해서 데이터베이스 어플리케이션 아키텍쳐 구성하기 - 데이터베이스 (백업) (0) | 2019.01.17 |
26. OCI를 이용해서 데이터베이스 어플리케이션 아키텍쳐 구성하기 - 데이터베이스 (DB 시스템연결1) (0) | 2019.01.17 |
25. OCI를 이용해서 데이터베이스 어플리케이션 아키텍쳐 구성하기 - 데이터베이스 (데이터베이스구성) (0) | 2019.01.17 |
24. OCI를 이용해서 데이터베이스 어플리케이션 아키텍쳐 구성하기 - 데이터베이스 (DB 시스템) (0) | 2019.01.17 |