[Oracle] Linux RHEL 8.8에 Oracle Database 19c 설치 방법 총정리

2024. 3. 31. 02:25·■ Database/OracleDB
반응형

0. 개요

테스트 환경을 구축하기 위해서 RHEL 8.8 을 구동하는 Linux 환경에 Oracle Database 19c 데이터베이스 환경을 구축해야 하는 상황이 발생했는데, 설치하면서 너무 삽질을 했었던 관계로 이를 정리하고자 포스트를 남긴다.

 

본 포스트에서는 필자가 수차례 실패하고 끝내 성공한 RHEL 8.8 환경에 Oracle Database 19c를 설치하기 위한 a부터 z까지의 모든 과정을 총정리할 필요가 있다고 사료되어, 초보자도 쉽게 따라할 수 있도록 상세히 작성하였으니 참고하면 좋을 것 같다.

 

 

 

 


1. 환경

본 포스트에서 진행한 환경은 아래와 동일한데, 대체적으로 Cent OS 7 버전 이상이나 RHEL 8 버전대 환경과 비슷한 환경을 사용하는 리눅스 사용자라면 모두 동일하게 적용될 내용으로 사료된다.

 

구분 버전
OS RedHat Linux 8.8 64-bit
DBMS Oracle Database 19.3.0 (19c)
원격접속 터미널 에뮬레이터 사용여부 O
원격접속 터미널 에뮬레이터 프로그램 PuTTY

 

실제 RHEL 서버에서 직접 터미널을 띄우고 작업하는 환경은 드물고, 원격으로 접속해 터미널 에뮬레이터를 통한 작업이 대다수이다.

 

따라서, 본 포스트에서도 PuTTY 터미널 에뮬레이터 프로그램을 이용해 서버에 원격접속 후 해당 절차를 진행하였으니 참고 바란다.

 

 

 


2. host 설정 변경

host 및 hostname 설정을 변경하지 않고 설치시, 설치 마지막 단계에서 INS-20802 오류가 발생한다. 해당 오류를 방지하기 위해 미리 사전 작업을 하도록 한다.

 

본 과정은 root 계정으로 진행한다.

 

2-1. hosts 추가

# vim /etc/hosts

 

vim 편집기를 이용하여 hosts 파일을 편집한다.

 

 

 

맨 아랫줄에 실제 서버 IP와 hostname을 추가한다. hostname은 oracle로 추가하자.

 

 

2-2. hostname 설정

# hostnamectl set-hostname oracle

hostname을 oracle로 설정한다.

 

 

 

# hostnamectl status​

Static hostname이 oracle로 잘 출력되는지 여부를 확인한다.

 

 

 


3. THP 비활성화

Transparent Huge Page는 RHEL에서 기본적으로 사용 설정이 되어있으나, Oracle에서 성능 이슈로 인해 비활성화를 권장하고 있는 기능이므로 사용을 비활성화하도록 하자.

 

본 과정은 root 계정으로 진행한다.

 

# echo never > /sys/kernel/mm/transparent_hugepage/enabled

상기 명령어를 입력하여 THP를 해제한다.

 

 

# cat /sys/kernel/mm/transparent_hugepage/enabled

never가 [] 대괄호로 감싸져 있는지 여부를 확인한다. 상기 사진처럼 되어 있으면 THP가 정상적으로 비활성화 된 것이다.

 

 

# reboot

진행했었던 과정들이 반영될 수 있도록 RHEL을 재부팅 한다.

 

 

 

 


4. 필수 패키지 설치

Oracle Database를 설치하기 위한 필수 패키지들을 설치하는 과정이다.

 

본 과정은 root 계정으로 진행한다.

 

 

4-1. JAVA 설치

# yum install -y java-1.8.0-openjdk

설치 인스톨러가 JAVA로 구동되기 때문에, JDK 1.8 버전을 설치한다.

 

 

4-2. 그 외 필수 패키지 설치

# wget http://mirror.centos.org/centos/7/os/x86_64/Packages/compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
# wget http://mirror.centos.org/centos/7/os/x86_64/Packages/compat-libcap1-1.10-7.el7.x86_64.rpm
# yum -y localinstall compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
# yum -y localinstall compat-libcap1-1.10-7.el7.x86_64.rpm

compat-libstdc++ 와 compat-libcap을 wget 명령어를 통해 다운로드 받은 후, localinstall 명령어로 설치한다.

 

 

# yum install -y libnsl
# yum install -y libnsl.i686
# yum install -y libnsl2
# yum install -y libnsl2.i686

그 외 libnsl, libnsl.i686, libnsl2, libnsl2.i686 패키지도 yum 명령어로 설치를 진행한다.

 

 

 


5. Oracle Database Preinstall 설치

Preinstall 패키지는, 복잡한 Oracle Database 설치 전 기본 세팅들을 자동 설정해 주는 RPM 패키지다. 해당 패키지를 설치하지 않고 직접 하나하나 설정해 줄 수도 있겠지만... 특별한 경우가 아니라면 비추한다. 웬만해서는 Preinstall 패키지를 통해 기본 세팅들을 자동 설정하는 것을 권장한다.

 

본 과정은 root 계정으로 진행한다.

 

 

# curl -o oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm

curl 명령어를 통해 Preinstall 파일을 다운받는다.

 

 

# export CV_ASSUME_DISTID=RHEL7.6

RHEL 8 환경에서는 Oracle Database 설치 간 INS-08101 오류가 출력될 가능성이 있으므로, RHEL 버전을 7로 가정하는 충돌방지 커맨드를 실행하고 진행해야 한다. 해당 커맨드를 실행한다.

 

 

# yum -y localinstall oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm

localinstall 명령어로 Preinstall 패키지를 설치한다.

 

 

 


6. oracle 사용자 및 그룹 생성 및 설정

Oracle Database 구동 및 설치에 필요한 oracle 사용자와 dba 그룹을 생성 및 설정하는 과정이다. 본 과정은 각 항목에 맞게 계정전환을 실시하면서 진행한다.

 

 

6-1. 사용자 및 그룹 생성

본 과정은 root 계정으로 진행한다.

 

 

# usermod -d dba -G dba oracle
# cat /etc/passwd | grep oracle
oracle:x:65535:65536::/home/oracle:/bin/bash

oracle 사용자와 dba 그룹을 생성하고, 홈 디렉토리를 확인한다. oracle 사용자의 홈 디렉토리는 /home/oracle임을 알 수 있다.

 

 

# passwd oracle
oracle 사용자의 비밀 번호 변경 중
새  암호:
새  암호 재입력:
passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.

oracle 사용자의 비밀번호를 설정한다.

 

 

6-2. su 권한 부여

oracle 계정은 su 권한을 사용하여 root 계정에 접근할 수 있어야 한다. 그렇지 못할 경우, Oracle Database 설치 도중 INS-08101 오류가 발생하여 인스톨러가 종료되기 때문에 미리 사전에 조치하여 해당 오류를 방지하자.

 

본과정은 root 계정으로 진행한다.

 

 

# vim /etc/group

vim 편집기를 통해 group 파일을 편집한다.

 

 

wheel 그룹에 oracle 사용자를 추가하고, 저장한다.

 

 

# su oracle
$ su
암호 : 
#

oracle 사용자로 계정 전환 후, 다시 su 명령어를 입력하여 oracle 계정 → root 계정으로 잘 전환되는지 확인한다.

 

 

6-3. .bash_profile 설정

Oracle Database 설치 및 구동에 관련된 환경 변수들을 사전에 설정해 두도록 한다.

 

본 과정은 oracle 계정으로 진행한다.

$ cd
$ vim .bash_profile

vim 편집기를 이용해 .bash_profile 파일을 수정한다.

 

 

 

# User specific environment and startup programs 주석 하단에 상기와 같이 환경변수 값을 추가한다.

 

 

# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH
export LANG=C

export ORACLE_HOSTNAME=oracle
export ORACLE_UNQNAME=orcl
export ORACLE_BASE=/oracle_db/oracle
export ORACLE_HOME=$ORACLE_BASE/product/db_home
export ORA_INVENTORY=$ORACLE_BASE/oraInventory
export ORACLE_SID=orcl
export DATA_DIR=$ORACLE_BASE/app/oradata
export PATH=/usr/sbin:/usr/local/bin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

 if [ $USER = "oracle" ]; then
         if [ $SHELL = "/bin/ksh" ]; then
                 ulimit -p 16384
                 ulimit -n 65536
         else
                 ulimit -u 16384 -n 65536
         fi
 fi
환경변수 명칭 설명
ORACLE_HOSTNAME 호스트명
ORACLE_UNQNAME 오라클DB 고유 이름값
ORACLE_BASE 오라클DB 기본 경로
ORACLE_HOME 오라클DB 설치 경로
ORA_INVENTORY 오라클DB 인벤토리 저장 경로
ORACLE_SID 오라클DB 접속을 위한 고유 식별자
DATA_DIR 오라클DB DATA 저장 경로
PATH 오라클DB bin 폴더 위치한 커맨드 파일 사용 위한 환경변수
LD_LIBRARY_PATH 오라클 제품들이 사용할 참조 라이브러리

상기 .bash_profile에서는 Oracle Database 설치 경로가 /oracle_db/oracle이고, 설치 파일을 압축 해제 해 보관할 경로는 /oracle_db/oracle/product/db_home 으로 지정했다. 이는 사용자가 희망하는대로 변경이 가능하니, 본인의 조건에 맞게 변경하여 사용하여도 무관하다.

 

 

$ . .bash_profile

변경 내용을 즉시 적용한다.

 

 

 


7. Oracle Database 경로 생성 및 소유자 계정 설정

.bash_profile 에서 지정했었던 Oracle Database 설치 및 데이터 저장 경로를 생성하고, 소유자 계정을 변경하도록 한다.

 

본 과정은 root 계정으로 진행한다.

 

 

7-1. 경로 생성

# mkdir -p /oracle_db/oracle/product/db_home

$ORACLE_HOME으로 설정했었던 경로를 생성한다.

 

 

7-2. 폴더 소유자 계정 설정

# chown -R oracle.dba /oracle_db

소유자 계정을 변경하지 않을 경우 INS-32012 오류가 발생하며 설치가 진행되지 않으므로, oracle_db 의 하위 모든 경로들의 소유자 계정을 dba 그룹의 oracle 계정으로 변경한다.

 

 


8. SELINUX 해제

SELINUX는 Linux의 보안을 보다 강화하고자 지정된 정책이 아니면 프로세스를 차단하거나 접근을 제한하는 Linux의 보안 강화 아키텍처인데, 이 때문에 프로세스가 비정상적으로 동작할 가능성이 있다. 따라서 Oracle 설치를 위해 SELINUX를 해제하도록 한다.

 

본 과정은 root 계정으로 진행한다.

 

 

# echo "SELINUX=disabled" > /etc/selinux/config

상기 명령어를 입력하여 SELINUX 설정을 disabled로 변경하여, SELINUX를 해제한다.

 

 

# cat /etc/selinux/config | grep SELINUX
SELINUX=disabled

SELINUX 설정이 해제되었는지 확인한다.

 

 

# reboot

변경 내용이 저장될 수 있도록 시스템을 재부팅 한다.

 

 

 

 


9. PuTTY X11 Forwarding 설정

 

[Linux] Xming과 PuTTY를 이용하여 X11 Forwarding 접속 설정방법

0. 개요 서버에서 터미널을 열고 직접 작업을 하려면 꽤 번거롭기 때문에, 웬만하면 SSH 연결을 통해 원격으로 작업을 진행하는 것이 보편적이다. 기본적인 CUI 환경을 통한 작업은 PuTTY 터미널을

acredev.tistory.com

Oracle Database 설치 인스톨러는 X window 기반 GUI 설치 프로세스이므로, X11 Forwarding 설정을 해 주어야 GUI 설치 프로세스를 로컬 PC로 불러와 원격 설치가 가능하다.

 

상기 링크를 참고하여, Xming과 PuTTY를 이용하여 X11 Forwarding 설정을 진행하도록 하자.

 

본 과정은 root 계정으로 진행한다.

 

 

# firefox

설치가 완료되면 FireFox를 실행시켜, 로컬 PC에서 원격으로 GUI 화면을 제어할 수 있는지 여부를 확인한다.

 

 

 


10. Oracle Database 19c 설치

이제 Oracle Database를 설치하기 위한 기본적인 사전 작업은 모두 완료되었다. 이제 Oracle Database를 설치해보도록 하자. 본 과정은 각 항목에 맞게 계정 전환을 하며 진행한다.

 

 

10-1. 설치 파일 다운로드

 

Database Software Downloads | Oracle

Run the Oracle Database Enterprise Edition Container Image with Docker Contains Oracle Database Enterprise Edition 21c running on Oracle Linux 7. Ideal for macOS, Linux, and other platforms. Use the following pull command for the latest: docker pull contai

www.oracle.com

▲ Oracle Database EE 19c 공식 다운로드 링크

설치파일을 다운로드 받기 위해 상기 주소로 접속한다.

 

 

 

스크롤을 조금 내리다 보면 Oracle Database 19c for Linux x86-64 항목을 발견할 수 있다. ZIP 버튼을 클릭해 다운받자. 파일명은 LINUX.X64_193000_db_home.zip 이다.

 

 

10-2. 설치 파일 서버로 복사

# ll /oracle_db/oracle/product/db_home/
합계 2987996
-rw-r--r-- 1 root root 3059705302  3월 29 23:08 LINUX.X64_193000_db_home.zip

SFTP 프로그램을 활용해서 서버로 복사한다. root 계정으로 SFTP 프로그램에 로그인 하여 진행한다.

 

다운받은 Oracle Database 19c 설치 압축 파일을 RHEL 서버의 $ORACLE_HOME 경로로 복사한다. 본 포스트에서는 $ORACLE_HOME의 경로를 /oracle_db/oracle/product/db_home 으로 지정했기 때문에, 해당 경로로 복사했다.

 

 

10-3. 설치 파일 소유자 계정 설정

본 과정은 root 계정으로 진행한다.

 

 

# chown oracle.oinstall /oracle_db/oracle/product/db_home/LINUX.X64_193000_db_home.zip

Oracle Database 19c 설치 압축 파일의 소유자를 oinstall 그룹의 oracle 사용자로 변경한다.

 

 

10-4. 설치 파일 압축 해제

본 과정은 oracle 계정으로 진행한다.

 

 

# su oracle
$ unzip $ORACLE_HOME/LINUX.X64_193000_db_home.zip

$ORACLE_HOME에 위치한 Oracle Database 19c 설치 파일을 압축 해제 한다.

 

 

10-5. 설치

본 과정은 oracle 계정으로 진행한다.

 

 

PuTTY 세션을 아예 종료 후, 새 세션을 실행시키고 oracle 계정으로 로그인 하자. 다른 계정에서 su 명령어를 통해 oracle 계정으로 전환하여 진행할 경우, Oracle Database 설치 간 오류가 발생할 수 있기 때문이다.

 

 

$ export CV_ASSUME_DISTID=RHEL7.6

RHEL 8 환경에서는 Oracle Database 설치 간 INS-08101 오류가 출력될 가능성이 있으므로, RHEL 버전을 7로 가정하는 충돌방지 커맨드를 실행하고 진행해야 한다. 해당 커맨드를 실행한다.

 

 

$ cd $ORACLE_HOME

$ORACLE_HOME 경로로 이동한다.

 

 

$ ./runInstaller
Launching Oracle Database Setup Wizard...

설치 스크립트를 실행한다.

 

 

Oracle Database 설치 스크립트가 정상적으로 실행 될 경우, Xming 을 통해 상기와 같이 GUI 환경이 출력된다.

 

 

데이터베이스를 생성하고 구성해야 하므로 Create and configure a single instance database 를 선택한다.

 

 

일반 테스트 환경에서 구성할 경우에는 Desktop class를, 운용 데이터 센터 환경에서 다양한 고급 구성 옵션을 사용할 경우에는 Server class를 선택한다.

 

필자의 경우 테스트 환경에서 진행할 것이므로 Desktop class를 선택하여 진행했다.

 

 

설치 구성을 설정하는 화면이다. 아래의 도표를 참고하여 설정하자.

 

항목 설명
Oracle Base (자동 입력) .bash_profile에서 설정했었던 ORACLE_BASE 환경변수 값
Software location (자동 입력) .bash_profile에서 설정했었던 ORACLE_HOME 환경변수 값 
Database file location (자동 입력) .bash_profile에서 설정했었던 DATA_DIR 환경변수 값
Database edition 오라클DB 버전
Character set 데이터베이스 인코딩 (문자 집합)
OSDBA group 오라클
Global database name 오라클DB 접속을 위한 고유 식별자 (=SID)
Password 오라클DB 비밀번호

 

oracle 계정의 .bash_profile에서 설정했던 것들과 동일하게 설정을 진행하여야 한다.

 

Container database는 보통 체크 해제를 하고 진행한다. 본 포스트에서는 테스트 삼아서 함께 설치를 진행했는데, 설치에 오류가 생기는 부분이 종종 있어 정말 필요한 경우가 아니라면 제외하는 것을 추천한다.

 

 

INS-30011 오류는 비밀번호가 Oracle 권장사항에 맞지 않아서 발생하는 것으로, Yes 버튼을 눌러 그냥 무시하고 넘어가도록 한다.

 

 

oracle 계정의 .bash_profile에서 입력한 값과 동일하게 Inventory Directory를 설정한다. 보통 자동입력 되어 있으며, oraInventory Group Name만 dba 그룹인지 확인하고 설치를 계속 진행하면 된다.

 

 

Oracle Database 설치 스크립트를 실행하기 위해 시스템 권한이 필요한데, 이를 root 계정을 일부 전환하여 사용할 것인지 sudo 명령어를 사용해 진행할 것인지 묻는 화면이다.

 

Automatically run configuration scripts를 체크하고, root 계정의 비밀번호를 입력하자.

 

 

설치 환경을 확인하는 프로세스가 진행되면, 일부 부분에서 잘못된 정의가 있다고 이를 무시할 것인지 여부를 물어보는 화면이다.

 

Swap Size는 그냥 무시하고 넘어가도 Oracle Database 구동에 큰 상관이 없으니 Ignore All을 체크하고 계속 진행하자.

 

 

정말 무시할 것인지 다시 한 번 확인하는 화면이다. Yes 버튼을 눌러 설치를 계속 진행한다.

 

 

사용자가 설정한 Oracle Databse 설치 설정값들을 정리하여 출력해 주는 화면이다. Install 버튼을 눌러 설치한다.

 

 

설치 스크립트를 실행하기 위해 root 계정이 필요한데, Oracle Database 설치 인스턴스가 root 계정에 접근해도 되는지 묻는 화면이다. Yes 버튼을 눌러 진행한다.

 

 

 

Oracle Database 설치가 완료되었다. Close 버튼을 눌러 설치 인스턴스를 종료한다.

 

 

 


11. Oracle Listener 상태 확인

외부에서 Oracle Database로 접근하기 위한 Listener가 정상 실행되고 있는지 상태를 확인한다. lnsrctl status [리스너명] 을 입력하면 되는데, 따로 설정한 것이 없고 Preinstall을 통해 진행했다면 기본적인 리스너명은 LISTENER로 설정되어 있다.

 

환경변수 값이 oracle 계정에만 설정되어 있기 때문에, 본 과정은 oracle 계정으로 진행한다.

 

 

# lsnrctl status LISTENER

 

 

HOST명 oracle로 1521 포트를 통해 LISTENER가 정상적으로 실행중인 것을 확인할 수 있다.

 

 

 


12. DB 실행

$ sqlplus

sqlplus 명령어를 통해 Oracle Database에 접속한다.

 

환경변수 값이 oracle 계정에만 설정되어 있기 때문에, 본 과정은 oracle 계정으로 진행한다.

 

 

user-name은 시스템 관리 계정인 /as sysdba로 입력하고 접속한다. Oracle Database에 Connect 되었다는 문구가 출력되면 성공한 것이다.

 

 

 

 

 

300x250
반응형
저작자표시 비영리 변경금지
'■ Database/OracleDB' 카테고리의 다른 글
  • [Oracle] Oracle DB 버전 확인 방법
Min Hyuk-Lee
Min Hyuk-Lee
시스템 엔지니어로 근무하고 있습니다.
  • Min Hyuk-Lee
    아크레의 개발로그
    Min Hyuk-Lee
    m_file@naver.com
  • 전체
    오늘
    어제
    • 📝 Log. (81)
      • ■ Dev. Language (11)
        • C (5)
        • C# (6)
      • ■ Dev. ETC (8)
        • Unity 3D (3)
        • Android Studio (JAVA) (5)
      • ■ Web (6)
        • HTML (3)
        • JSP (3)
      • ■ Linux (8)
        • Shell (2)
        • Linux Tip. (6)
        • 보안취약점 진단 (0)
      • ■ Windows (4)
        • Server (1)
        • Windows Tip. (3)
      • ■ VM (1)
        • VMWare (1)
        • Virtual Box (0)
      • ■ Database (9)
        • MySQL (7)
        • OracleDB (2)
      • ■ DevKit (5)
        • IDE (4)
        • Tool (1)
      • ■ Error (17)
        • Linux 오류해결 (4)
        • DB 오류해결 (3)
        • IDE 오류해결 (2)
        • VM 오류해결 (3)
        • Unity 오류해결 (4)
        • SSH, SFTP 오류해결 (1)
      • ■ Photoshop (3)
        • 디자인&이미지 창작 (3)
      • ■ Document (3)
        • MS Word (2)
        • PDF (1)
      • ■ Study (4)
        • Baekjoon (4)
      • ■ 작문 (1)
        • 회고 (1)
      • ■ ETC (1)
        • Car (0)
        • etc (1)
  • 🌐 Menu

    • 📓 Guestbook
  • 🔗 Other Links

    • GitHub
    • 아크레의 IT ISSUE
  • 📢 Notice

    • [스킨 업데이트] hELLO v4.10.0 적용완료
    • [스킨 업데이트] hELLO v4.9.0 적용 완료
    • [스킨 업데이트] hELLO v4.8.1 적용 완료
  • 💬 Recent Comments

  • hELLO· Designed By정상우.v4.10.0
Min Hyuk-Lee
[Oracle] Linux RHEL 8.8에 Oracle Database 19c 설치 방법 총정리
상단으로

티스토리툴바