CentOS 7 에서 Oracle 11g 에 설치하기.

 

 

1. 다운로드

 

Oracle 11g 는 다운로드 하는 것 부터가 불편하다. 구글에서 대충 검색하면 현재 보편화된 19c 다운로드 페이지로 이동되고, 모든 버전을 확인하고 다운받으려면 Oracle Software Delivery Cloud 사이트(https://edelivery.oracle.com) 로 이동해야 한다. 마찬가지로 oracle 계정이 필요하다.

 

 

2. X window 준비

 

Oracle 11g 는 X window 환경을 필요로 하기 때문에 X window 환경을 준비한다.

 

  • 방법1. GUI 용 서버 설치
    # yum groupinstall 'Server with GUI'
  • 방법2. GNOME Desktop 설치
    # yum groupinstall 'GNOME Desktop'
  • 방법3. 최소한의 X11 패키지 설치 및 Xming(원격) 사용하기
    link: Xming 설치 링크

 

CentOS GUI 환경에서는 설치 중 에러 메시지 등이 깨져 보일 수 있는데 이럴 때는 설치를 중단하고 윈도우즈 환경(Xming) 에서 원격 접속하면 설치 중 메시지들을 정상적으로 확인할 수 있다.

 

 

3. 오라클 계정/그룹 생성

 

# groupadd dba
# useradd -g dba oracle
# passwd oracle

 

 

4. 설치 디렉토리 및 권한 설정

 

원하는 ORACLE_BASE 디렉토리를 생성한다.

 

# mkdir -p /app/oracle
# chown -R oracle:dba /app

 

 

5. 설치 전 준비사항

 

오라클 설치 전에는 메모리도 확보해야 하고, 파일 디스크립터, OS 커널 파라미터 설정도 해야 하고, 의존 라이브러리도 설치해야 한다. 아무 설정 없이 오라클 설치를 진행하면 다음의 화면을 만날 수 있다.

 

 

ignore all 을 체크하고 설치를 진행해도 오라클 설치는 마칠 수 있지만, 정상적으로 설치가 완료됐다고 볼 수도 없고 굳이 그렇게 설치할 필요도 없다. 또 ignore 체크를 해도 진행되지 않는 경우도 있다. 나는 Swap Memory 와 pdksh(Public domain Korn shell) 때문에 진행이 되지 않은 적이 있다.

 

 

5.1 OS 커널 파라미터 값 설정 (ignore 로 fix 가능)

 

# vi /etc/sysctl.conf

# Controls the maximum shared segment size, in bytes
kernel.shmmax = 68719476736

# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 10523004
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128

fs.aio-max-nr = 1048576
fs.file-max = 6815744

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586

 

# /sbin/sysctl -p

 

 

5.2 유저 자원 사용 제한값 설정 (ignore 로 fix 가능)

 

# vi /etc/security/limits.conf
...
oracle soft nproc 2048
oracle hard nproc 65536
oracle soft nofile 1024
oracle hard nofile 65536

 

 

5.3 의존 라이브러리 설치

 

# yum -y install compat-libstdc++-33.x86_64 binutils elfutils-libelf elfutils-libelf-devel
# yum -y install glibc glibc-common glibc-devel glibc-headers gcc gcc-c++ libaio libaio-devel
# yum -y install libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel

# yum -y install unzip wget

 

 

5.4 pdfsh 설치

 

다운로드 사이트

http://rpm.pbone.net/info_idpl_2398776_distro_redhat7.x_com_pdksh-5.2.14-8.i386.rpm.html

 

# wget ftp://ftp.pbone.net/mirror/archive.download.redhat.com/pub/redhat/linux/7.0/en/os/i386/RedHat/RPMS/pdksh-5.2.14-8.i386.rpm
# rpm -Uvh --nodeps pdksh-5.2.14-8.i386.rpm --force

 

 

5.5. oracle 계정 환경변수 설정

 

# vi /home/oracle/.bash_profile
export ORACLE_BASE=/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
export PATH=$PATH:$ORACLE_HOME/bin

 

ORACLE_BASE, ORACLE_HOME 이나 SID 등은 필요에 맞게 수정한다.

 

 

5.6 Swap 메모리 설정

 

이 부분은 조금 이해가 안된다. Oracle 11g R2 설치시 최소 메모리가 1GB 인데, 한번은 16GB 시스템에서 Actual Value 가 8GB, Expected Value 가 16GB 로 되어 진행되지 않은 적이 있다. 메모리가 부족하지도 않은데 시스템 메모리 만큼 영끌하라는게 말이됨? 아무튼 이런 이유로 진행이 되지 않는다면 Expected Value 까지 swap 메모리를 확보해야 한다.

 

link: Swap memory 생성 참고

 

 

6. oracle 11g 설치파일 준비

 

oracle 11g 설치 파일을 서버에서 직접 다운받은게 아니라면 ftp 등을 이용하여 oracle 11g 파일을 서버에 업로드한다. oracle 11g 설치 파일을 oracle 계정이 실행할 수 있도록 설정하고 installer 를 실행한다.

 

# mv V17530-01_1of2.zip /home/oracle
# mv V17530-01_2of2.zip /home/oracle
# chown oracle:dba /home/oracle/V17530*

 

 

7. installer 실행

 

installer 를 실행하는데 있어 가장 중요한 것이 oracle 계정으로 로그인 하는 것이다. su / sudo 등을 이용하지 않고 새로운 세션에서 oracle 계정으로 로그인 해야 한다.

 

$ unzip V17530-01_1of2.zip
$ unzip V17530-01_2of2.zip
$ ./database/runInstaller

 

만약 한글판일 경우 한글이 깨지면,

 

$ export LANG=C
$ export LC_ALL=C
$ ./database/runInstaller

 

 

8. 설치 과정

 

  • Configure Security Updates : pass
  • Installation Option : Create and configure a database
  • System Class : Server Class
  • Grid Options : Single instance database installation
  • Install Type : Typical install
  • Database Edition : Enterprise Edition
  • Installation Location : default (/app/oracle)
  • Create Inventory : default
  • Prerequisite Checks : Ignore All

 

 

9. 설치 중 오류 수정

 

$ vi /app/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk
ctxhx: $(CTXHXOBJ) 
    -static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)

 

$ vi /usr/oracle/app/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk
$(SYSMANBIN) emdctl:
    $(MK_EMAGENT_NMECTL) -lnnz11

 

 

10. 구성 스크립트 실행(Root)

 

# /app/oraInventory/orainstRoot.sh
# /app/oracle/product/11.2.0/dbhome_1/root.sh

 

 

11. 설치 완료 후 계정 생성

 

$ sqlplus / as sysdba
SQL> CREATE USER username identified by password;
SQL> GRANT resource, connect, dba to username;
SQL> SELECT * FROM ALL_USERS

USERNAME                          USER_ID CREATED
------------------------------ ---------- ------------------
OOPS4U                                 91 10-JUL-21

 

username 과 password 에 원하는 계정정보 입력.

 

 

12. 방화벽 port 열기

 

# firewall-cmd --zone=public --add-port=1521/tcp --permanent
# firewall-cmd --reload

 

 

13. 클라이언트 접속 테스트

 

SQL Developer 설치

https://www.oracle.com/tools/downloads/sqldev-downloads.html

 


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,