본문 바로가기

Linux Server

Oracle 11g Setup

선행 작업 - X-window, xrdp 


oracle 11g 설치는 GUI를 필요로 하므로, X window를 설치한다. 이후 xrdp를 사용하여 서버에 원격으로 접속, X-window에 접근하는 방법을 사용한다.

Xming을 통해서도 가능하지만, 반응속도가 느리고, 폰트 등의 가독성이 좋지 않은 단점이 있다. 반면에 xrdp는 매우 쾌적한 컴퓨팅 환경을 제공한다.


X-window 설치

yum groupinstall "Server with GUI"

startx


xrdp 설치를 위한 Repository 추가

vi /etc/yum.repos.d/xrdp.repo

[xrdp]
name=xrdp
baseurl=http://li.nux.ro/download/nux/dextop/el7/x86_64/
enabled=1
gpgcheck=0


xrdp, tigervnc-server 패키지 설치

yum install xrdp tigervnc-server


서비스 시작 및 자동시작에 등록

systemctl start xrdp

systemctl enable xrdp


방화벽 설정

firewall-cmd --permanent --zone=public --add-port=3389/tcp

firewall-cmd --reload



선행 작업 - 패키지 설치 및 커널 파라메터 설정


필요한 패키지 설치

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


필요한 라이브러리 설치여부 확인

rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE}(%{ARCH})\n' binutils \elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel


커널 파라메터 설정

아래 표시된 4줄을 주석 처리한다.

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


다음 내용을 끝에 추가한다.

vi /etc/sysctl.conf

net.ipv4.ip_local_port_range = 9000 65500

fs.file-max = 6815744

kernel.shmall = 10523004

kernel.shmmax = 6465333657

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

fs.aio-max-nr = 1048576


파라메터 확인

sysctl -p



계정 및 그룹 생성


오라클 관리용 계정 및 그룹의 생성

groupadd -g 200 oinstall

groupadd -g 201 dba

useradd -u 440 -g oinstall -G dba -d /home/oracle oracle

passwd oracle


볼드 처리된 부분을 추가한다.

vi /etc/pam.d/login

# pam_selinux.so open should only be followed by sessions to be executed in the user context

session    required     pam_selinux.so open

session    required     pam_namespace.so

session    required     pam_limits.so

session    optional     pam_keyinit.so force revoke

session    include      system-auth

-session   optional     pam_ck_connector.so


파일 마지막 부분에 네 줄을 추가한다.

vi /etc/security/limits.conf

oracle   soft   nproc    2047

oracle   hard   nproc    16384

oracle   soft   nofile   1024

oracle   hard   nofile   65536


파일 마지막 부분에 코드를 추가한다.

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


오라클 계정의 환경 설정

mkdir -p /usr/oracle/app

mkdir /usr/oracle/oradata

chmod -R 755 /usr/oracle

chown -R oracle:oinstall /usr/oracle


세 줄을 마지막에 추가한다.

vi /home/oracle/.bash_profile

umask 022

export ORACLE_BASE=/usr/oracle/app

export LANG=C

CentOS7 설치시 환경을 한글로 선택했다면, 오라클 설치프로그램의 한글이 제대로 출력되지 않는다. LANG환경 변수를 위와 같이 변경하여 영문 출력으로 변경할 수 있다.



파일 다운로드 및 압축 해제


오라클 서버 파일을 다운로드한다. ※ 64비트 확인

 - FTP를 통해 oracle계정이 접근할 수 있는 곳에 업로드

 - 오라클 계정으로 X-window환경에 로그인하여 직접 다운로드

Download : Oracle Database 11g (Linux x64)

unzip ./linux.x64_11gR2_database_1of2.zip 

unzip ./linux.x64_11gR2_database_2of2.zip



오라클 설치


Oracle계정으로 X-window 환경으로 로그인한다. Shell 환경도 Oracle계정으로 진행한다.

터미널 프로그램을 열고 인스톨러를 실행한다.

./database/runInstaller

오류로 인해 Pop-up Dialog가 보이지 않을 수 있다. installation log 파일을 참고하여 설치하도록 한다. (파일명 치환 필요)

tail -f /usr/oracle/oraInventory/logs/installActions.....log


1. Configure Security Updates

- Uncheck All, Leave Blank

2. Email Address not Specified

- YES

3. Select Installation Option

Install database software only

4. Node Selection

Single instance database installation

5. Select Product Languages

Korean 추가

6. select Database Edition

 - Enterprise Edition

7. Specify Installation Location

- 기본값

8. Create Inventory

- 기본값

9. Privileged Operating System Groups

- 기본값

10. Perfom Prerequisite Checks

- Ingore All

11. Summary

- Finish

12. ERROR #1

Error in invoking target 'install' of makefile '/usr/oracle/app/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk'.

Pop-up이라 X-window에서 보이지 않을 수 있다.

- 패키지 설치 및 ins_ctx.mk 파일을 수정한다.

yum install glibc-static.x86_64 glibc-static.i686


vi /usr/oracle/app/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk

ctxhx: $(CTXHXOBJ)

    $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)

▼ (위 내용을 찾아서, 아래처럼 수정한다.)

ctxhx: $(CTXHXOBJ)

    -static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/stdc.a

- Dialog가 안보이는 경우, Alt+R (Retry)를 눌러 계속 진행한다.


13. ERROR #2

Error in invoking target 'agent nmhs' of makefile '/usr/oracle/app/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk'.

- Pop-up이라 X-window에서 보이지 않을 수 있다.

- oracle 계정으로, ins_emagent.mk 파일을 수정한다.

vi /usr/oracle/app/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk

$(SYSMANBIN) emdctl:

    $(MK_EMAGENT_NMECTL)

▼ (위 내용을 찾아, 아래처럼 수정한다.)

$(SYSMANBIN) emdctl:

    $(MK_EMAGENT_NMECTL) -lnnz11

- Dialog가 안보이는 경우, Alt+R (Retry)를 눌러 계속 진행한다.

14. Exceute Configuration Scripts

- 역시 Pop-up이라 X-window에서 보이지 않을 수 있다.

- Root 계정으로 두 스크립트를 수행한다.

/usr/oracle/oraInventory/orainstRoot.sh

/usr/oracle/app/product/11.2.0/dbhome_1/root.sh


환경변수를 추가합니다.

vi ~/.bash_profile

export ORACLE_BASE=/usr/oracle/app

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

export ORACLE_SID=orcl

export PATH=$PATH:$ORACLE_HOME/bin

source ~/.bash_profile



리스너 설정


/usr/oracle/app/product/11.2.0/dbhome_1/bin/netca 


포트 오류가 날 수 있다. 이 경우, 리스너를 수동으로 설정해준다.

lsnrctl start

TNS-12545: Connect failed because target host or object does not exist

 TNS-12560: TNS:protocol adapter error

  TNS-00515: Connect failed because target host or object does not exist

   Linux Error: 99: Cannot assign requested address

역시 오류가 날 수 있다. 

우선 DB설정을 한다.



데이터베이스 설정


X-Window에서 oracle계정으로 다음을 실행한다.

 /usr/oracle/app/product/11.2.0/dbhome_1/bin/dbca 


SID: orcl

비밀번호 등을 입력하고 나머지는 기본값으로 진행한다.