본문 바로가기
정보관리(데이터베이스, DB)/오라클

리눅스 linux Oracle DB 18C 설치

by 3604 2023. 7. 26.
728x90
 2020. 7. 24. 15:06

 출처: https://ta-starter.tistory.com/27

 

- Server Spec -

CPU - 2 Core

MEMORY - 4GB

HDD - 40G

OS - CentOS 7 minimal

+ Putty SSH로 접속, X11 사용 설정

 

 

 

 

1. Oracle 18c 설치를 위한 패키지 설치

$ sudo yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 ksh elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel gcc gcc-c++ libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libstdc++ libstdc++.i686 libstdc++-devel libstdc++-devel.i686 make sysstat unixODBC unixODBC-devel xclock xterm compat-libcap1

 

2. Kernel parameter를 아래와 같이 수정 후 적용

$ sudo vi /usr/lib/sysctl.d/00-system.conf

 

# Disable netfilter on bridges.

# net.bridge.bridge-nf-call-ip6tables = 0

# net.bridge.bridge-nf-call-iptables = 0

# net.bridge.bridge-nf-call-arptables = 0

 

 

$ sudo vi /etc/sysctl.conf

 

net.ipv4.ip_local_port_range = 9000 65500

fs.file-max = 6815744

fs.aio-max-nr = 1048576

kernel.shmall = 2147483648

kernel.shmmax = 2147483648‬

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.core.rmem_default=262144

net.core.wmem_default=262144

net.core.rmem_max=4194304

net.core.wmem_max=1048576

 

$ sysctl -p

 

3. 설치 계정  그룹 생성

$ sudo groupadd oinstall

$ sudo groupadd dba

$ sudo useradd -g oinstall -G dba oracle

$ sudo passwd oracle

 

4. 리소스 제한 설정, 아래의 내용 추가

$ sudo vi /etc/security/limits.conf

 

oracle  soft    nproc   16384
oracle  hard    nproc   16384
oracle  soft    nofile  1024
oracle  hard    nofile  65536
oracle  soft    stack   10240
oracle  hard    stack   32768

 

$ sudo vi /etc/profile

 

if [ $USER = "oracle" ]; then

      if [ $SHELL = "/bin/ksh" ]; then

           ulimit -p 16384

           ulimit -n 65536

      else

           ulimit -u 16384 -n 65536

      fi

fi

 

 

5. SELinux 끄기

$ setenforce 0

$ sudo vi /etc/selinux/config

 

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

 

6. Oracle 환경 설정 폴더 권한 변경 및 유저 추가

$ sudo mkdir -p /usr/oracle/app

$ sudo mkdir /usr/oracle/oradata

$ sudo chmod -R 755 /usr/oracle

$ sudo chown -R oracle:oinstall /usr/oracle

 

7. Oracle 계정에 환경변수 추가

$ vi /home/oracle/.bash_profile

 

umask 022

export ORACLE_BASE=/usr/oracle/app

 

8. Oracle 설치파일 다운로드 후 압축 해제

 

오라클 홈페이지에서 LINUX.X64_180000_db_home.zip 설치 후 압축 풀기

 

# 압축 풀면 Oracle DB 구성 파일들이 생기므로 특정 폴더 안에서 압축 푸는것을 권장

$ unzip LINUX.X64_180000_db_home.zip

 

9. xhost 연결 확인

 

접속한 OS( ex. Window )에서 Xming 설치 후

 

 

Linux에서 $ sudo xhost +

 

※ unable ~ 에러 출력시

 

$ export DISPLAY=localhost:0.0

혹은 Putty의 X11 설정 하였는지 확인

 

$ xclock

접속된 OS에서 xclock 출력 확인

 

10. Oracle 설치 진행

$ su oracle

$ ./runInstaller

 

※ unable ~ 에러 출력시 Linux 접속을 oracle 계정으로 로그인 ( root 등의 계정 후 su 명령어로 유저 변경하면 에러 발생 )

 

데이터베이스와 리스너를 같이 설정한다면 위 옵션

oracle 18C 구성만 한다면 아래 옵션

 

 

클래스 선택

 

 

기본 설정을 원하면 위 옵션

세부 설정을 원하면 아래 옵션

 

 

 

라이센스 선택

 

 

 

oracle base 경로 지정

 

 

 

inventory 경로 지정

 

 

 

일반 목적 선택

 

 

 

SID명 지정

 

 

 

메모리 타겟 설정

 

 

 

문자셋 설정

 

 

 

샘플 스키마 생성 여부 설정

 

 

 

데이터베이스 데이터파일 경로 지정

 

 

 

EM 사용 여부 설정

 

 

 

복구 사용 여부 설정

 

 

관리자 계정 비밀번호 설정

 

 

 

그룹 계정 지정

 

 

 

phsical Memory - ignore all로 무시

OS Kernel Paramete: shmall - 상단 중앙에 Fix & check again을 클릭하고 스크립트 실행

package: compat-libcap1-1.10 - 패키지 설치 [ yum -y install compat-libcap1-1.10 ]

 

 

 

에러가 전부 사라졌다면 완료

 

 

 

설치 진행

 

 

설치가 종료되면 위의 스크립트 실행

 

11. Oracle 계정에 환경변수 추가 후 적용

# 위에서 압축을 해제 했을 때 Oracle 구성 파일들의 위치를 환경 변수에 추가해야 함

# 필자는 11g, 12c와 비슷하게 구성하기 위해 /usr/oracle/app/product/18c/dbhome_1 경로로 폴더를 생성하여 구성 파일들을 옮김

 

$ su oracle

$ vi ~/.bash_profile

 

export ORACLE_HOME=/usr/oracle/app/product/18c/dbhome_1 
export ORACLE_SID=ORCL 
export LD_LIBRARY_PATH=/usr/oracle/app/product/18c/dbhome_1/lib 

PATH=$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_HOME/bin 
export PATH 

 

$ source ~/.bash_profile

 

12. init.ora 복사 후 수정 

# 위에 설정을 그대로 따라했다면 Recovery를 사용하지 않겠다고 체크 했으므로 init.ora 파일도 수정 필요

 

$ cp $ORACLE_HOME/dbs/init.ora $ORACLE_HOME/dbs/init.ora

$ vi $ORACLE_HOME/dbs/init.ora

 

# 예시) 필자의 initORCL.ora 설정

# recovery 부분 주석 처리 및 서버의 메모리에 맞게 sga_target 추가 및 Control file 위치 지정 등 필요

sga_target = 1G
db_name='ORCL'
processes = 150
# audit_file_dest='<ORACLE_BASE>/admin/orcl/adump'
# audit_trail ='db'
db_block_size=8192
db_domain=''
# db_recovery_file_dest='<ORACLE_BASE>/fast_recovery_area'
# db_recovery_file_dest_size=2G
diagnostic_dest='<ORACLE_BASE>'
dispatchers='(PROTOCOL=TCP) (SERVICE=ORCL)'
open_cursors=300
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
# You may want to ensure that control files are created on separate physical
# devices
control_files = '/usr/oracle/app/oradata/ORCL/control01.ctl', '/usr/oracle/app/oradata/ORCL/control02.ctl'
compatible ='18.0.0'

 

 

13. 접속 확인, DB 시작

$ sqlplus sys as sysdba

$ startup

728x90