Immersion In Data

Oracle

[RHEL 8.6] ORACLE 19C 설치(Silent Mode)

sungjunminn 2023. 11. 21. 15:56

 

OS 환경 : RHEL 8.6

DB 환경 : Oracle Database 19.7.0.0

 

1. 사전 준비 사항

  • 사용자 및 그룹 생성
$ groupadd -g 1100 dba
$ groupadd -g 1101 oinstall
$ useradd -g dba -G oinstall oracle

 

  • SELINUX 설정 변경
$ vi /etc/selinux/config
SELINUX=permissive

 

  • 필요 라이브러리 패키지 다운로드 (경로 : /u01/media)

목록 :

LINUX.X64_193000_db_home.zip (ORACLE19C 패키지 파일)
oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm (Oracle Pre-install 파일)
glibc-devel-2.28-189.el8.x86_64.rpm(표준 C 라이브러리를 사용한 개발을 위한 객체 파일)
ksh-20120801-144.el7_9.x86_64.rpm(오리지널 ATT Korn Shell 라이브러리)
libaio-devel-0.3.113-3.1.x86_64.rpm(Linux 기본 비동기 I/O 액세스를 위한 개발 파일)
libnsl-2.28-236.el8.6.x86_64.rpm(NIS 레거시 지원 라이브러리)
make-4.2.1-11.el8.x86_64.rpm(빌드 프로세스 단순화 라이브러리)

https://www.oracle.com/kr/database/technologies/oracle19c-linux-downloads.html

 

Oracle Database 19c Download for Linux x86-64 | Oracle 대한민국

Oracle Database 19c Grid Infrastructure (19.3) for Linux x86-64 Contains the Grid Infrastructure Software including Oracle Clusterware, Automated Storage Management (ASM), and ASM Cluster File System. Download and install prior to installing Oracle Real Ap

www.oracle.com

https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/index.html

 

Oracle Linux 7 (x86_64) Latest | Oracle, Software. Hardware. Complete.

 

yum.oracle.com

https://www.rpmfind.net/linux/rpm2html/

 

rpm2html/rpmfind

rpm2html/rpmfind The rpmfind and rpm2html command line tools are deprecated. The C code base will not be maintained. However the search engine and network services found on the rpmfind.net machines will continue. You can use the form below to make queries:

www.rpmfind.net

 

  • 설치 경로 생성(root 유저로 수행)
$ mkdir -p /u01/app/oracle/product/19c/db_1
$ mkdir -p /u01/media
$ mkdir -p /u01/app/oraInventory
$ chown -R oracle:oinstall /u01
$ chmod -R 775 /u01

 

  • /u01/media 경로로 다운받은 라이브러리 이

 

  • 필요 라이브러리 패키지 설치
$ rpm -ivh oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm --nodeps
$ rpm -ivh glibc-devel-2.28-189.el8.x86_64.rpm --nodeps
$ rpm -ivh ksh-20120801-144.el7_9.x86_64.rpm --nodeps
$ rpm -ivh libaio-devel-0.3.113-3.1.x86_64.rpm --nodeps
$ rpm -ivh libnsl-2.28-236.el8.6.x86_64.rpm --nodeps
$ rpm -ivh make-4.2.1-11.el8.x86_64.rpm --nodeps

 

  • 그룹 및 오라클 계정 확인
[root@RHEL86Oracle19c /]# cat /etc/group |grep oinstall
oinstall:x:1101:oracle

[root@RHEL86Oracle19c /]# cat /etc/group |grep 1001
oinstall:x:1101:oracle

 

  • /etc/sysctl.conf 파일 편집(root 유저로 수행)
[root@RHEL86Oracle19c /]# vi /etc/sysctl.conf
# 시스템에서 동시에 오픈 가능한 파일의 수와 연관된 파일 핸들의 최대값
fs.file-max = 6815744 

# oracle-database-preinstall-19c setting for kernel.sem is '250 32000 100 128'
kernel.sem = 250 32000 100 128

# 공유 메모리 세그먼트의 최대 개수
kernel.shmmni = 4096

# 특정 시점에 시스템에서 사용 가능한 공유 메모리의 최대 크기
kernel.shmall = 1073741824

# 공유 메모리 세그먼트의 최대 크기
kernel.shmmax = 4398046511104

# 버그가 발생하면 시스템 PANIC 상태로 처리할지를 결정
kernel.panic_on_oops = 1

# TCP 수신 버퍼 크기의 기본값 설정
net.core.rmem_default = 262144

# TCP 수신 버퍼 크기의 최대값 설정
net.core.rmem_max = 4194304

# TCP 송신 버퍼 크기의 기본값 설정
net.core.wmem_default = 262144

# TCP 송신 버퍼 크기의 최대값 설정
net.core.wmem_max = 1048576

# oracle-database-preinstall-19c setting for net.ipv4.conf.all.rp_filter is 2
net.ipv4.conf.all.rp_filter = 2

# 모든 인터페이스에서 들어오는 패킷에 대해 reply를 하여 들어오는 인터페이스로 나가지 못하는 패킷을 거부함
net.ipv4.conf.default.rp_filter = 2

# 동시에 들어오는 요청의 개수를 제한함
fs.aio-max-nr = 1048576

# 시스템에 접속할 때 사용할 수 있는 네트워크 포트의 범위
net.ipv4.ip_local_port_range = 9000 65500

 

  • 커널 변경 값 적용
[root@RHEL86Oracle19c /]# sysctl -p

 

  • 사용자 환경 설정 .bash_profile(oracle 유저로 수행)
$ vi ~/.bash_profile
export TZ=Asia/Seoul
export HOME=/home/oracle
export GRID_HOME=/u01/app/oracle/product/19c/db_1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19c/db_1
export ORACLE_SID=testdb
export PATH=$PATH:$ORACLE_HOME/bin:$GRID_HOME/bin
export PS1='[$ORACLE_SID|\u:$PWD]> '
export CV_ASSUME_DISTID=OEL8
set -o vi
alias ss="sqlplus / as sysdba"
stty erase ^?
export LANG=ko_KR.utf8
export NLS_LANG=AMERICAN_KOREA.AL32UTF8

 

  • $ORACLE_HOME / $ORACLE_BASE 경로 디렉토리 생성 확인 
[testdb|oracle:/]> cd $ORACLE_BASE
[testdb|oracle:/]> cd $ORACLE_HOME

 

 

2. 소프트웨어 설치

  • ORACLE 19c 설치 파일 압축 해제(oracle 유저로 수행)
[testdb|oracle:/u01/media]> unzip LINUX.X64_193000_db_home.zip -d $ORACLE_HOME

 

  • db_install.rsp 파일 설정
vi $ORACLE_HOME/install/response/db_install.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0

oracle.install.option=INSTALL_DB_SWONLY

# 인벤토리 디렉토리의 UNIX 그룹 선택
UNIX_GROUP_NAME=oinstall

# 인벤토리 디렉토리 위치 선택
INVENTORY_LOCATION=/u01/app/oraInventory

# ORACLE_HOME 위치
ORACLE_HOME=/u01/app/oracle/product/19c/db_1

# ORACLE_BASE 위치
ORACLE_BASE=/u01/app/oracle

# 데이터베이스 설치 버전 선택, EE : Enterprise Edition, SE2 : Standard Edition 2
oracle.install.db.InstallEdition=EE

# 데이터베이스 관리자(OSDBA) 그룹, 선택사항
oracle.install.db.OSDBA_GROUP=oinstall

# 데이터베이스 운영자(OSOPER) 그룹
oracle.install.db.OSOPER_GROUP=oinstall

# 데이터베이스 백업 및 복구(OSBACKUPDBA) 그룹
oracle.install.db.OSBACKUPDBA_GROUP=oinstall

# Data Guard 관리(OSDGDBA) 그룹
oracle.install.db.OSDGDBA_GROUP=oinstall

# 암호화키 관리(OSKMDBA) 그룹
oracle.install.db.OSKMDBA_GROUP=oinstall

# RAC(Real Application Cluster) 관리(OSRACDBA) 그룹
oracle.install.db.OSRACDBA_GROUP=oinstall

# true/false 선택, false일 경우 Manually 하게 ROOT SCRIPT 실행
oracle.install.db.rootconfig.executeRootScript=true

# ROOT/SUDO 선택, executeRootScript 설정값이 true일 경우 선택
oracle.install.db.rootconfig.configMethod=ROOT

 

  • 소프트웨어 설치 실행
$ ORACLE_HOME/runInstaller -silent -responseFile $ORACLE_HOME/install/response/db_install.rsp

**db_install.rsp 파일 실행 오류시 orainventory 디렉토리에서 전부 지우고 다시 실행

$ rm -rf *

 

 

3. 리스너 구성

  • netca.rsp 설치 파일 적용

netca.rsp 파일은 별도의 수정 없이 사용 가능

$ netca -silent -responseFile $ORACLE_HOME/assistants/netca/netca.rsp

 

  • 리스너 확인
$ lsnrctl status

 

 

4. 데이터베이스 생성

  • dbca.rsp 파일 설정
$ vi $ORACLE_HOME/assistants/dbca/dbca.rsp
# Globas Database Name 설정
gdbName=testdb

# 데이터베이스 SID 설정
sid=testdb

# 컨테이너 DB 생성 여부 
createAsContainerDatabase=false

# 생성할 플러그인 데이터베이스 수(Default 0)
numberOfPDBs=

# 플러그인 데이터베이스의 로컬 UNDO 테이블스페이스 사용(Default TRUE)
useLocalUndoForPDBs=TRUE

# PDB Administrator 사용자 패스워드
pdbAdminPassword=

# 생성할 데이터베이스의 템플릿 (Data_Warehouse.dbc General_Purpose.dbc에 하나)
templateName=General_Purpose.dbc

# SYS 사용자 패스워드
sysPassword=P@ssw0rd

# SYSTEM 사용자 패스워드
systemPassword=P@ssw0rd

# 저장소 타입 설정(FS, ASM / Default FS)
storageType=FS

# 문자셋 설정(Default US7ASCII)
characterSet=AL32UTF8

# National CharacterSet 설정(Default AL16UTF8)
nationalCharacterSet=AL16UTF16

# 데이터베이스를 등록할 리스너 이름
listeners=LISTENER

# 데이터베이스 유형 선택(**MULTIPURPOSE**|DATA_WAREHOUSING|OLTP)
databaseType=MULTIPURPOSE

# 샘플스키마 설치 여부(Default False)
sampleSchema=TRUE

# 데이터베이스에 사용될 메모리, MB 단위
totalMemory=4096

 

  • 데이터베이스 설치 진행
$ dbca -silent -createDatabase -responsefile $ORACLE_HOME/assistants/dbca/dbca.rsp

 

  • 데이터베이스 생성 완료 확인
$ sqlplus / as sysdba
SQL> select * from v$controlfile;
SQL> select * from v$log;
SQL> select * from v$logfile;
SQL> select tablespace_name, file_name, status, autoextensible, bytes/1024/1024 from dba_data_files;
SQL> select * from dba_temp_files;