문서의 이전 판입니다!
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가지 방법이 있는데
- 설치를
rpm으로 설치하는 방법 OPatch와DBRU업데이트를 적용하는 방법
개인적으로는 rpm설치를 권장하지만 이런경우 설치경로를 지정할 수 없고 /opt/oracle로 설치된다는 점, 그리고 무조건 Enterprise Edition으로만 설치가 가능하다는점 등이 제한적이다.
딱히 경로에 상관이 없다면 rpm설치를 권장하고 특정경로에 설치해야 하는경우이거나 Standard Edition을 설치해야하는 경우에는 두번째 방법을 사용하여 설치하도록 한다.
RPM 패키지로 설치하기
다운로드
RPM 패키지 다운로드는 아래 경로에서 다운로드 하도록 한다.
어느 경로에서 다운로드 받아도 상관 없으며 RPM설치시에는 무조건 Enterprise Edition으로 설치된다는 점을 유의한다.
패키지 다운로드가 완료되었다면 preinstall패키지를 다운로드 하도록 한다.
oracle-database-preinstall패키지는
- 사용자 추가
- THP Disable
- limits 설정
- sysctl 커널 파라메터 설정
등을 자동으로 수행해주므로 아주 편리하다. 이 패키지는 Oracle Linux의 레포지토리에 존재하는 패키지로서 기본적으로 Oracle Linux를 설치하면 포함되어있지만 RHEL/Rocky의 경우에는 수동으로 다운받아 사용하면 된다.
설정
패키지를 모두 다운받았다면 설치하기 전에 아래 설정을 수행한다.
selinuxdisable또는Permisive설정firewallddisable
두가지 항목 모두 본인이 설정하여 사용하고 싶다면 설정해서 사용해도 되지만 편의를 위해 비활성화 하는것으로 한다.
설치
다운로드 받은 파일
oracle-database-ee-19c-1.0-1.x86_64.rpmoracle-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 설치 방법
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.rpm 은 rpm설치때와 마찬가지로 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)
설치
먼저 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 사용자 권한으로 변경해줍니다.
먼저 설치할 디렉토리를 생성한다. <WRAP prewrap> <code bash> [root@oracle1 ~]# mkdir -p /app/oracle [root@oracle1 ~]# chown -R oracle. /app
이후 oracle계정으로 로그인하여 다음을 진행한다. oracle계정 홈디렉토리(/home/oracle/)에 아래 파일들이 위치해야한다.
LINUX.X64_193000_db_home.zipp37641958_190000_Linux-x86-64.zipp6880880_190000_Linux-x86-64.zip
먼저 설치 환경 설정을 아래와 같이 한다고 가정한다.
CV_ASSUME_DISTID:RHEL9이 값은 오라클 데이터베이스 설치 시 특정 리눅스 배포판을 인식하도록 설정하는 환경 변수입니다.ORACLE_BASE:/app/oracleORACLE_HOME:$ORACLE_BASE/product/19c/dbhome_1ORACLE_SID:ORCL- 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 화면이 나타난다.
[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 FROM v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production SQL>
오류
INS-08101
INS-08101 Unexpected error while executing the action at state : 'supportedOSCheck'
위 오류가 나오는것은 사전 체크 과정에서 OS버전이 지원되지 않는 버전인경우에 나오는 오류이다. 실제로 RHEL/Rocky/CentOS/Fedora/OracleLinux 는 모두 같은 계열이라 다 호환이 되어야 하는데 이름은 달라서 지원되지 않는걸로 판단하기 때문에 나오는 문제이다.
해결방법은 같은 버전의 OracleLinux로 설정하면 된다.
9 버전이면 OEL9, 8 버전이면 OEL8 등으로 설정하면 해결된다.
$ export CV_ASSUME_DISTID=OEL9 $ ./runInstaller
CV_ASSUME_DISTID 변수
Cluster Verification Assume Distribution ID이며, Oracle 설치 프로그램이 현재 실행 중인 리눅스 배포판이 특정한 배포판 ID 를 가진다고 가정하게 만듬. 이 변수는 Oracle 설치 프로그램이 특정 배포판에서만 동작하도록 되어 있을 때, 다른 배포판에서도 설치가 가능하도록 속이는 역할을 함. 위 코드의 의미는 Oracle Enterprise Linux 9 버전으로 인식하게 함.




















