Redhat 8.3에 Oracle 19c를 쉽게 설치해보려고 합니다. (Oracle 18c도 가능합니다)
기본적으로 Oracle을 설치하려면 다음과 같은 복잡한 초기설정이 필요합니다. 😱
oracle
사용자 계정, oinstall
및 dba
그룹 생성sysctl.conf
설정하지만 이 포스트에서는 위의 6가지 내용을 자동으로 진행해주는 preinstall
을 활용할 겁니다.
초기설정을 수동으로 하고싶다면 말리지는 않겠습니다. 하지만 끔찍할겁니다.
만약 수동설정을 시도하다가 오셨다면, 새로운 시스템에서 진행할 것을 권장합니다.
기존 설정 때문에preinstall
과정에서 충돌이 날 수 있습니다.
모든 설정은 root
계정으로 진행합니다.
오라클은 성능 이슈로 THP를 비활성화하도록 권장하고 있습니다.
THP를 비활성화는 preinstall
에 포함되지 않았으므로 직접 설정해주어야 합니다.
THP 설정 파일 경로
cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
(저는 RHEL 8.3이지만 RedHat Kernel이 아니라서 이 경로에 있었습니다)
always
가 괄호 [ ]로 감싸져 있어 현재 THP가 활성화된 것을 알 수 있습니다.
never
로 설정을 바꿔줍니다.
always madvise [never]
설정이 적용되도록 재부팅해줍니다.
다시 root
계정으로 접속합니다.
그리고 다음 preinstall
RPM 파일을 다운받아줍니다.
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
바로 설치하면 RHEL 8부터 삭제된 패키지인 compat-libstdc++
and compat-libcap1
이 없어 오류가 날 텐데요, 수동으로 설치해주어야 합니다.
아래 명령어로 설치가 가능합니다.
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 localinstall compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
yum localinstall compat-libcap1-1.10-7.el7.x86_64.rpm
준비가 끝났으므로 Preinstall
설치를 진행합니다.
yum localinstall oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
어느정도 시간이 지나면 설정이 완료됩니다.
마지막으로 OS 충돌방지 커맨드를 실행해줍니다.
export CV_ASSUME_DISTID=OEL7.6
preinstall
이 무사히 완료되었다면 이제 Oracle 19c를 설치할 차례입니다.
RPM 패키지는 오라클 공식 홈페이지에서 다운로드 할 수 있습니다.
wget 또는 curl을 활용해서 oracle-database-ee-19c-1.0-1.x86_64.rpm
이라는 이름으로 다운받아줍니다.
다운받은 패키지를 설치하면 끝입니다.
yum -y localinstall oracle-database-ee-19c-1.0-1.x86_64.rpm
DB를 설치한 직후에 RAM 사용량이 굉장히 높을 수 있어 재부팅을 권장합니다.
이제 기본 설정파일로 샘플 DB를 만들어보겠습니다.
Container Database (ORCLCDB
) 한 개와 Pluggable Database (ORCLPDB1
) 한 개가 1521포트에 생성됩니다.
root
계정으로 접속합니다.
다음 명령어를 실행합니다.
/etc/init.d/oracledb_ORCLCDB-19c configure
설정은
/etc/sysconfig/oracledb_ORCLCDB-19c.conf
에서 변경할 수 있습니다.
시간이 좀 지나면 아래 출력과 같이 완료됩니다.
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
DB 생성까지 완료됐다면 oracle
계정으로 DB를 실행할 수 있습니다.
su oracle
하지만 아직 Alias 설정이 없어서 SQL *Plus 명령어가 먹히지 않습니다.
[oracle@localhost ~]$ sqlplus startup
bash: sqlplus: command not found
다음 명령어를 실행하여 Alias를 추가할 수 있습니다. (반드시 oracle
계정에서 실행)
echo "export ORACLE_BASE=/opt/oracle/
export ORACLE_HOME=\$ORACLE_BASE/product/19c/dbhome_1
export ORACLE_SID=ORCLCDB
export PATH=\$ORACLE_HOME/bin:\$PATH" >> ~/.bashrc
추가했다면 재접속하거나, bash로 새 세션을 시작합니다.
이제 잘 됩니다!
[oracle@localhost /]$ sqlplus -V
SQL*Plus: Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
이제 sqlplus startup
으로 DB를 시작해줍니다.
[oracle@localhost /]$ sqlplus startup
[oracle@localhost /]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Sun Nov 5 06:48:12 2023
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
끝!
참고자료
(6) Install Oracle 19c on RHEL 8 | LinkedIn