본문 바로가기
GCP

[GCP][Ubuntu][Oracle] GCP Ubuntu 16.04 인스턴스에서 Oracle 11g 설치

by codeok 2021. 2. 14.
반응형

본 포스팅에서는 구글 클라우드 플랫폼(GCP)에서 Ubuntu 16.04 VM 인스턴스를 만들어서 Oracle을 설치해보겠습니다.

 

현재 학습 기록용으로 블로그를 작성하고 있습니다.

부족한 내용이 있거나 맞지 않은 내용이 있으면 댓글 부탁드립니다!

TODO

1. GCP Ubuntu 16.04 VM 인스턴스 생성하기
2. Putty로 VM 인스턴스에 원격으로 접속해 Oracle 설치하기
3. Oracle 11g 설치하기
4. GCP VM인스턴스에서 sqlplus로 접근해서 UTF-8설정하기
5. GCP VM인스턴스 접근 허용을 위한 방화벽 설정하기
5. 내 PC cmd에서 sqlplus로 Oracle이 설치된 GCP VM인스턴스에 원격 접속하기

 

 

1. GCP Ubuntu 16.04 VM 인스턴스 생성하기

  • 인스턴스만들기 클릭

 

1.1 인스턴스 만들기 설정

  • 1. 이름 : oracle-test 
    • 자신이 정하고 싶은 이름을 하시면 됩니다.
  • 2. 리전 :  서울
    • 인스턴스 생성 리전을 서울로 해줍니다.
  • 3. 머신 구성 -> 시리즈 : N2
  • 4. 부팅 디스크 변경 선택

 

 

  • 운영체제 : Ubuntu

 

  • 버전 : Ubuntu 16.04 LTS
    • 기본 설정으로 놔두기
  • 선택 클릭

 

  • 방화벽 : HTTP/HTTPS 트래픽 허용 둘 다 선택
  • 만들기 클릭 

 

  • 만들기를 클릭하고 하단에 생성중이라고 나옵니다.

 

  • 조금 기다리시면 oracle-test 인스턴스가 생성된 것을 볼 수 있습니다.
    • 추후에 외부 IP인 34.64.185.2 주소를 Putty로 접근해보겠습니다.

2. Putty로 VM 인스턴스에 원격으로 접속해 Oracle 설치하기

Putty 다운로드 경로는 하단에 있습니다.

자신의 운영체제와 32/64bit에 맞는 버전을 설치해주시면 됩니다.

맥 또는 리눅스에서는 CMD에서 RSA Key pair를 생성해야 합니다.

본 포스팅에서는 윈도우 운영체제 기준으로 하기에 Putty로 진행하도록 하겠습니다.

 

Download PuTTY: latest release (0.74)

This page contains download links for the latest released version of PuTTY. Currently this is 0.74, released on 2020-06-27. When new releases come out, this page will update to contain the latest, so this is a good page to bookmark or link to. Alternativel

www.chiark.greenend.org.uk

 

 

2.1 Puttygen으로 GCP VM 인스턴스에 접근하기 위한 RSA Key pair 생성하기

  • Generate 선택
    • 키 생성을 위해서 Generate 를 눌러줍니다.
  • Generate를 누르고 초록색 바가 움직이면 마우스를 몇 번 클릭해주면 더 빨리 생성이 됩니다.

 

 

  • Generate를 누르고 나면 아래와 같은 내용이 생깁니다.
  • Key passphrase와 Confirm passpharse를 자신이 원하는 비밀번호를 입력해줍니다.
    • 추후에 원격으로 접속할 때 입력할 패스워드입니다.

 

 

  • 1. Key comment : oracle-test
    • 키 이름은 자신이 원하는 것으로 해줍니다. 저는 GCP VM 인스턴스와 이름을 그냥 같게 하겠습니다.
  • 2. Key / Confirm passphrase : 자신이 원하는 비밀번호와 비밀번호 확인을 입력해줍니다.
  • 3. Save private key를 누르면 하단에 파일 생성 위치를 선택하고 생성하면 됩니다.
  • 4. 해당 영역은 public key인데 추후에 구글 클라우드 플랫폼 -> 메타데이터 -> SSH 에 등록을 해줘야 하기에 미리 복사를 해줍니다.

 

 

 

  • 3. Save private key를 누르고 나면 하단과 같이 나옵니다.
    • private key 이름 또한 저는 이름을 똑같이 하겠습니다.

 

 

  • 생성을 하고 나면 모자를 쓴 .ppk 확장자 파일이 생깁니다.

 

 

 

2.2 GCP 사이트에 생성한 public key를 SSH 키에 등록하기

  • 메타데이터 -> SSH 키 -> 수정
    • GCP 사이트에서 목록을 하단으로 내리면 메타데이터 항목이 나옵니다.
    • SSH 키를 누르고 수정을 누릅니다.

 

 

  • 기존에 PuttyGen.exe에서 생성한 public key를 전체 복사해줍니다.

 

 

  • 항목 추가 -> public key 복사 -> 저장

 

 

  • 아래와 같이 SSH키가 정상적으로 등록이 됩니다.

 

 

2.3 Putty로 GCP VM인스턴스를 SSH 접속하기

Putty로 GCP VM 인스턴스를 SSH 접근을 위해서는 이전에 생성한 Private key를 SSH -> Auth에 등록하고,

GCP VM 인스턴스 IP를 입력해줘야 한다.

 

 

  • 기존에 Key를 생성할 때 사용한 PuttyGen프로그램이 아닌 Putty 프로그램을 켜면 다음과 같은 화면이 나옵니다.

 

  • GCP 사이트의 VM인스턴스에서 외부 IP를 복사해줍니다.

 

 

  • HostName : 34.64.185.2
    • IP는 자신의 GCP VM인스턴스의 ip를 입력해줍니다. 

 

 

 

  • Connection -> SSH -> Auth -> Browse
    • 기존에 PuttyGen에서 생성한 Private key 파일을 등록해줘야 접근이 가능하다.
    • 자신이 생성한 파일의 위치를 찾아서 파일을 선택해줍니다.

 

 

  • 선택을 하고 나면 선택한 파일 이름이 나옵니다.

 

 

  • 1. Session : 클릭
  • 2. Saved Sessions : oracle-test
    • 자신이 원하는 세션 이름을 정해줍니다.
    • 다음 접속에 private key와 IP를 입력하지 않고 접속하기 위해서 세션을 저장해줍니다.
  • 3. Save를 누르면 session이 저장됩니다.
  • 4. Open : 클릭

 

 

  • login as : oracle-test
    • private key 를 생성할 때 key Comment가 아이디입니다. Key Comment를 입력해줍니다.
  • Passphrase for key : private key 생성할 때 패스워드를 입력

 

 

 

  • Welcome to Ubuntu ~가 나오고 하단에 접속한 유저명이 나오면 정상적으로 접속이 된 것입니다.

 

 

 

3. Oracle 11g 설치하기

GCP VM인스턴스에 Oracle 11g 을 설치하겠습니다.

oracle의 11g 다운로드 주소입니다.

www.oracle.com/database/technologies/xe-prior-releases.html

Oracle 사이트에서 다운받은 oracle-xe-11.2.0-1.0.x86_64.rpm을 FileZlia나 다른 FTP 프로그램으로 GCP VM인스턴스 서버에 전송해도 됩니다.

저는 구글 클라우드 플랫폼 사이트의 브라우저 원격 SSH를 통해서 파일을 업로드 하겠습니다.

 

 

  • 위 경로 사이트에 Oracle Linux x64버전을 클릭해서 다운로드 받습니다.

 

 

  • 다운 받고나서 압축을 풀어줍니다.

 

  • GCP 사이트에서 VM인스턴스 세부정보로 들어와서 SSH 

 

  • 브라우저 창에서 열기

 

  • 계정의 SSH로 접근이 됩니다.

 

 

  • 상단의 설정 탭 -> 파일 업로드

 

  • 다운로드한 oracle-xe-11.2.0-1.0.x86_64.rpm파일을 업로드합니다.
    • 아래와 같이 진행중이나오고, 시간이 좀 걸려서 기다려야 합니다.

 

 

 

3.2 필요 패키지 설치

 

  • 기존에 저장한 session인 oracle-test를 누르고 Open을 해줍니다.
    • key 이름과 비밀번호를 입력해줍니다. 
    • 그러면 이전에 세션을 저장한 인스턴스에 접속이 됩니다.

 

 

  • GCP 사이트에서 업로드한 oracle.rpm파일은 /home/hjaeddeok 경로에 있기에 /home/oracle-test로 옮겨서 작업을 하겠습니다.

 

sudo mv /home/hjaedeok/oracle-xe-11.2.0-1.0.x86_64.rpm  .

ls

 

  • 현재 경로에 oracle-xe-11.2.0-1.0.x86_64.rpm이 있는것을 볼 수 있습니다.

 

  • 패키지 인덱스 정보 업데이트
    • apt-get(Advanced Packging Tool)은 Ubuntu를 포함한 Debian계열의 리눅스에서 사용하는 패키지 관리 명령어입니다.

 

sudo apt-get update

 

 

 

 

  • Ubuntu에서는 rpm파일을 사용해서는 패키지 설치가 불가능해서, RPM을 Debian의 deb 패키지로 변경이 필요합니다.
    • alien : RPM 패키지 -> Debian 변환
    • libaio1 : Linux 커널 엑세스 라이브러리
    • unixodbc : ODBC(Open Database Connectivity) 라이브러리
    • bc 
sudo apt-get -y install alien libaio1 unixodbc bc

 

 

3.2 RPM -> DEB 변환

  • 명령을 실행하고 나서 변환되는 동안 시간이 좀 걸립니다.

 

sudo alien --scripts -d oracle*

 

  • 아래와 같이 아무동작도 하지 않습니다. 조금 기다리면 변환이 완료됩니다.

 

  • 시간이 지나면  oracle-xe_11.2.0-2_amd64.deb generated가 나옵니다.

 

3.3 Oracle 11g dpkg install

  • deb 패키지 설치
sudo dpkg --install oracle*.deb

 

 

  • 아래와 같은 명령어들이 나오면 정상적으로 된 것입니다.

 

 

  • 설치 후 Oralce 11g XE 사용을 위해 Oracle 최초 설정을 위해서는 /etc/init.d/oracle-xe configure로 설정해줍니다.
sudo /etc/init.d/oracle-xe configure

 

  • HTTP port [8080] : enter
  • port [1521] : enter
  • initial configuration : 자신의 비밀번호
  • config the password : 자신의 비밀번호 재확인
  • Do you want Oracle Database 11g Express Edition to be started on boot (y/n)  : y

 

  • 하단과 같이 나오면 정상적으로 설치가 된 것입니다.

 

 

3.4 Oracle 시작/상태확인

  • start : 시작
  • status : 상태확인
sudo systemctl start oracle-xe
sudo systemctl status oracle-xe

 

  • Active : active가 초록색이면 정상적으로 잘 동작하고 있는 겁니다.

 

3.5 Oracle 환경설정

해당 스크립트를 먼저 실행해줍니다.

. /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh

 

 

  • 실행 뒤 bash.bashrc창을 열어줍니다.
sudo vim /etc/bash.bashrc

 

  • 마지막 줄에 상단의 . /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh 을 추가해줍니다.

 

  • 데이터베이스가 저장될 폴더를 생성해줍니다.
sudo mkdir /oradata
sudo chmod 777 /oradata/

 

4. GCP VM인스턴스에서 sqlplus로 접근해서 UTF-8설정하기

  • sqlplus
    • 계정이름은 system으로 로그인
    • 비밀번호는 oracle configure시 설정한 패스워드 입력

 

 

  • SELECT문으로 인코딩과 언어를 확인하고 UTF-8과 한글로 변경하겠습니다.
SELECT * FROM sys.props$ where name='NLS_CHARACTERSET';
SELECT * from nls_database_parameters where parameter like '%CHARACTERSET%'
SELECT VALUE$ from sys.props$ where name='NLS_LANGUAGE';

 

 

 

  • 변경을 하려고 SYSTEM계정으로 sys.props$ 컬럼은 업데이트가 되지 않기에 다음과 같은 에러가 발생합니다.

 

UPDATE sys.props$ set value$='UTF8' where name='NLS_CHARACTERSET';

 

 

  • exit명령어로 종료 후에 sys로 접근합니다.
  • test1234는 oracle 설치시 설정한 패스워드입니다.

 

sqlplus /nolog
conn sys/test1234 as sysdba

 

 

  • CHARACTERSET과 LANGUAGE를 UPDATE합니다.
UPDATE sys.props$ set value$='UTF8' where name='NLS_CHARACTERSET';
UPDATE sys.props$ set value$='UTF8' where name='NLS_NCHAR_CHARACTERSET';
UPDATE sys.props$ set value$='KOREAN_KOREA.UTF8' where name='NLS_LANGUAGE';

 

 

  • 다시 한 번 SELECT 문으로 변경되었는지 확인해보면 정상적으로 변경되어 있습니다.

 

  • HANGUL_TEST 테이블 생성 후 데이터 삽입, 추력 테스트해보기
CREATE TABLE HANGUL_TEST (
   id NUMBER PRIMARY KEY,
   name VARCHAR2(200)
);

INSERT INTO HANGUL_TEST(id, name) VALUES(1, '한글 테스트');

COMMIT;

SELECT * FROM HANGUL_TEST;

 

 

 

5. GCP VM인스턴스 접근 허용을 위한 방화벽 설정하기

GCP VM인스턴스에 설치한 Oracle을 자신의 컴퓨터에서 접속하기 위해서는 GCP 방화벽을 열어줘야 합니다.

자신의 컴퓨터 ip로 GCP VM 인스턴스의 1521 port에 접근하면 가능하게 열어주도록 설정을 하겠습니다.

 

 

  • default를 클릭합니다.

 

 

 

  • 1. 좌측 메뉴에서 방화벽을 클릭합니다.
  • 2. 방화벽 규칙 만들기를 클릭합니다.

 

 

 

  • 1. 이름 : allow-oracle-1521-port
    • 알아보기 좋게 작성해줍니다.
  • 2. 대상 : 지정된 대상 태그
    • 태그를 임의로 만들고, VM 인스턴스 수정을 할 때 해당 태그를 추가해주면 됩니다.
  • 3. 대상 태그 : oracle-1521
    • 자신이 원하는 이름으로 만드셔도 무방합니다.

 

  • 소스 IP 범위는  www.myip.com에 들어가서 상단에 IP Copy를 클릭하셔서 추가하면 됩니다.
    • 만약에 모든 ip를 허용하고 싶다면? => 0.0.0.0을 해주시면 됩니다.
  • 프로토콜 및 포트 : 1521
    • Oracle의 port는 1521이기에 해당 포트만 자신의 ip로 접속할 때 접근이 가능하게 열어줍니다.
  • 만들기 클릭

 

 

  • VM 인스턴스 세부정보로 돌아옵니다.
  • 수정 클릭

 

  • 방화벽에서 생성한 oracle-1521 태그를 인스턴스 수정을 하면서 네트워크 태그에 추가해줍니다.
  • 하단으로 마우스를 내려서 저장을 눌러줍니다.
  • 조금 기다리시면 저장이 완료됩니다.

 

 

6. 내 PC cmd에서 sqlplus로 Oracle이 설치된 GCP VM인스턴스에 원격 접속하기

Oracle DB를 접속하기 위해서는 Client프로그램들을 사용하면 됩니다. 대표적인 Oracle Client 프로그램은 sqlplus와 Sql Developer가 있습니다.

sqlplus는 윈도우에서 Oracle을 설치하신적이 있다면 있으실 겁니다. 본 포스팅에서는 sqlplus가 설치되어 있다고 가정하겠습니다.

 

  • sqlplus id/pw@ip:port/sid
sqlplus system/test1234@34.64.185.2:1521/xe

 

아래와 같이 SQL>이 나오면 정상적으로 접근이 된 것입니다.

 

 

  • SELECT 구문을 사용해서 이전에 생성한 테이블 조회해보기
    • 정상적으로 생성된 테이블의 데이터가 나오는 것을 볼 수 있습니다.

 

 

이번 포스팅에서는 구글 클라우드 플랫폼(GCP)에서 Ubuntu 16.04 이미지를 이용해서 Oracle 11g을 설치해서 원격으로 접속까지 테스트 해봤습니다.

추후에는 JDK와 TOMCAT을 설치해서 개인 팀 프로젝트 호스팅까지 진행해보겠습니다.

 

참조

 

 

반응형