[AWS] Spring Project 배포하기(6) - EC2 Ubuntu 인스턴스에 Oracle 설치, 환경변수 설정, 계정 만들기

 

AWS RDS를 사용하려고 했지만 프리티어 계정이라도 과금이 발생하기 때문에 ㅠㅠㅠㅠ..

EC2 인스턴스에 직접 오라클을 설치하였습니다.

오라클 설치만 밤새서 했는데 EC2에 설치하는 건 처음이라 막히고 힘들었던 기억이 나네요,,😥

해당 글은 이전 글과 이어지니 순서대로 따라와주시면 좋겠습니다. 😉❤

 

 

1. Oracle 11g 설치

① oracle를 다운로드 할 디렉토리 생성

⑴ PuTTY에서 oracle 디렉토리를 만들기 위해 /home 경로로 이동합니다.

cd /home

 

 

⑵ /home/oracle 디렉토리를 생성합니다.

mkdir oracle

 

 

⑶ oracle 디렉토리로 이동합니다.

cd oracle

 

 

② Oracle 11g 설치 파일 다운로드

https://www.oracle.com/database/technologies/xe-prior-release-downloads.html

 

XE Prior Release Archive

Getting Started: Support Oracle Database Express Edition (XE) is a community supported edition of the Oracle Database family. Please go to the Oracle Database XE Community Support Forum for help, feedback, and enhancement requests. Note: Oracle Support Ser

www.oracle.com

 

⑴ 위 링크로 들어가서 Linux x64 Download을 클릭합니다.

 

 

⑵ Chrome Browser 기준입니다.

브라우저 상단에 있는 전체 다운로드 기록 > 오라클 링크 오른쪽 마우스 클릭 > 링크 주소 복사를 클릭합니다.

그러면 대충 download.oracle.com/otn/linux/oracle11g/xe/oracle-xe-11.2.0-1.0.x86_64.rpm.zip?AuthParam=!@@#$2123 이런 식으로 복사가 될 것입니다.

 

 

⑶ PuTTY로 돌아와 위에서 복사한 링크를 이용하여 oracle을 설치할 수 있는 파일을 '빠르게' 다운로드합니다.

시간이 지나면 위 다운로드 링크가 유효하지 않아서 403 Forbidden 에러를 일으키니 빠르게 진행해줍시다. 😅

sudo wget https://download.oracle.com/otn/linux/oracle11g/xe/oracle-xe-11.2.0-1.0.x86_64.rpm.zip?AuthParam=어쩌고!@$%45

 

- sudo wget 까지 직접 입력하고 링크는 복사되어있을 것이기 때문에 ★ shift + insert 키를 누르면 붙여넣기가 됩니다.

- 엄청 긴 무언가가 뜨고 약간의 설치 시간이 소요됩니다.

- ls 명령어를 입력하면 다운로드 된 것을 확인할 수 있습니다.

ls

 

 

⑷  다운로드된 파일명을 변경해줍니다.

- 기존 파일명에서 zip 뒤에 있는 ?부터 모두 지워줍니다.

mv oracle-xe-11.2.0-1.0.x86_64.rpm.zip?AuthParam=171어쩌고 oracle-xe-11.2.0-1.0.x86_64.rpm.zip
// mv 기존파일명 바꿀파일명

- ls 명령어로 확인하면 바뀐 파일을 확인할 수 있습니다.

 

 

③ 몇 가지 필수 패키지 다운로드

sudo dpkg --configure -a
sudo apt install -y net-tools alien unzip libaio1

 

libaio1 패키지는 다운로드가 안 될 수도 있습니다. 저같은 경우에는 다운로드가 안되서

sudo vi /etc/apt/sources.list

 

를 입력하여 vi 편집기를 열고 i를 눌러서 INSERT 모드로 변경 후

deb http://archive.ubuntu.com/ubuntu/ focal main universe restricted multiverse

를 추가하고 :wq 로 저장해주었습니다. 그리고

sudo apt update
sudo apt install libaio1

 

순서대로 입력 후 libaio1 패키지를 다운로드 해주었습니다. update와 libaio1 다운로드는 약간의 시간이 소요됩니다.

 

 

 unzip 명령어로 압축 풀기

sudo unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip

- Disk1 이라는 디렉토리가 생긴 것을 확인할 수 있습니다.

 

 

  alien 명령어로 .rpm to .deb 변환

Disk1 디렉토리로 이동하면 RPM(.rpm) 파일 하나가 있는데요,

이것을 Ubuntu 환경에서 사용할 수 있는 Debian(.deb) 파일로 변환하기 위해 alien 명령어를 사용합니다.

 

⑴  Disk1 디렉토리로 이동 후 ls 명령어 입력하면 oracle~.rpm 파일이 보입니다.

cd /home/oracle/Disk1
ls

 

 

⑵ .rpm을 .deb로 변환

sudo alien --scripts -d oracle-xe-11.2.0-1.0.x86_64.rpm

위와 같이 뜨면 완료된 것이고 ls 명령어를 입력하여 deb 파일이 생성되었는지 확인합니다.

저는 꽤 오랜 시간이 걸렸습니다.

 

 

⑤ dpkg(Debian Package) 명령어로 설치 후 확인

⑴ deb 파일을 dpkg로 설치합니다.

sudo dpkg --install oracle-*.deb

 

 

⑵ 설치 확인

apt list --installed | grep oracle

 

 

 

 

⑥ Oracle 최초 설정하기

sudo /etc/init.d/oracle-xe configure

- 8080 : 입력 없이 엔터(혹시나 포트번호를 바꾸실 분은 원하는 포트번호를 입력 후 엔터하시기 바랍니다.)

- 1521 : 입력 없이 엔터

- initial configuration : 비밀번호 입력

- confirm the password : 비밀번호 재입력

- (y/n) : y

 

 

 

 

2. 자원 제한 설정(필수 사항X)

① 아래 명령어로 sysctl.conf 편집

sudo vi /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
#kernel.shmall = 2097152
#kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

 

해당 옵션을 추가한 후 esc > :wq로 저장합니다.

 

 

② 아래 명령어로 limits.conf 편집

sudo vi /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240

해당 옵션을 추가한 후 esc > :wq로 저장합니다.

 

 

 

 

3. Oracle 환경 변수 설정

① /etc/profile에 환경 변수 추가하기

sudo vi /etc/profile
ORACLE_BASE=/u01/app/oracle
ORACLE_SID=XE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/xe
ORACLE_HOME_LISTNER=$ORACLE_HOME/bin/lsnrctl
PATH=$ORACLE_HOME/bin:$PATH
export PATH
export ORACLE_BASE
export ORACLE_SID
export ORACLE_HOME
export ORACLE_HOME_LISTNER
export TMP=/tmp
export TMPDIR=$TMP

편집기를 열고 해당 코드를 추가한 후 ESC > :wq로 저장합니다.

 

 

② 업데이트 후 적용 확인

source /etc/profile
echo $ORACLE_HOME

잘 적용된 것을 확인할 수 있습니다.

 

 

 

 

4. Oracle 세부 환경 설정

아래 명령어를 입력하여 listener.ora를 vi 편집기로 열고

sudo vi /u01/app/oracle/product/11.2.0/xe/network/admin/listener.ora

 

아래 내용으로 수정 후 ESC > :wq로 저장합니다.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/xe)
      (PROGRAM = extproc)
    )
    (SID_DESC =
        (GLOBAL_DBNAME = XE)
        (ORACLE_HOME = /u01/app/oracle/product/11.2.0/xe)
        (SID_NAME = XE)
        (SERVICE_NAME = XE)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
      (ADDRESS = (PROTOCOL = TCP)(HOST = ip-자기아이피적혀있음)(PORT = 1521))
    )
  )

DEFAULT_SERVICE_LISTENER = (XE)

 

 

 

 

 

5. Oracle 서비스 실행 & Oracle Listener 서비스 실행

① Oracle 서비스

systemctl start oracle-xe
systemctl status oracle-xe

위와 같이 active 상태가 나오면 오라클 서비스가 시작된 것입니다.

ctrl + c를 누르면 위 상태에서 벗어날 수 있습니다.

 

 

② Oracle Listener 서비스

lsnrctl status
lsnrctl start

 

lsnrctl status를 했을 때 실행이 안된 것 같으면 start를 해줍니다.

위처럼 뜨면 리스너도 잘 실행된 것입니다. :)

 

 

 

 

6. Sqlplus 접속

sqlplus

 

Enter user-name에는 system

Enter password에는 configure 할 때 설정했던 비밀번호를 입력해줍니다.

비밀번호 입력시 아무것도 안 보이는 것은 문제가 아닙니다.

일단 여기까지 하면 오라클은 설치가 완료된 것입니다.

 

 

 

 

7. Oracle DB 계정 만들기(필요하면 할 것)

저는 scott 이라는 계정을 하나 만들도록 하겠습니다.

Windows OS에서 오라클을 사용할 때 scott 계정을 가져다 쓴 것처럼 가져다쓸 수 없습니다.

그래서 저는 이름만 scott인 계정을 만드는 것입니다. (scott 이라는 이름이 익숙해서..)

CREATE USER scott IDENTIFIED BY 원하는비밀번호;
GRANT CONNECT, RESOURCE TO scott;

GRANT CONNECT, RESOURCE TO scott;은

scott에게 DB에 연결할 수 있도록 허용하는 권한과

테이블을 생성, 데이터를 삽입, 업데이트, 삭제할 수 있도록 권한을 주는 것입니다.

 

exit;로 나간 후 sqlplus로 접속하여 scott 계정이 잘 접속되는지 확인합니다.

잘 접속된 것을 확인할 수 있습니다.

 

 

 

하... 중간에 에러가 엄청나서 거의 이틀을 헤맸는데 결국 오라클을 삭제하고 다시 설치하니까 되네요ㅠㅠㅠㅠㅠㅠㅠㅠㅠ기나긴 여정이었습니당.......😥😥😥😥😥😥!!!!!!!!!!!!!!!!!