문서의 이전 판입니다!


Oracle DB 19c 설치 on Rocky 9

Oracle Database 19c Installation on Rocky Linux 9
이강우 2025/07/11 07:16

이 문서는 Rocky Linux 9.6오라클 DB 19c(19.27패치) 를 설치하는 과정을 기술한 문서입니다.
2025-07-11 테스트 되었습니다.

OS : Rocky Linux 9 (9.6) - Server with GUI
DB : Oracle Database 19c (19.3 → 19.27 patch with OPatch)

Oracle Database 19c는 공식문서상에 RHEL8/9 가 지원된다고 되어있지만 설치할때 오류가 발생한다.
대표적인 오류는 라이브러리 패키지 없는것과 libasmclntsh19.ohso libasmperl19.ohso client_sharedlib 등의 오류가 발생한다.
이 문제를 해결하기 위해서는 2가지 방법이 있는데

  1. 설치를 rpm으로 설치하는 방법
  2. OPatchDBRU업데이트를 적용하는 방법

개인적으로는 rpm설치를 권장하지만 이런경우 설치경로를 지정할 수 없고 /opt/oracle로 설치된다는 점, 그리고 무조건 Enterprise Edition으로만 설치가 가능하다는점 등이 제한적이다.
딱히 경로에 상관이 없다면 rpm설치를 권장하고 특정경로에 설치해야 하는경우이거나 Standard Edition을 설치해야하는 경우에는 두번째 방법을 사용하여 설치하도록 한다.

RPM 패키지 다운로드는 아래 경로에서 다운로드 하도록 한다.

어느 경로에서 다운로드 받아도 상관 없으며 RPM설치시에는 무조건 Enterprise Edition으로 설치된다는 점을 유의한다.

패키지 다운로드가 완료되었다면 preinstall패키지를 다운로드 하도록 한다.

oracle-database-preinstall패키지는

  • 사용자 추가
  • THP Disable
  • limits 설정
  • sysctl 커널 파라메터 설정

등을 자동으로 수행해주므로 아주 편리하다. 이 패키지는 Oracle Linux의 레포지토리에 존재하는 패키지로서 기본적으로 Oracle Linux를 설치하면 포함되어있지만 RHEL/Rocky의 경우에는 수동으로 다운받아 사용하면 된다.

패키지를 모두 다운받았다면 설치하기 전에 아래 설정을 수행한다.

  • selinux disable 또는 Permisive 설정
  • firewalld disable

두가지 항목 모두 본인이 설정하여 사용하고 싶다면 설정해서 사용해도 되지만 편의를 위해 비활성화 하는것으로 한다.

다운로드 받은 파일

  • oracle-database-ee-19c-1.0-1.x86_64.rpm
  • oracle-database-preinstall-19c-1.0-1.el9.x86_64.rpm

먼저 oracle-database-preinstall 패키지를 설치한다.
이 작업은 root 계정으로 진행한다.

[root@oracle1 ~]# dnf localinstall oracle-database-preinstall-19c-1.0-1.el9.x86_64.rpm

# 설치가 완료된 이후 oracle 계정의 패스워드를 설정하고 리부팅 한다.
[root@oracle1 ~]# passwd oracle
Changing password for user oracle.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

[root@oracle1 ~]# reboot

이 과정에서 패키지 설치 이후 반드시 리부팅을 해줘야 변경사항이 반영되므로 리부팅을 꼭 하고 다음 단계로 진행하도록 한다.

이후 데이터베이스 패키지를 설치하도록 한다.

[root@oracle1 ~]# dnf localinstall oracle-database-ee-19c-1.0-1.x86_64.rpm 
Last metadata expiration check: 0:02:06 ago on Fri 11 Jul 2025 05:00:59 PM KST.
Dependencies resolved.
==========================================================================================================================================================
 Package                                        Architecture                   Version                         Repository                            Size
==========================================================================================================================================================
Installing:
 oracle-database-ee-19c                         x86_64                         1.0-1                           @commandline                         2.5 G

Transaction Summary
==========================================================================================================================================================
Install  1 Package

Total size: 2.5 G
Installed size: 6.9 G
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                  1/1 
  Running scriptlet: oracle-database-ee-19c-1.0-1.x86_64                                                                                              1/1 
  Installing       : oracle-database-ee-19c-1.0-1.x86_64                                                                                              1/1 
  Running scriptlet: oracle-database-ee-19c-1.0-1.x86_64                                                                                              1/1 
[INFO] Executing post installation scripts...
[INFO] Oracle home installed successfully and ready to be configured.
To configure a sample Oracle Database you can execute the following service configuration script as root: /etc/init.d/oracledb_ORCLCDB-19c configure

  Verifying        : oracle-database-ee-19c-1.0-1.x86_64                                                                                              1/1 

Installed:
  oracle-database-ee-19c-1.0-1.x86_64                                                                                                                     

Complete!
[root@oracle1 ~]# 

패키지 설치가 완료된 이후 설치할 데이터베이스 설정을 해주도록 한다.
/etc/sysconfig/oracledb_ORCLCDB-19c.conf 파일의 내용을 필요한경우 수정하고 보통은 그냥 그대로 진행하면 된다.

  • LISTENER_PORT=1521 리스너 포트번호 설정
  • ORACLE_DATA_LOCATION=/opt/oracle/oradata 오라클 데이터 파일이 저장될 경로
  • EM_EXPRESS_PORT=5500 엔터프라이즈 매니저 웹 콘솔 접속 포트
#This is a configuration file to setup the Oracle Database. 
#It is used when running '/etc/init.d/oracledb_ORCLCDB configure'.
#Please use this file to modify the default listener port and the
#Oracle data location.

# LISTENER_PORT: Database listener
LISTENER_PORT=1521

# ORACLE_DATA_LOCATION: Database oradata location
ORACLE_DATA_LOCATION=/opt/oracle/oradata

# EM_EXPRESS_PORT: Oracle EM Express listener
EM_EXPRESS_PORT=5500

구성 파일을 수정하였다면 아래 명령어로 설치를 진행한다.

[root@oracle1 ~]# /etc/init.d/oracledb_ORCLCDB-19c configure
Configuring Oracle Database ORCLCDB.
Prepare for db operation
8% complete
Copying database files
31% complete
Creating and starting Oracle instance
32% complete
36% complete
40% complete
43% complete
46% complete
Completing Database Creation
51% complete
54% complete
Creating Pluggable Databases
58% complete
77% complete
Executing Post Configuration Actions
100% complete
Database creation complete. For details check the logfiles at:
 /opt/oracle/cfgtoollogs/dbca/ORCLCDB.
Database Information:
Global Database Name:ORCLCDB
System Identifier(SID):ORCLCDB
Look at the log file "/opt/oracle/cfgtoollogs/dbca/ORCLCDB/ORCLCDB.log" for further details.

Database configuration completed successfully. The passwords were auto generated, you must change them by connecting to the database using 'sqlplus / as sysdba' as the oracle user.
[root@oracle1 ~]# 

설치가 완료됐다.

이제부터는 oracle계정으로 설치를 확인해보도록 한다.

먼저 oracle계정의 환경변수를 설정한다.
.bashrc에 아래 내용을 적용한다.

[root@oracle1 ~]# su - oracle
[oracle@oracle1 ~]$ vim .bashrc 
export ORACLE_BASE=/opt/oracle                            ### <<< 주의할것!! 맨 뒤에 / 가 들어가면 안된다.
export ORACLE_HOME=$ORACLE_BASE/product/19c/dbhome_1
export ORACLE_SID=ORCLCDB
export PATH=$ORACLE_HOME/bin:$PATH

# 파일 저장 후 환경 변수를 로딩한다.
[oracle@oracle1 ~]$ source .bashrc

[oracle@oracle1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Fri Jul 11 17:38:43 2025
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> SELECT banner FROM v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

SQL> exit


[oracle@oracle1 ~]$ lsnrctl status

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 11-JUL-2025 17:42:03

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle1)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                11-JUL-2025 17:08:53
Uptime                    0 days 0 hr. 33 min. 11 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
Listener Log File         /opt/oracle/diag/tnslsnr/oracle1/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle1)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=oracle1)(PORT=5500))(Security=(my_wallet_directory=/opt/oracle/admin/ORCLCDB/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "39a40b62792c1587e06550540097f83a" has 1 instance(s).
  Instance "ORCLCDB", status READY, has 1 handler(s) for this service...
Service "ORCLCDB" has 1 instance(s).
  Instance "ORCLCDB", status READY, has 1 handler(s) for this service...
Service "ORCLCDBXDB" has 1 instance(s).
  Instance "ORCLCDB", status READY, has 1 handler(s) for this service...
Service "orclpdb1" has 1 instance(s).
  Instance "ORCLCDB", status READY, has 1 handler(s) for this service...
The command completed successfully
[oracle@oracle1 ~]$ 

설치 종료

zip설치 방법은 Standard Edition을 설치하려고 하거나 설치경로를 원하는 특정한 경로에 설치하고 싶거나 하는경우에 사용할 수 있는 방법이다.

zip파일 설치시에 필요한 파일은 아래와 같다.

  • oracle-database-preinstall-19c-1.0-1.el9.x86_64.rpm : preinstall 패키지
  • LINUX.X64_193000_db_home.zip : Oracle Database 19c (19.3.0.0.0)
  • p6880880_190000_Linux-x86-64.zip : OPatch 12.2.0.1.46 for DB 19.0.0.0.0 (Apr 2025)
  • p37641958_190000_Linux-x86-64.zip : Oracle Database 19.27 GI patch

oracle-database-preinstall-19c-1.0-1.el9.x86_64.rpmrpm설치때와 마찬가지로 Oracle DB를 설치하기 위한 사전 설정을 해주는 패키지 파일이다.
다운로드 : https://yum.oracle.com/repo/OracleLinux/OL9/appstream/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el9.x86_64.rpm

LINUX.X64_193000_db_home.zip 파일은 오라클 데이터베이스 설치파일이다. 하지만 이 버전은 RHEL/Rocky 9 에 설치할때 버그로 인하여 오류가 발생한다. 우선 받도록 한다.
다운로드 : https://www.oracle.com/kr/database/technologies/oracle-database-software-downloads.html
다운로드 : https://www.oracle.com/database/technologies/oracle19c-linux-downloads.html

p6880880_190000_Linux-x86-64.zip 이 파일은 위의 오라클 데이터베이스 설치파일의 버그를 해결해주는 패치 파일이다. 버그는 설치파일에 포함된 OPatch의 문제인데 이것을 패치해주는 파일이다.
다운로드 : Download Latest OPatch Version

p37641958_190000_Linux-x86-64.zip 이 파일은 오라클 데이터베이스 버전을 19.27.0.0.0 으로 업데이트 하는 패치파일이다. 원본파일인 19.3.0.0.0에 문제가 있으므로 패치하여 설치하는것이다.
다운로드 : GI Release Update 19.27.0.0.0 (System Patch)

위 패치파일은 오라클 정식 서브스크립션이 등록된 계정으로만 다운로드 가능하다.

  • https://dl.cadwin.net/Oracle/patches/ 이 사이트에서 다운로드 가능하다. 패치파일은 p33515361_190000_Linux-x86-64.zip 을 받으면 된다. 이 파일은 19.14.0.0.0 버전패치이다.

먼저 root권한으로 preinstall 패키지를 설치한 후 oracle계정의 암호를 설정해줍니다. 그리고 리부팅합니다.

[root@oracle1 ~]# dnf localinstall oracle-database-preinstall-19c-1.0-1.el9.x86_64.rpm 
[root@oracle1 ~]# passwd oracle
Changing password for user oracle.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@oracle1 ~]# reboot

그리고 오라클 데이터베이스를 설치할 경로를 생성하고 oracle 사용자 권한으로 변경해줍니다.

[root@oracle1 ~]# mkdir -p /app/oracle
[root@oracle1 ~]# chown -R oracle. /app

이후 oracle계정으로 로그인하여 다음을 진행한다. oracle계정 홈디렉토리(/home/oracle/)에 아래 파일들이 위치해야한다.

  • LINUX.X64_193000_db_home.zip
  • p37641958_190000_Linux-x86-64.zip
  • p6880880_190000_Linux-x86-64.zip

먼저 설치 환경 설정을 아래와 같이 한다고 가정한다.

  • CV_ASSUME_DISTID : RHEL9 이 값은 오라클 데이터베이스 설치 시 특정 리눅스 배포판을 인식하도록 설정하는 환경 변수입니다.
  • ORACLE_BASE : /app/oracle
  • ORACLE_HOME : $ORACLE_BASE/product/19c/dbhome_1
  • ORACLE_SID : ORCLCDB
  • Installation : Standard Edition

.bashrc 파일에 아래 내용을 적용한다.

export CV_ASSUME_DISTID=RHEL9
export ORACLE_BASE=/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19c/dbhome_1
export ORACLE_SID=ORCLCDB
export PATH=$ORACLE_HOME/bin:$PATH

이후 해당 환경변수를 다시 로딩하고 진행한다.

[oracle@oracle1 ~]$ source .bashrc 
[oracle@oracle1 ~]$ 

먼저 LINUX.X64_193000_db_home.zip 파일의 압축을 /app/oracle/product/19c/dbhome_1 경로에 풀어줍니다.

[oracle@oracle1 ~]$ mkdir -p /app/oracle/product/19c/dbhome_1
[oracle@oracle1 ~]$ cd /app/oracle/product/19c/dbhome_1
[oracle@oracle1 dbhome_1]$ unzip ~/LINUX.X64_193000_db_home.zip
Archive:  /home/oracle/LINUX.X64_193000_db_home.zip
   creating: drdaas/
   creating: drdaas/admin/
  inflating: drdaas/admin/drdasqtt_translator_setup.sql  
  inflating: drdaas/admin/drdapkg_db2.sql  
  inflating: drdaas/admin/drdaas.ora  
  inflating: drdaas/admin/drdasqt_set_profile_dd.sql  
   creating: drdaas/lib/
  inflating: drdaas/lib/s0dpspmain.o  

... 생략 ...

  jdk/jre/bin/ControlPanel -> jcontrol
  javavm/admin/lfclasses.bin -> ../../javavm/jdk/jdk8/admin/lfclasses.bin
  javavm/lib/security/cacerts -> ../../../javavm/jdk/jdk8/lib/security/cacerts
  javavm/lib/sunjce_provider.jar -> ../../javavm/jdk/jdk8/lib/sunjce_provider.jar
  javavm/lib/security/README.txt -> ../../../javavm/jdk/jdk8/lib/security/README.txt
  javavm/lib/security/java.security -> ../../../javavm/jdk/jdk8/lib/security/java.security
  jdk/jre/lib/amd64/server/libjsig.so -> ../libjsig.so
[oracle@oracle1 dbhome_1]$

해당 버전에는 버그가 있으므로 이 상태로는 설치가 불가능하다. OPatch 업데이트를 진행한다.
일단 기존버전에 존재하는 OPatch 디렉토리를 OPatch.old로 변경하고 새로운 패치파일을 압축 해제한다.

[oracle@oracle1 dbhome_1]$ mv OPatch/ OPatch.old
[oracle@oracle1 dbhome_1]$ unzip ~/p6880880_190000_Linux-x86-64.zip 
Archive:  /home/oracle/p6880880_190000_Linux-x86-64.zip
   creating: OPatch/
   creating: OPatch/oracle_common/
   creating: OPatch/oracle_common/modules/
  inflating: OPatch/oracle_common/modules/com.oracle.glcm.common-logging_1.6.5.0.jar  
  inflating: OPatch/oracle_common/modules/common-logging-config.jar  
  inflating: OPatch/opatch_env.sh    
  inflating: OPatch/operr            
  inflating: OPatch/README.txt       

... 생략 ...

  inflating: OPatch/opatchprereqs/prerequisite.properties  
   creating: OPatch/opatchprereqs/oui/
  inflating: OPatch/opatchprereqs/oui/knowledgesrc.xml  
   creating: OPatch/opatchprereqs/opatch/
  inflating: OPatch/opatchprereqs/opatch/rulemap.xml  
  inflating: OPatch/opatchprereqs/opatch/runtime_prereq.xml  
  inflating: OPatch/opatchprereqs/opatch/opatch_prereq.xml  
  inflating: OPatch/opatch           
[oracle@oracle1 dbhome_1]$ 

이제 오라클 데이터베이스의 19.27.0.0.0 패치파일(p37641958_190000_Linux-x86-64.zip)을 준비한다.

[oracle@oracle1 dbhome_1]$ cd
[oracle@oracle1 ~]$ mkdir patch
[oracle@oracle1 ~]$ cd patch
[oracle@oracle1 patch]$ unzip ~/p37641958_190000_Linux-x86-64.zip 

... 생략 ...

  inflating: 37641958/automation/bp1-rollback-inplace-automation.xml  
  inflating: 37641958/automation/bp1-rollback-inplace-non-rolling-automation.xml  
  inflating: 37641958/automation/messages.properties  
  inflating: 37641958/README.txt     
  inflating: 37641958/README.html    
  inflating: 37641958/bundle.xml     
  inflating: PatchSearch.xml         
[oracle@oracle1 patch]$ 

이제 준비는 모두 끝났다.
패치를 포함하여 설치를 시작한다.

[oracle@oracle1 ~]$ cd /app/oracle/product/19c/dbhome_1/
[oracle@oracle1 dbhome_1]$ ./runInstaller -applyRU ~/patch/37641958/
Preparing the home to patch...
Applying the patch /home/oracle/patch/37641958/...
Successfully applied the patch.
The log can be found at: /tmp/InstallActions2025-07-11_09-40-51PM/installerPatchActions_2025-07-11_09-40-51PM.log
Launching Oracle Database Setup Wizard...

위와같이 진행된 이후 설치 GUI 화면이 나타난다.

이 과정에서 매우 오랜 시간이 걸린다. 8core 16GB 시스템에서 약 30분이 소요됐다.

[oracle@oracle1 ~]$ cd /app/oracle/product/19c/dbhome_1/
[oracle@oracle1 dbhome_1]$ ./runInstaller -applyRU ~/patch/37641958/
Preparing the home to patch...
Applying the patch /home/oracle/patch/37641958/...
Successfully applied the patch.
The log can be found at: /tmp/InstallActions2025-07-11_09-40-51PM/installerPatchActions_2025-07-11_09-40-51PM.log
Launching Oracle Database Setup Wizard...

The response file for this session can be found at:
 /app/oracle/product/19c/dbhome_1/install/response/db_2025-07-11_09-40-51PM.rsp

You can find the log of this install session at:
 /tmp/InstallActions2025-07-11_09-40-51PM/installActions2025-07-11_09-40-51PM.log
Moved the install session logs to:
 /app/oraInventory/logs/InstallActions2025-07-11_09-40-51PM
[oracle@oracle1 dbhome_1]$

설치가 완료되면 테스트 해보도록 한다.

[oracle@oracle1 dbhome_1]$ cd
[oracle@oracle1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Fri Jul 11 22:35:08 2025
Version 19.27.0.0.0

Copyright (c) 1982, 2024, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production
Version 19.27.0.0.0

SQL> SELECT banner_full FROM v$version;

BANNER_FULL
--------------------------------------------------------------------------------
Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production
Version 19.27.0.0.0

SQL> 
  • oracle_db_19c_설치_on_rocky_9.1763513251.txt.gz
  • 마지막으로 수정됨: 2025/11/19 00:47
  • 저자 koov