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

728x90

 

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 계정이 잘 접속되는지 확인합니다.

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

 

 

 

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

 

 

 

 

728x90