1. 2018.08.21 Oracle 18c 설치 Single
  2. 2017.11.09 Oracle 12c R2 RAC 설치 #2
  3. 2017.11.09 Oracle 12c R2 RAC 설치 #1
  4. 2017.06.21 ORACLE 12c Standard Edition 2
  5. 2017.02.08 11g 설치시 agent nmhs ins_emagent.mk 에러
  6. 2016.08.05 Oracle 11g 11.2.0.4 RAC ASM 설치 (Last Ver.) - 3. DB 구축
  7. 2016.08.05 Oracle 11g 11.2.0.4 RAC ASM 설치 (Last Ver.) - 2. Grid 설치 (2)
  8. 2016.08.04 Oracle 11g 11.2.0.4 RAC ASM 설치 (Last Ver.) - 1. 서버 세팅 (1)
  9. 2016.03.03 Oracle 12c Intro
  10. 2014.10.20 Linux 5.11 64bit Oracle 10gR2 RAC 설치
  11. 2014.09.23 Linux 6.5 64bit Oracle 11g RAC 설치 - OS 설정 (6)
  12. 2014.09.22 Red Hat Enterprise Linux 버전별 Oracle 지원 여부
  13. 2014.09.19 Oracle 11g DataGuard 설치 - Single instance
  14. 2014.09.15 오라클 패치의 종류 및 개념
  15. 2014.09.15 RAC를 위한 ocfs2 클러스터링
  16. 2014.06.11 HP-UX Oracle 11g Setting
  17. 2013.08.01 Oracle 11g RAC 설치 - 2. Openfiler 로 스토리지 구성
  18. 2013.08.01 Oracle 11g RAC 설치 - 1. Solaris 10 설치 (2)
  19. 2012.12.07 리눅스기반 11g에서 Sample schema 수동 설치
  20. 2012.12.04 CentOS4.8 + Oracle 9i R2 설치 (9.2.0.4 - 32bit) (1)
  21. 2012.10.16 CentOS 5.8 64bit에 Oracle 11g ASM 방식 Standalone 설치 2.설치 및 DB생성
  22. 2012.10.16 CentOS 5.8 64bit에 Oracle 11g ASM 방식 Standalone 설치 1.설치 세팅
  23. 2012.10.02 CentOS 6.x 64bit에 Oracle 10g 설치하기 (2)
  24. 2012.09.28 CentOS 6.x 64bit Oracle 11g R2 싱글 설치
  25. 2012.09.18 CentOS 5 64bit 버전에 Oracel 10g R2 설치하기
  26. 2012.07.29 오라클 설치 압축파일 내용
  27. 2012.07.02 Oracle 11g Grid - ASM 방식 RAC 설치 - 3. 엔진 설치 및 DB 생성
  28. 2012.07.01 Oracle 11g Grid - ASM 방식 RAC 설치 - 2. Grid Infrastructure 설치
  29. 2012.07.01 Oracle 11g Grid - ASM 방식 RAC 설치 - 1. 리눅스 설치 및 세팅
  30. 2012.06.15 Oracle 10g 싱글 silent 설치, 패치 및 DB 생성

Oracle 18c 설치 Single

오라클 18c가 릴리즈 되었는데 설치 방법이 약간 바뀌었다.


18c는 2018.08.21 기준, 리눅스와 솔라리스 버전만 릴리즈 되었다.



해당 예제는 리눅스 7버전에 설치를 진행 한다.



리눅스 7의 Oracle 설치를 위한 기본 설치 패키지



Server with GUI

Hardware Monitoring Utilities

Large Systems Performance

Network file system client

Performance Tools

Compatibility Libraries

Development Tools


# vi /etc/hosts


# yum update -y




자동 셋업


# yum install -y install oracle-database-preinstall-18c




수동 셋업


# vi /etc/sysctl.conf


fs.file-max = 6815744

kernel.sem = 250 32000 100 128

kernel.shmmni = 4096

kernel.shmall = 1073741824

kernel.shmmax = 4398046511104

kernel.panic_on_oops = 1

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

net.ipv4.conf.all.rp_filter = 2

net.ipv4.conf.default.rp_filter = 2

fs.aio-max-nr = 1048576

net.ipv4.ip_local_port_range = 9000 65500



# vi /etc/security/limits.d/oracle-database-preinstall-18c.conf


oracle   soft   nofile    1024

oracle   hard   nofile    65536

oracle   soft   nproc    16384

oracle   hard   nproc    16384

oracle   soft   stack    10240

oracle   hard   stack    32768

oracle   hard   memlock    134217728

oracle   soft   memlock    134217728



패키지 설치 목록


# OL6 and OL7 (RHEL6 and RHEL7)

yum install -y bc    

yum install -y binutils

yum install -y compat-libcap1

yum install -y compat-libstdc++-33

yum install -y compat-libstdc++-33.i686

yum install -y elfutils-libelf.i686

yum install -y elfutils-libelf

yum install -y elfutils-libelf-devel.i686

yum install -y elfutils-libelf-devel

yum install -y fontconfig-devel

yum install -y glibc.i686

yum install -y glibc

yum install -y glibc-devel.i686

yum install -y glibc-devel

yum install -y ksh

yum install -y libaio.i686

yum install -y libaio

yum install -y libaio-devel.i686

yum install -y libaio-devel

yum install -y libX11.i686

yum install -y libX11

yum install -y libXau.i686

yum install -y libXau

yum install -y libXi.i686

yum install -y libXi

yum install -y libXtst.i686

yum install -y libXtst

yum install -y libgcc.i686

yum install -y libgcc

yum install -y librdmacm-devel

yum install -y libstdc++.i686

yum install -y libstdc++

yum install -y libstdc++-devel.i686

yum install -y libstdc++-devel

yum install -y libxcb.i686

yum install -y libxcb

yum install -y make

yum install -y nfs-utils

yum install -y net-tools

yum install -y python

yum install -y python-configshell

yum install -y python-rtslib

yum install -y python-six

yum install -y smartmontools

yum install -y sysstat

yum install -y targetcli

yum install -y unixODBC



그룹 및 유저 추가


# groupadd -g 54321 oinstall

# groupadd -g 54322 dba

# groupadd -g 54323 oper


# useradd -u 54321 -g oinstall -G dba,oper oracle




추가 세팅



SELinux 설정


# vi /etc/selinux/config


SELINUX=permissive


# setenforce Permissive

※ 리눅스 7 버전은 SELinux 설정 후 재구동 필요없음.



방화벽 Off


# systemctl stop firewalld

# systemctl disable firewalld



디렉토리 생성


# mkdir -p /u01/app/oracle/product/18.0.0/dbhome_1

# mkdir -p /u02/oradata

# chown -R oracle:oinstall /u01 /u02

# chmod -R 775 /u01 /u02


* u01 - 엔진

* u02 - 데이터



프로파일 설정


기존의 방식대로 해도 되고, 

아래는 18c 부터 오라클이 제공하는 방식을 설명한다.


$ mkdir /home/oracle/scripts


$ touch /home/oracle/scripts/setEnv.sh


$ cat > /home/oracle/scripts/setEnv.sh <<EOF

# Oracle Settings

export TMP=/tmp

export TMPDIR=\$TMP


export ORACLE_HOSTNAME=ol7-183.localdomain

export ORACLE_UNQNAME=cdb1

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=\$ORACLE_BASE/product/18.0.0/dbhome_1

export ORA_INVENTORY=/u01/app/oraInvenotry

export ORACLE_SID=cdb1

export PDB_NAME=pdb1

export DATA_DIR=/u02/data


export PATH=/usr/sbin:/usr/local/bin:\$PATH

export PATH=\$ORACLE_HOME/bin:\$PATH


export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib

export CLASSPATH=\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib

EOF


$ echo ". /home/oracle/scripts/setEnv.sh" >> /home/oracle/.bash_profile



시작, 종료 스크립트 작성


$ touch /home/oracle/scripts/start_all.sh

$ touch /home/oracle/scripts/stop_all.sh


$ cat > /home/oracle/scripts/start_all.sh <<EOF

#!/bin/bash

. /home/oracle/scripts/setEnv.sh


export ORAENV_ASK=NO

. oraenv

export ORAENV_ASK=YES


dbstart \$ORACLE_HOME

EOF



$ cat > /home/oracle/scripts/stop_all.sh <<EOF

#!/bin/bash

. /home/oracle/scripts/setEnv.sh


export ORAENV_ASK=NO

. oraenv

export ORAENV_ASK=YES


dbshut \$ORACLE_HOME

EOF



$ chown -R oracle.oinstall /home/oracle/scripts

$ chmod u+x /home/oracle/scripts/*.sh


설치 완료후에 /etc/oratab에 넣어주고, 오라클 유저로 시작/종료 할 수 있다.


~/scripts/start_all.sh

~/scripts/stop_all.sh



엔진 설치


Oracle 홈페이지에서 LINUX.X64_180000_db_home.zip 파일을 받을 수 있다.


해당 파일을 반드시 /u01/app/oracle/product/18.0.0/dbhome_1 폴더로 옮겨서 압축을 푼다.


$ cd /u01/app/oracle/product/18.0.0/dbhome_1



X매니저 나 Gnome 환경에서 GUI 방식으로 설치 한다.


$ ./runInstaller




엔진 설치 완료


DBCA는 12c와 동일하다.

Oracle 12c R2 RAC 설치 #2

Grid 설치



oracle user로 접속


$ export SOFTWARE_LOCATION=/media/sf_12.2.0.1/

$ cd /u01/app/12.2.0.1/grid

$ unzip -q $SOFTWARE_LOCATION/linuxx64_12201_grid_home.zip


주의! 


기존처럼 설치 폴더 압축을 풀면 gird 라는 폴더가 생기는 것이 아니라, 해당 압축 폴더를 바로 $GRID_HOME 경로에 압축을 풀어주는 것임. 



root 유저로 rpm 설치


su -

# 1번 노드.

cd /u01/app/12.2.0.1/grid/cv/rpm

rpm -Uvh cvuqdisk*


# 2번 노드.

scp ./cvuqdisk* root@ol6-122-rac2:/tmp

ssh root@ol6-122-rac2 rpm -Uvh /tmp/cvuqdisk*

exit



GUI 에서 실행


$ cd /u01/app/12.2.0.1/grid

$ ./gridSetup.sh




DATABASE 설치


11g 와 동일.

Oracle 12c R2 RAC 설치 #1

설치 환경


Esxi 5.5, 

Oracle Linux 6.9 x86_64

Oracle 12c R2 (12.2.0.1)


리눅스6 설치 옵션


SWAP 4GB+

방화벽 사용중지

SELinux 설정 변경 (permissive or disabled)

해당 패키지 그룹 설치

  • Base System > Base
  • Base System > Hardware monitoring utilities
  • Base System > Large Systems Performance
  • Base System > Network file system client
  • Base System > Performance Tools
  • Base System > Perl Support
  • Servers > Server Platform
  • Servers > System administration tools
  • Desktops > Desktop
  • Desktops > Desktop Platform
  • Desktops > Fonts
  • Desktops > General Purpose Desktop
  • Desktops > Graphical Administration Tools
  • Desktops > Input Methods
  • Desktops > X Window System
  • Applications > Internet Browser
  • Development > Additional Development
  • Development > Development Tools


자동 설정


# yum install oracle-database-server-12cR2-preinstall -y

# yum install ntp -y



직접 설정


# groupadd oinstall

# groupadd dba

# useradd -g oinstall -G dba oracle

# passwd oracle



# vi /etc/sysctl.conf


fs.file-max = 6815744

kernel.sem = 250 32000 100 128

kernel.shmmni = 4096

kernel.shmall = 1073741824

kernel.shmmax = 4398046511104

kernel.panic_on_oops = 1

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

net.ipv4.conf.all.rp_filter = 2

net.ipv4.conf.default.rp_filter = 2

fs.aio-max-nr = 1048576

net.ipv4.ip_local_port_range = 9000 65500


# sysctl -p



# vi /etc/security/limits.d/oracle-database-server-12cR2-preinstall.conf


oracle   soft   nofile    1024

oracle   hard   nofile    65536

oracle   soft   nproc    16384

oracle   hard   nproc    16384

oracle   soft   stack    10240

oracle   hard   stack    32768

oracle   hard   memlock    134217728

oracle   soft   memlock    134217728


# yum -y install ksh,libaio-devel,unixODBC, unixODBC-devel

# yum -y update



# vi /etc/hosts


127.0.0.1       localhost.localdomain   localhost

# Public

192.168.56.201   ol6-122-rac1.localdomain        ol6-122-rac1

192.168.56.202   ol6-122-rac2.localdomain        ol6-122-rac2

# Private

192.168.1.201   ol6-122-rac1-priv.localdomain   ol6-122-rac1-priv

192.168.1.202   ol6-122-rac2-priv.localdomain   ol6-122-rac2-priv

# Virtual

192.168.56.203   ol6-122-rac1-vip.localdomain    ol6-122-rac1-vip

192.168.56.204   ol6-122-rac2-vip.localdomain    ol6-122-rac2-vip

# SCAN

#192.168.56.205   ol6-122-scan.localdomain ol6-122-scan

#192.168.56.206   ol6-122-scan.localdomain ol6-122-scan

#192.168.56.207   ol6-122-scan.localdomain ol6-122-scan



박화벽 중지


# service iptables stop

# chkconfig iptables off



NTP 설정


# vi /etc/sysconfig/ntpd

OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"


# service ntpd restart

# chkconfig ntpd on



Grid 설치 폴더 생성


# mkdir -p /u01/app/12.2.0.1/grid

# mkdir -p /u01/app/oracle/product/12.2.0.1/db_1

# chown -R oracle:oinstall /u01

# chmod -R 775 /u01/



Oracle user 접속 후 프로파일 설정


$ vi .bash_profile


# Oracle Settings

export TMP=/tmp

export TMPDIR=$TMP


export ORACLE_HOSTNAME=ol6-122-rac1.localdomain

export ORACLE_UNQNAME=CDBRAC

export ORACLE_BASE=/u01/app/oracle

export GRID_HOME=/u01/app/12.2.0.1/grid

export DB_HOME=$ORACLE_BASE/product/12.2.0.1/db_1

export ORACLE_HOME=$DB_HOME

export ORACLE_SID=cdbrac1

export ORACLE_TERM=xterm

export BASE_PATH=/usr/sbin:$PATH

export PATH=$ORACLE_HOME/bin:$BASE_PATH


export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib


alias grid_env='. /home/oracle/grid_env'

alias db_env='. /home/oracle/db_env'


$ vi grid_env

export ORACLE_SID=+ASM1

export ORACLE_HOME=$GRID_HOME

export PATH=$ORACLE_HOME/bin:$BASE_PATH


export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib


$ vi db_env

export ORACLE_SID=cdbrac1

export ORACLE_HOME=$DB_HOME

export PATH=$ORACLE_HOME/bin:$BASE_PATH


export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib



공유 스토리지 Block device 설정


# fdisk /dev/sdb

 n, p, 1, Enter, Enter, w 



Udev 설정


# vi /etc/scsi_id.config

options=-g


# /sbin/scsi_id -g -u -d /dev/sdb1

36000c299ab492a9c2ff010df22555c9f


# vi /etc/udev/rules.d/99-oracle-asmdevices.rules

KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent", RESULT=="36000c299ab492a9c2ff010df22555c9f", SYMLINK+="oracleasm/asm-disk1", OWNER="oracle", GROUP="dba", MODE="0660"



Block Device 파티션 테이블 불러오기


# partprobe /dev/sdb1



Udev Rule 다시 불러오기


# udevadm control --reload-rules


# ls -al /dev/oracleasm/*

lrwxrwxrwx. 1 root root 7 Mar  8 21:11 /dev/oracleasm/asm-disk1 -> ../sdb1




2번 노드도 똑같이 설정.

ORACLE 12c Standard Edition 2

오라클 스탠다드 에디션 One은 2016년 12월을 끝으로 공식적으로 단종 되었습니다.


12c  12.1.0.2 이상에서 SE2를 지원하며, 그에 따른 차이점이 있는데, 잘 정리되어 있는곳도 없고, 영문 사이트들이 많아서 

간략하게 정리 해봅니다.


1. 서버당 CPU 2 Socket, 8 Threads 지원 (RAC 구성시 4 Socket, 16 Threads 까지 지원)

  - CPU의 Multi Threads를 사용 할 수 있다는 것이지 Oracle Parallelism을 사용 가능 하는것이 아님. 즉, Parallel Query, parallel datapump export/import, parallel index builds/scans 사용불가. 쉽게 말하면, CPU가 많이 필요할때 여러 CPU를 가져다 쓰긴 해도 DB에서 자체적으로 병렬 처리를 시킬수는 없다는 이야기. 

  - Background Process는 16 Threads 안에 포함 되지 않음.

  

2. 12c 의 새로운 기능인 Multitenant 기능 (CDB, PDB) 사용불가.

  - SE2의 Single DB를 EE CBD에 안으로 이관 시키는 것은 가능.


3. 기존 SE와 EE의 차이점은 그대로.

  - 오라클 튜닝팩 사용 불가 (AWR, ADDM, ASH 등)

  - Flashback Transaction 사용불가

  - Table Partitioning 사용불가

  - Parallel Datapump 사용불가


4. 최소 라이센스는 10 Named User Per Server.

  - 5인 이하의 업무 환경이라도 10유저를 구매 해야함.


5. 중소규모의 사업체에 추천하는 모델.

  - SE2 버전 역시 SE와 같은 선상에서 생각해야하는 모델이며, CPU사용에서 Multi Threads 기능만 추가 되었을뿐. 

11g 설치시 agent nmhs ins_emagent.mk 에러

vi $ORACLE_HOME/sysman/lib/ins_emagent.mk
Search for the line
$(MK_EMAGENT_NMECTL)
Change it to:
$(MK_EMAGENT_NMECTL) -lnnz11

Oracle 11g 11.2.0.4 RAC ASM 설치 (Last Ver.) - 3. DB 구축

ASMCA 로 ASM 디스크 그룹 구성




DB 설치전에 db_env 로딩


$ db_env

$ cd ../database

$ ./runInstaller



[root@rac2 ~]# /app/oracle/product/11.2.0.4/db_1/root.sh
Performing root user operation for Oracle 11g

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /app/oracle/product/11.2.0.4/db_1

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The contents of "dbhome" have not changed. No need to overwrite.
The contents of "oraenv" have not changed. No need to overwrite.
The contents of "coraenv" have not changed. No need to overwrite.

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Finished product-specific root actions.


엔진 설치 완료.



DBCA로 db 구성


RAC 노드 2개 모두 선택


EM을 설치


Datafile DATA 그룹에


FRA 는 RECO 영역에 넣음.


acfs 모듈을 불러오지 않은 상태기 때문에 아카이브는 패치 후에 지정.


필요 없는 옵션은 해제


필요한 프로세스 값과 캐릭터셋을 선택


DB 구성 완료.

Oracle 11g 11.2.0.4 RAC ASM 설치 (Last Ver.) - 2. Grid 설치

설치에 필요한 파일은 총 5개


Database 설치파일

p13390677_112040_Linux-x86-64_1of7.zip

p13390677_112040_Linux-x86-64_2of7.zip


Grid 설치 파일

p13390677_112040_Linux-x86-64_3of7.zip


OPatch 최신파일

p6880880_112000_Linux-x86-64.zip


DBPSU+GRID Patchset

p23615403_112040_Linux-x86-64


※ 11g 부터는 archive log dest를 공유 스토리지에 저장을 해야하는데, AIX나 HP 같은 UNIX자체적인 공유 파일 시스템을 갖추고 있다. 그래서 gpfs나 hacmp를 통해 공유 파일시스템에 파일 형식으로 archive를 저장 하는데 반해, 리눅스는 그것이 되질 않는다.

예전에 오라클에서 제공한 방식인 ocfs2는 장시간 사용 문제가 발생한다.

그래서 ASM 스토리지에 직접 Archive를 저장하거나 아니면 ASM에서 acfs 모듈을 띄워서 공유 파일시스템을 만든후 저장한다.

Oracle Linux 최신 커널에서 11.2.0.4 기본 설치파일에 내장되어 있는 acfs 모듈이 버전이 낮아 로딩이 되지 않는 관계로 acfs를 사용하려면 최신 패치까지 다 씌워야 한다.



GUI 환경에서 작업한다. (콘솔 or X Manager)


1번에 설치 파일을 올리고 오라클 계정으로 접속.


# su - oracle


콘솔 로그인시 프로파일을 못불러오는 경우가 있으니 강제로 로딩


$ cd ~

$ . .bash_profile

$ grid_env


Grid를 설치하기 위해 grid_env를 로딩


설치 파일이 있는 곳으로 가서

$ ./runInstaller


아래 순서대로 진행 하면 된다.


Add 버튼을 눌러 rac2를 추가해주고, SSH COnnectivity 버튼을 눌러 두 노드간의 SSH 통신을 구축한다.


비번만 넣고 setup


이렇게 에러 메세지가 나오지만 그냥 무시하고 설치 하면 된다.

아무런 영향 없다. (오라클 공식 메뉴얼에도 이렇게 나옴)



rac1 /app/oraInventory/orainstRoot.sh

rac2 /app/oraInventory/orainstRoot.sh

rac1 /app/grid/11.2.0.4/grid.root.sh

rac2 /app/grid/11.2.0.4/grid.root.sh


위 순서대로 반드시 Root 계정에서 실행 해준다.


[root@rac1 ~]# /app/oraInventory/orainstRoot.sh
Changing permissions of /app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.

Changing groupname of /app/oraInventory to oinstall.
The execution of the script is complete.
[root@rac1 ~]# /app/grid/11.2.0.4/grid/root.sh
Performing root user operation for Oracle 11g

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /app/grid/11.2.0.4/grid

Enter the full pathname of the local bin directory: [/usr/local/bin]:
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...


Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Using configuration parameter file: /app/grid/11.2.0.4/grid/crs/install/crsconfig_params
Creating trace directory
User ignored Prerequisites during installation
Installing Trace File Analyzer
OLR initialization - successful
  root wallet
  root wallet cert
  root cert export
  peer wallet
  profile reader wallet
  pa wallet
  peer wallet keys
  pa wallet keys
  peer cert request
  pa cert request
  peer cert
  pa cert
  peer root cert TP
  profile reader root cert TP
  pa root cert TP
  peer pa cert TP
  pa peer cert TP
  profile reader pa cert TP
  profile reader peer cert TP
  peer user cert
  pa user cert
Adding Clusterware entries to upstart
CRS-2672: Attempting to start 'ora.mdnsd' on 'rac1'
CRS-2676: Start of 'ora.mdnsd' on 'rac1' succeeded
CRS-2672: Attempting to start 'ora.gpnpd' on 'rac1'
CRS-2676: Start of 'ora.gpnpd' on 'rac1' succeeded
CRS-2672: Attempting to start 'ora.cssdmonitor' on 'rac1'
CRS-2672: Attempting to start 'ora.gipcd' on 'rac1'
CRS-2676: Start of 'ora.cssdmonitor' on 'rac1' succeeded
CRS-2676: Start of 'ora.gipcd' on 'rac1' succeeded
CRS-2672: Attempting to start 'ora.cssd' on 'rac1'
CRS-2672: Attempting to start 'ora.diskmon' on 'rac1'
CRS-2676: Start of 'ora.diskmon' on 'rac1' succeeded
CRS-2676: Start of 'ora.cssd' on 'rac1' succeeded

ASM created and started successfully.

Disk Group OCRVOTE created successfully.

clscfg: -install mode specified
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
CRS-4256: Updating the profile
Successful addition of voting disk 278b92ca45434f2ebfe4ba8720932ef9.
Successfully replaced voting disk group with +OCRVOTE.
CRS-4256: Updating the profile
CRS-4266: Voting file(s) successfully replaced
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   278b92ca45434f2ebfe4ba8720932ef9 (/dev/asm-ocrvote01) [OCRVOTE]
Located 1 voting disk(s).
CRS-2672: Attempting to start 'ora.asm' on 'rac1'
CRS-2676: Start of 'ora.asm' on 'rac1' succeeded
CRS-2672: Attempting to start 'ora.OCRVOTE.dg' on 'rac1'
CRS-2676: Start of 'ora.OCRVOTE.dg' on 'rac1' succeeded
Configure Oracle Grid Infrastructure for a Cluster ... succeeded


[root@rac2 ~]# /app/oraInventory/orainstRoot.sh
Changing permissions of /app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.

Changing groupname of /app/oraInventory to oinstall.
The execution of the script is complete.
[root@rac2 ~]# /app/grid/11.2.0.4/grid/root.sh
Performing root user operation for Oracle 11g

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /app/grid/11.2.0.4/grid

Enter the full pathname of the local bin directory: [/usr/local/bin]:
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...


Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Using configuration parameter file: /app/grid/11.2.0.4/grid/crs/install/crsconfig_params
Creating trace directory
User ignored Prerequisites during installation
Installing Trace File Analyzer
OLR initialization - successful
Adding Clusterware entries to upstart
CRS-4402: The CSS daemon was started in exclusive mode but found an active CSS daemon on node rac1, number 1, and is terminating
An active cluster was found during exclusive startup, restarting to join the cluster
Configure Oracle Grid Infrastructure for a Cluster ... succeeded


Grid 설치 완료.


맨 마지막에 100% 되고 무슨무슨 verify 에러 뜨는데 그냥 무시하고 next 누르면 된다.



사족 - 설치시 그냥 ASM 그룹 하나만 만들어서 거기에 OCRVOTE, DATA, FRA, Archive 다 넣어도 되긴한다.

그래도 구분해두는 것이 나중에 교체작업이나 ASM 관리하는데 있어서 좀 더 편하다고 생각한다.



  1. 안녕하세요
    문서보다가질문이있어서요
    voting disk 갯수는 2N+1 아닌가요?
    왜한개만 하신건지..

Oracle 11g 11.2.0.4 RAC ASM 설치 (Last Ver.) - 1. 서버 세팅

오라클 리눅스 6 버전 64bit 기준 (영문)

 - 영문으로 설치하는 이유: 리눅스의 한글 시스템은 UTF-8 이기 때문에 EUC-KR로 DB를 세팅할 경우 로그에 나오는 한글이 전부 깨짐는 현상 발생. UTF-8로 세팅할 경우 한글로 설치 해도 무방.


★ 주의 - 오라클 11g 11.2.0.4 RAC 설치시 서버의 HOSTNAME이 대문자 일경우 인스톨러에서 SSH 통신이 되지 않아서 설치가 불가능하다. 


설치 환경 VMWare 12

네트워크는 Bridged 와 Host Only

HDD 120GB (/, swap, /app)



리눅스 설치시 설치 패키지


    Base System > Base
    Base System > Client management tools
    Base System > Compatibility libraries
    Base System > Hardware monitoring utilities
    Base System > Large Systems Performance
    Base System > Network file system client
    Base System > Performance Tools
    Base System > Perl Support
    Servers > Server Platform
    Servers > System administration tools
    Desktops > Desktop
    Desktops > Desktop Platform
    Desktops > Fonts
    Desktops > General Purpose Desktop
    Desktops > Graphical Administration Tools
    Desktops > Input Methods
    Desktops > X Window System
    Applications > Internet Browser
    Development > Additional Development
    Development > Development Tools


리눅스 설치 후 설정


필수 패키지 설치

# yum -y install libaio-devel ksh libstdc++ elfutils-libelf elfutils-libelf-devel libtool-ltdl ncurses readline unixODBC


OS 업데이트

# yum -y update


6.7 버전은 3.8 커널 탑재  업데이트시  커널이 올라가는데 4.1 버전까지 올라간다.

6.8 버전은 처음부터 4.1 버전이 탑재 되어 있다.

ACFS 모듈은 3.8 버전까지만 지원한다.


# vi /etc/sysctl.conf

fs.aio-max-nr = 1048576
fs.file-max = 6815744
#kernel.shmall = 2097152 
#kernel.shmmax = 1054504960
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
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

# sysctl -p


# vi /etc/security/limits.conf

oracle              soft    nproc   2047
oracle              hard    nproc   16384
oracle              soft    nofile  4096
oracle              hard    nofile  65536
oracle              soft    stack   10240

# vi /etc/pam.d/login

session    required     pam_limits.so

# rpm -Uvh cvuqdisk*

 (Grid 설치 디렉토리의 압축을 풀면 RPM 폴더에 있음)


그룹 및 유저 추가

groupadd -g 1000 oinstall
groupadd -g 1200 dba
useradd -u 1100 -g oinstall -G dba oracle
passwd oracle

※ Oracle이 제공하는 11.2.0.3이상 버전의 설치 메뉴얼에 따르면 따로 Grid 계정을 생성하지 않는것으로 변경했다.


# passwd oracle


# vi /etc/hosts

127.0.0.1       localhost.localdomain   localhost
# Public
192.168.0.111   ol6-112-rac1.localdomain        ol6-112-rac1
192.168.0.112   ol6-112-rac2.localdomain        ol6-112-rac2
# Private
192.168.1.111   ol6-112-rac1-priv.localdomain   ol6-112-rac1-priv
192.168.1.112   ol6-112-rac2-priv.localdomain   ol6-112-rac2-priv
# Virtual
192.168.0.113   ol6-112-rac1-vip.localdomain    ol6-112-rac1-vip
192.168.0.114   ol6-112-rac2-vip.localdomain    ol6-112-rac2-vip
# SCAN
192.168.0.115   ol6-112-scan.localdomain ol6-112-scan
192.168.0.116   ol6-112-scan.localdomain ol6-112-scan
192.168.0.117   ol6-112-scan.localdomain ol6-112-scan

※ IP 대역은 각자의 설정에 맞게 넣는다.

※ 11g는 SCAN IP를 통해 로드밸런싱 및 접속를 할 수 있다. SCAN 1개이상 설정 할 수 있다.


# vi /etc/security/limits.d/90-nproc.conf

# 이렇게 되어 있는 부분을 * soft nproc 1024 # 이렇게 고친다. * - nproc 16384

※ 왜 고치는지는 MOS Note [ID 1487773.1] 참조


# vi /etc/selinux/config

SELINUX=permissive


리눅스 방화벽 중지

# service iptables stop
# chkconfig iptables off


# vi /etc/sysconfig/ntpd

OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"


ORACLE 설치 폴더 생성

mkdir -p /app/grid/11.2.0.4/grid mkdir -p /app/oracle/product/11.2.0.4/db_1 chown -R oracle:oinstall /app chmod -R 775 /app/

※ 고객사가 원하는 폴더 혹은 자신이 원하는 (관리하기 쉬운) 폴더로 생성.



ORACLE 계정 Profile 수정


# su - oracle

$ vi .bash_profile

# Oracle Settings TMP=/tmp; export TMP TMPDIR=$TMP; export TMPDIR ORACLE_HOSTNAME=ol6-112-rac1.localdomain; export ORACLE_HOSTNAME ORACLE_UNQNAME=RAC; export ORACLE_UNQNAME ORACLE_BASE=/app/oracle; export ORACLE_BASE GRID_HOME=/app/grid/11.2.0.4/grid; export GRID_HOME DB_HOME=$ORACLE_BASE/product/11.2.0.4/db_1; export DB_HOME ORACLE_HOME=$DB_HOME; export ORACLE_HOME ORACLE_SID=RAC1; export ORACLE_SID ORACLE_TERM=xterm; export ORACLE_TERM BASE_PATH=/usr/sbin:$PATH; export BASE_PATH PATH=$ORACLE_HOME/bin:$BASE_PATH; export PATH LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH alias grid_env='. /home/oracle/grid_env' alias db_env='. /home/oracle/db_env'

$ vi grid_env

ORACLE_SID=+ASM1; export ORACLE_SID
ORACLE_HOME=$GRID_HOME; export ORACLE_HOME
PATH=$ORACLE_HOME/bin:$BASE_PATH; export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

$ vi db_env

ORACLE_SID=RAC1; export ORACLE_SID
ORACLE_HOME=$DB_HOME; export ORACLE_HOME
PATH=$ORACLE_HOME/bin:$BASE_PATH; export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

※ Grid 계정을 따로 생성해주지 않고 oracle 계정으로 DB와 ASM 모두 관리한다.

 - Alias를 통해 grid_env, db_env 명령을 통해 DB와 ASM 인스턴스 간의 선택을 할 수 있다..


서버 재구동하여 모든 설정 적용

# shutdown -r now


VMware에 HDD Disk를 공유 볼륨에 생성. (생성 방법은 http://db.necoaki.net/49 포스팅 참조)



ASM Disk 그룹은 크게 4가지로 나뉜다.


OCR과 VOTING DISK 정보가 들어있는 OCRVOTE

DATA가 들어가는 DATA

복구 영역이 들어가는 RECO (FRA)

Archive log가 저장되는 ARCH


여기에 들어갈 Disk를 자신이 선택하여 직접 생성해주면 된다.

OCRVOTE - 3GB

DATA - 50GB (10GB 5개)

RECO - 10GB

ARCH - 5GB


어차피 현업에서는 공유 볼륨을 잡아주는 일은 스토리지 엔지니어와, OS 엔지니어가 알아서 원하는대로 해준다.

리눅스를 잘한다면 대용량 디스크 하나만 붙여서 lv 하면 된다.


[root@rac1 ~]# ls -l /dev/sd*

brw-rw----. 1 root disk 8,  0 Aug  4 21:47 /dev/sda
brw-rw----. 1 root disk 8,  1 Aug  4 21:48 /dev/sda1
brw-rw----. 1 root disk 8,  2 Aug  4 21:47 /dev/sda2
brw-rw----. 1 root disk 8,  3 Aug  4 21:48 /dev/sda3
brw-rw----. 1 root disk 8, 16 Aug  4 21:47 /dev/sdb
brw-rw----. 1 root disk 8, 32 Aug  4 21:47 /dev/sdc
brw-rw----. 1 root disk 8, 48 Aug  4 21:47 /dev/sdd
brw-rw----. 1 root disk 8, 64 Aug  4 21:47 /dev/sde
brw-rw----. 1 root disk 8, 80 Aug  4 21:47 /dev/sdf
brw-rw----. 1 root disk 8, 96 Aug  4 21:47 /dev/sdg


각각의 디스크를 Fdisk 한다.


[root@rac1 ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xec049fb2.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-391, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-391, default 391):
Using default value 391

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.


fdisk를 다하면 아래와 같이 된다.


[root@rac1 ~]# ls -l /dev/sd*
brw-rw----. 1 root disk 8,  0 Aug  4 21:47 /dev/sda
brw-rw----. 1 root disk 8,  1 Aug  4 21:48 /dev/sda1
brw-rw----. 1 root disk 8,  2 Aug  4 21:47 /dev/sda2
brw-rw----. 1 root disk 8,  3 Aug  4 21:48 /dev/sda3
brw-rw----. 1 root disk 8, 16 Aug  4 21:54 /dev/sdb
brw-rw----. 1 root disk 8, 17 Aug  4 21:54 /dev/sdb1
brw-rw----. 1 root disk 8, 32 Aug  4 21:54 /dev/sdc
brw-rw----. 1 root disk 8, 33 Aug  4 21:54 /dev/sdc1
brw-rw----. 1 root disk 8, 48 Aug  4 21:54 /dev/sdd
brw-rw----. 1 root disk 8, 49 Aug  4 21:54 /dev/sdd1
brw-rw----. 1 root disk 8, 64 Aug  4 21:54 /dev/sde
brw-rw----. 1 root disk 8, 65 Aug  4 21:54 /dev/sde1
brw-rw----. 1 root disk 8, 80 Aug  4 21:54 /dev/sdf
brw-rw----. 1 root disk 8, 81 Aug  4 21:54 /dev/sdf1
brw-rw----. 1 root disk 8, 96 Aug  4 21:56 /dev/sdg
brw-rw----. 1 root disk 8, 97 Aug  4 21:56 /dev/sdg1


기존에는 oracleasm 이라는 패키지를 통해 모듈을 띄워서 ASM 디스크를 적용했었는데 그 과정이 사라졌다.

Udev를 통해 그냥 Direct로 붙인다.


# vi /etc/scsi_id.config (없으니까 만든다.)

options=-g

#[root@rac1 ~]# /sbin/scsi_id -g -u -d /dev/sdb
36000c292d9f969dda718b42875402ba4
[root@rac1 ~]# /sbin/scsi_id -g -u -d /dev/sdc
36000c2966133c5d6de9c4f15e2c2b977
[root@rac1 ~]# /sbin/scsi_id -g -u -d /dev/sdd
36000c29446c31cffc46c1a9073719639
[root@rac1 ~]# /sbin/scsi_id -g -u -d /dev/sde
36000c29597c280fe33b8f0e9831ccfef
[root@rac1 ~]# /sbin/scsi_id -g -u -d /dev/sdf
36000c295fdea390d70fbf564d399a614
[root@rac1 ~]# /sbin/scsi_id -g -u -d /dev/sdg
36000c29571ed9c2b0aa031c228cb4098


# vi /etc/udev/rules.d/99-oracle-asmdevices.rules


KERNEL=="sdb1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent", RESULT=="36000c292d9f969dda718b42875402ba4",NAME="asm-ocrvote01", OWNER="oracle", GROUP="dba", MODE="0660"
KERNEL=="sdc1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent", RESULT=="36000c2966133c5d6de9c4f15e2c2b977",NAME="asm-data01", OWNER="oracle", GROUP="dba", MODE="0660"
KERNEL=="sdd1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent", RESULT=="36000c29446c31cffc46c1a9073719639",NAME="asm-data02", OWNER="oracle", GROUP="dba", MODE="0660"
KERNEL=="sde1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent", RESULT=="36000c29597c280fe33b8f0e9831ccfef",NAME="asm-data03", OWNER="oracle", GROUP="dba", MODE="0660"
KERNEL=="sdf1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent", RESULT=="36000c295fdea390d70fbf564d399a614",NAME="asm-reco01", OWNER="oracle", GROUP="dba", MODE="0660"
KERNEL=="sdg1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent", RESULT=="36000c29571ed9c2b0aa031c228cb4098",NAME="asm-arch01", OWNER="oracle", GROUP="dba", MODE="0660"


블락 디바이스 파티션 테이블로 로딩 한다.

# /sbin/partprobe /dev/sdb1
# /sbin/partprobe /dev/sdc1
# /sbin/partprobe /dev/sdd1
# /sbin/partprobe /dev/sde1

UDEV 룰을 다시 불러 온다.

# /sbin/udevadm control --reload-rules
# /sbin/start_udev

[root@rac1 ~]# ls -l /dev/asm*
brw-rw----. 1 oracle dba 8, 97 Aug  4 22:53 /dev/asm-arch01
brw-rw----. 1 oracle dba 8, 33 Aug  4 22:53 /dev/asm-data01
brw-rw----. 1 oracle dba 8, 49 Aug  4 22:53 /dev/asm-data02
brw-rw----. 1 oracle dba 8, 65 Aug  4 22:53 /dev/asm-data03
brw-rw----. 1 oracle dba 8, 65 Aug  4 22:51 /dev/asm-disk1
brw-rw----. 1 oracle dba 8, 17 Aug  4 22:53 /dev/asm-ocrvote01
brw-rw----. 1 oracle dba 8, 81 Aug  4 22:53 /dev/asm-reco01


# shutdown -h now


서버를 끄고 2번으로 복사. (복사 방법은 http://db.necoaki.net/49 포스팅 참조)


호스트 네임 수정

# vi /etc/sysconfig/network


NETWORKING=yes
HOSTNAME=rac2
GATEWAY=192.168.219.1
NTPSERVERARGS=iburst


2번으로 복사하면 네트워크가 다른 이름으로 잡힌다.

eth0, eth1 로 바꿔준다.


[root@rac1 ~]# cd /etc/sysconfig/network-scripts/

[root@rac1 network-scripts]# mv ifcfg-Auto_eth2 ifcfg-eth0
[root@rac1 network-scripts]# mv ifcfg-Auto_eth3 ifcfg-eth1


ip 변경

# vi ifcfg-eth0

IPADDR=192.168.xxx.xxx


# vi ifcfg-eth1

IPADDR=192.168.xxx.xxx



[root@rac1 network-scripts]# vi /etc/udev/rules.d/70-persistent-net.rules


# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:55:a4:0f", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:55:a4:05", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"


# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:eb:bc:2e", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"

# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:eb:bc:38", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"



이렇게 4개가 나오는데, 위에 두개를 지우고 아래 두개는 수정해준다.


# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:eb:bc:2e", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:eb:bc:38", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"



2번에서도 디스크 마운트가 되어 있는지 확인

[root@rac1 network-scripts]# ls-lh /dev/asm*
brw-rw----. 1 oracle dba 8, 97 Aug  4 22:59 /dev/asm-arch01
brw-rw----. 1 oracle dba 8, 33 Aug  4 22:59 /dev/asm-data01
brw-rw----. 1 oracle dba 8, 49 Aug  4 22:59 /dev/asm-data02
brw-rw----. 1 oracle dba 8, 65 Aug  4 22:59 /dev/asm-data03
brw-rw----. 1 oracle dba 8, 17 Aug  4 22:59 /dev/asm-ocrvote01
brw-rw----. 1 oracle dba 8, 81 Aug  4 22:59 /dev/asm-reco01


# su - oracle

$ vi .bash_profile


# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR

ORACLE_HOSTNAME=rac2; export ORACLE_HOSTNAME
ORACLE_UNQNAME=rac; export ORACLE_UNQNAME
ORACLE_BASE=/app/oracle; export ORACLE_BASE
GRID_HOME=/app/grid/11.2.0.4/grid; export GRID_HOME
DB_HOME=$ORACLE_BASE/product/11.2.0.4/db_1; export DB_HOME
ORACLE_HOME=$DB_HOME; export ORACLE_HOME
ORACLE_SID=rac2; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
BASE_PATH=/usr/sbin:$PATH; export BASE_PATH
PATH=$ORACLE_HOME/bin:$BASE_PATH; export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

alias grid_env='. /home/oracle/grid_env'
alias db_env='. /home/oracle/db_env'
alias ll='ls -lh'


rac2 로 모두 수정


$ vi grid_env


ORACLE_SID=+ASM2; export ORACLE_SID
ORACLE_HOME=$GRID_HOME; export ORACLE_HOME
PATH=$ORACLE_HOME/bin:$BASE_PATH; export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH


$ vi db_env


ORACLE_SID=rac2; export ORACLE_SID
ORACLE_HOME=$DB_HOME; export ORACLE_HOME
PATH=$ORACLE_HOME/bin:$BASE_PATH; export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH



준비가 완료 됐으니 2번을 재부팅하고 1번을 같이 켜준다.


# shutdown -r now

  1. vmware에서 asm 디스크 추가시 /sbin/scsi_id -g -u -d /dev/sdb 실행하면 코드가 안나왔는데
    http://allthatlinux.com/dokuwiki/doku.php?id=vmware_%EC%97%90%EC%84%9C_scsi_id_%EA%B0%92%EC%9D%B4_%EB%82%98%EC%98%A4%EC%A7%80_%EC%95%8A%EB%8A%94%EA%B2%BD%EC%9A%B0_%ED%95%B4%EA%B2%B0%EB%B0%A9%EB%B2%95

    여기서 해결했네요 ^^

Oracle 12c Intro

Oracle 12c Intro.


2016년 1분기 12c R2버전 출시를 앞두고 있고, R2 출시와 더불어 12c가 안정화에 들어서면 좀 더 많은 업체가 12c를 선택 할 것이다. 따라서 오라클을 공부하는 사람이라면 누구나 12c에 대해 공부 할 필요성을 느끼게 될 것이고, 11g보다 더 다양한 기능을 제공하고 있기 때문에, 10g 에서 11g로 넘어가는 것보다 많은 공부를 필요로 할 수 있다.


Oracle 12c의 설치 최소 가변 사양은 플랫폼에 따라 가변적인데 많은 플랫폼에서 32bit를 지원해주지 않는다.


예>

리눅스 x86_64 에서의 설치 요구사항


 1) 스토리지

   Oracle 12c Enterprise Edition : 6.4 GB

   Oracle 12c Standard Edition : 6.1 GB

 2) 메모리

   최소 1 GB.

   시스템 메모리가 1GB ~ 2GB 사이라면, Swap을 1.5 할당해야 한다.

   시스템 메모리가 2GB 이상이라면, Swap 공간을 최대 16GB까지 메모리와 동일하게 구성한다.

   ※ 최소 요구사항은 최소일뿐이다. 실제 Oracle DB 서버를 운영하는데 있어서 8GB 이하의 메모리로는 턱없이 부족하다.

 3) Tmp

   1GB 이상.

   물리적으로 Tmp가 확보 되어 있지 않다면, TMP,TMPDIR 환경변수를 통해 따로 지정해주거나, 물리적으로 Tmp를 늘려준다.

 4) 운영시스템 요구사항

   Red Hat Linux 5.6 : 2.6.18-238.0.0.0.1.el5 이상

   Red Hat Linux 5.6 : UEK 2.6.32-100.0.19 이상


 ※ 참고로 Oracle 12c는 Raw Device를 지원하지 않기 때문에, ASM이나 파일시스템으로 마이그레이션 해야한다.


 10g도 잘 쓰고 있는데 왜 업그레이드를 해야 하느냐? 묻는 업체들이 많다.  하지만 오라클은 일반적으로 출시 후 8년이 지나면 더 이상 지원을 받을 수 없다. 10g는 이미 2010년 7월 19일을 끝으로 모든 지원이 끝났다. 더 이상 장애가 나거나 새로운 버그 발견, 보안에 문제가 발생을 해도 지원을 받을 수 없다는 얘기다. 11g의 프리미어 서포트는 2015년 1월 끝이났다. 11g의 공식 지원도 2021년이면 모두 종료 된다.


 게다가 10g의 경우 OCP 자격증명이 2016년 3월1일부로 종료 되었다. 3월1일 이전에 Upgrade 안한 사람은 자격 증명이 취소 된 것이고, 11g를 공부해서 다시 취득해야 한다.


 또, Oracle Database의 업그레이드를 미루면 미룰수록 지원 비용이 올라가게 되어 있다.

 www.oracle.com/us/support/lifetime-support/index.html 에서 오라클 지원 정책을 확인 할 수 있다.


 ※ note742060.1 을 보면 현재 데이터베이스 릴리스 일정과 플랫폼별 패치 및 지원 종료 일자등의 자세한 정보를 얻을 수 있다.



Linux 5.11 64bit Oracle 10gR2 RAC 설치

업체들이 리눅스를 많이 사용하게 되면서 문제가 발생하고 있는데, 그중에 가장 큰 문제는 호환성이다.

서버 이전이나, 서버 업그레이드를 진행하면서 OS 버전을 올리는 업체가 많은데...

리눅스는 지원 버전을 많이 가린다.


OS는 업그레이드를 하는데, 오라클은 라이센스 구매라던가 개발툴, 혹은 연동 어플리케이션의 문제로,

기존 버전을 사용하고 싶어하는 업체가 많은데...

그런 업체 관계자분들한테 해주고 싶은 말은... 버전업 하고 개발 다시 하세요. 라고 해주고 싶다.

돈 좀 쓰라고...


오라클도 10g 지원 끊긴지가 언젠데... 9i 설치해달라고 하는 업체도 많고..

현실이 어려운건 알지만...

기업 상층부에서 얼마나 전산 분야에 투자를 안하는지도 알고 있지만... 이런 현실은 정말 노답...



작업 환경


CentOS 5.11 64bit (RHEL 대용)

Oracle 10gR2 64bit (10.2.0.1 -> 10.2.0.5 패치)


Oracle 10gR2는 Linux ES6 버전에서 공식적으로 지원되지 않는다. 문제 생겨도 오라클 측에서 전혀 지원해주지 않는다.

게다가 Oracle 10gR2는 64bit임에도, 32bit 라이브러리를 가져다 쓰는데, Linux 6버전 부터는 32bit 라이브러리를 수동으로 설치해야만 한다.

5.x 버전대 까지는 Yum으로 업데이트 할 경우 자동으로 32bit 패키지를 자동으로 설치해주는데, 6버전에서는 32bit는 지원하지 않는다.


리눅스 설치


GUI 설치


설치시 커스텀 패키지 옵션

개발              - 개발용 도구
                    - 개발용 라이브러리
기반시스템     - Java
                    - X윈도우 시스템
                    - 관리도구
                    - 기본
                    - 레거시 소프트웨어지원
                    - 시스템 도구  <- 옵션안에 sysstat 설치
데스크톱 환경 - GNOME
응용 프로그램 - 텍스트-기반인터넷
                    - 편집기


selinux 해제

ntpd 사용 체크 (인터넷에 연결이 안된 서버라면 체크 해줄 필요는 없지만, 두 노드간에 시간 동기화는 꼭 해주자)


그리고 재부팅 할때 오래 걸리니까 안쓰는 데몬들은 꺼버리자.


# chkconfig --level 123456 xinetd off
# chkconfig --level 123456 sendmail off
# chkconfig --level 123456 cups off
# chkconfig --level 123456 cups-config-daemon off
# chkconfig --level 123456 smartd off
# chkconfig --level 123456 iptables off

# chkconfig --level 123456 bluetooth off


설치해야하는 RPM 패키지 (64bit)


binutils
compat-libstdc++-33
elfutils-libelf
elfutils-libelf-devel
elfutils-libelf-devel-static
gcc
gcc-c++
glibc (32bit 추가설치 필수)
glibc-common
glibc-devel (32bit 추가설치 필수)
ksh
libaio (32bit 추가설치 필수)
libaio-devel
libgcc
libgomp
libstdc++
libstdc++-devel
libXp
libXp-devel
libXau
libxcb
libX11
libXext
libICE
libuuid
libSM
libXt
libXi
libXtst
make
sysstat
glibc-headers
unixODBC
unixODBC-devel


yum 되는 환경이라면 그냥 yum로 설치하면 되고, 안된다면 rpm 명령을 통해 수동으로 설치 해준다.

RPM으로 수동 설치 할 경우... 위 리스트에 없는 의존성이 걸리는 패키지는 반드시 찾아 설치 해준다.


ASM을 사용 할 경우 관련 패키지들을 설치해주고, (oracleasm, asmlib 등)

OCFS를 사용 할 경우 ocfs2 관련 패키지를 추가해준다.


라이브러리 링크 생성


ln -s /usr/lib/libgdbm.so.2.0.0 /usr/lib/libdb.so.2


Hosts 파일 설정


# vi /etc/hosts


#Public
192.168.118.128 rac1
192.168.118.129 rac2

192.168.118.130 rac3

#VIP
192.168.118.131 rac1-vip
192.168.118.132 rac2-vip

192.168.118.133 rac3-vip
#Priv
192.168.184.128 rac1-priv
192.168.184.129 rac2-priv

192.168.184.130 rac3-priv


커널 파라미터 설정


# vi /etc/sysctl.conf


kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144

(최근 서버들이 하드웨어 사양이 좋아졌기 때문에 kernel.shmall, kernel.shmmax 는 오라클 권장값을 사용하지않고 OS기본값을 사용)


# vi /etc/security/limits.conf

oracle soft nproc 16384
oracle hard nproc 16384
oracle soft nofile 65536
oracle hard nofile 65536


# vi /etc/pam.d/login

session    required     pam_limits.so


Root 계정에서 CRS의 패스 잡아주기


# vi ~/.bash_profile

PATH=$PATH:$HOME/bin:/oracle/base/product/10.2.0/crs/bin


계정 추가


# groupadd dba

# useradd -g dba oracle

# passwd oracle

 (패스워드 입력)


# su - oracle

$ vi .bash_profile


export ORACLE_BASE=/oracle/base
export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db
export ORACLE_SID=rac1
export LANG=C
export ORACLE_TERM=xterm
export NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/lib64:/usr/lib:/usr/lib64:/usr/local/lib:/usr/local/lib64
export PATH=$PATH:$ORACLE_HOME/bin:/$ORA_CRS_HOME/bin:.:$ORACLE_HOME/OPatch:/sbin
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib


노드간 ssh 암호 동기화 설정


node1, 2,3 에서 모두 실행


oracle 계정에서 작업


$ mkdir .ssh
$ ssh-keygen -t rsa
  입력값 없이 엔터 -> 엔터 -> 엔터
$ ssh-keygen -t dsa
  입력값 없이 엔터 -> 엔터 -> 엔터


node1 에서만 실행

$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$ ssh rac2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

$ ssh rac3 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ ssh rac2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

$ ssh rac3 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$ scp ~/.ssh/authorized_keys rac2:~/.ssh/authorized_keys

$ scp ~/.ssh/authorized_keys rac3:~/.ssh/authorized_keys


# vi /etc/redhat-release

Red Hat Enterprise Linux ES release 4 (Nahant)


설정하고 나서 rac를 설치한다.


물론 오라클 10g는 RAC 설치시 rawdevice를 사용하는데, 기타 OS의 클러스터링을 사용한다면 파일시스템으로 만들수 있다.

참고로 해당 작업은 raw로 진행했다.


crs를 먼저 설치한다.


./runInstaller


중간에 prof 에러 화면 그냥 yes 누르고 지나가자.


root.sh 를 실행하기 전에 각각의 노드에서 LD_ASSUME_KERNEL 관련 부분을 주석 처리해주고 srvctl쪽은 unset 을 추가 해준다.


# vi $ORA_CRS_HOME/bin/vipca


#       if [ "$arch" = "i686" -o "$arch" = "ia64" -o "$arch" = "x86_64" ]
#       then
#            LD_ASSUME_KERNEL=2.4.19
#            export LD_ASSUME_KERNEL
#       fi


# vi $ORA_CRS_HOME/bin/srvctl

#LD_ASSUME_KERNEL=2.4.19
#export LD_ASSUME_KERNEL
unset LD_ASSUME_KERNEL

변경을 해주고 root.sh 각각의 노드에서 실행 시켜 준다.


그러면 마지막 노드의 root.sh에서 아래와 같이 에러가 떨어진다.


WARNING: directory '/oracle/base/product/10.2.0' is not owned by root
WARNING: directory '/oracle/base/product' is not owned by root
WARNING: directory '/oracle/base' is not owned by root
WARNING: directory '/oracle' is not owned by root
Checking to see if Oracle CRS stack is already configured
/etc/oracle does not exist. Creating it now.

Setting the permissions on OCR backup directory
Setting up NS directories
Oracle Cluster Registry configuration upgraded successfully
WARNING: directory '/oracle/base/product/10.2.0' is not owned by root
WARNING: directory '/oracle/base/product' is not owned by root
WARNING: directory '/oracle/base' is not owned by root
WARNING: directory '/oracle' is not owned by root
clscfg: EXISTING configuration version 3 detected.
clscfg: version 3 is 10G Release 2.
Successfully accumulated necessary OCR keys.
Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.
node <nodenumber>: <nodename> <private interconnect name> <hostname>
node 1: rac1 rac1-priv rac1
node 2: rac2 rac2-priv rac2
node 3: rac3 rac3-priv rac3
clscfg: Arguments check out successfully.

NO KEYS WERE WRITTEN. Supply -force parameter to override.
-force is destructive and will destroy any previous cluster
configuration.
Oracle Cluster Registry for cluster has already been initialized
Startup will be queued to init within 90 seconds.
Adding daemons to inittab
Expecting the CRS daemons to be up within 600 seconds.
CSS is active on these nodes.
        rac1
        rac2
        rac3
CSS is active on all nodes.
Waiting for the Oracle CRSD and EVMD to start
Oracle CRS stack installed and running under init(1M)
Running vipca(silent) for configuring nodeapps
Error 0(Native: listNetInterfaces:[3])
  [Error 0(Native: listNetInterfaces:[3])]


이것은 ocr 정보에 ip에 대한 정보가 안들어가서 발생 하는 건데, 강제로 ip 정보를 입력해줘야 한다.


마지막 노드에서


# oifcfg setif -global eth0/192.168.118.0:public

# oifcfg setif -global eth1/192.168.184.0:cluster_interconnect

# oifcfg getif
eth0  192.168.118.0  global  public
eth1  192.168.184.0  global  cluster_interconnect


그리고나서 마지막 노드의 xwindow로 접속해서 gui 화면서 터미널을 연후에


# vipca

해당 부분을 설정하고 다음으로 넘어간다.

그럼 이렇게 각 노드에 리소스를 설치한다.

이렇게 나오면 crs 설치가 완료 된것이니, 1번 노드의 root.sh 실행하라고 했던 창으로 돌아가서 OK를 누르고 진행한다.

다음은 DB설치


./runInstaller


DB는 패치가 완료 된 후에 생성할 예정이니 install database software only 옵션으로 설치한다.

엔진을 설치하는데는 특별한 문제는 없다. 클러스터 설치떄처럼 OPatch 부분에서 prof 에러가 뜬다면 yes 누르고 진행.



10.2.0.5  패치


각 노드에서 아래의 명령을 실행한다. ($ORA_CRS_HOME 밑의 inventory/Templates/* 의 권한 변경)


# chmod -R +w /oracle/base/product/10.2.0/crs/inventory/Templates/*


패치 하기전에서 각노드에서 crs를 종료.

# crsctl stop crs 


./runInstaller  -ignoreSysPrereqs


 -ignoreSysPrereqs 옵션을 주고 설치 한다.


그럼 별무리 없이 crs가 패치 된다.

이미 패치전에 crs를 종료 시켰기 때문에 crsctl stop crs 명령은 또 넣지 않아도 된다.

root102.sh를 실행시켜 패치를 마무리 한다.


실행이 완료 되면 crs가 자동으로 구동 된다.


DB 엔진 패치


./runInstaller  -ignoreSysPrereqs


역시 같은 옵션을 주고 실행

$ORACLE_HOME 을 패치한다.



Linux 6.5 64bit Oracle 11g RAC 설치 - OS 설정

Linux 가 6.5 버전이 6버전에서 최종 릴리즈가 되었고, 7버전이 출시된 현재,

최신 버전의 리눅스를 설치하고자 하여 6.5를 요구하는 곳이 늘고 있다.


리눅스 설치시 패키지 옵션 정보


Basic server 에 맞춰두고 custom 설정으로 들어가서 설치해준다.


    Base System > Base
    Base System > Compatibility libraries
    Base System > Hardware monitoring utilities
    Base System > Large Systems Performance
    Base System > Network file system client
    Base System > Performance Tools
    Base System > Perl Support
    Servers > Server Platform
    Servers > System administration tools
    Desktops > Desktop
    Desktops > Desktop Platform
    Desktops > Fonts
    Desktops > General Purpose Desktop
    Desktops > Graphical Administration Tools
    Desktops > Input Methods
    Desktops > X Window System
    Applications > Internet Browser
    Development > Additional Development
    Development > Development Tools


OCFS2 클러스터링을 사용한다면 Servers > System administration tools 의 고급옵션에서 ocfs2-tools 를 체크해서 같이 설치 해준다.


리눅스 설치 후


리눅스의 전반적이 업데이트를 진행 해준다.


# yum -y update


오라클 설치에 필요한 패키지 설치


# yum -y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat glibc-headers unixODBC unixODBC-devel libXp libXp-devel


각종 파라미터 값 수정


# vi /etc/sysctl.conf


fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4180152320
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586


# vi /etc/security/limits.conf


grid    soft   nproc    2047
grid    hard   nproc    16384
grid    soft   nofile   1024
grid    hard   nofile   65536
oracle  soft   nproc    2047
oracle  hard   nproc    16384
oracle  soft   nofile   1024
oracle  hard   nofile   65536


# vi /etc/pam.d/login

session     required          pam_limits.so


계정 추가


# groupadd dba

# useradd -g dba oracle

# passwd oracle


Profile 수정


# su - oracle

$ vi .bash_profile


export PATH
export LANG=C
export EDITOR=vim
export ORACLE_BASE=/oracle/base
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db
export ORACLE_SID=rac1
export GRID_HOME=/oracle/grid
export TMPDIR=/tmp
export TMP=/tmp
export NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949
export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/sbin:/usr/ccs/bin:.:$GRID_HOME/bin:$ORACLE_HOME/OPatch:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/usr/lib64:/lib:/usr/local/lib:/usr/local/lib64
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib


6.5버전에서 싱글 설치는 큰 문제가 없는데 RAC설치시 큰 문제점이 발견된다.

네트워크 인터페이스의 Public, Private 설정 부분에서 Network Interface Name 부분이 모두 * 로 나오는 것이다.


이건 리눅스 6.x 버전대 부터 지원하는 네트워크 매니저 서비스 때문인데...

이 부분을 해제 해줘야 한다.


# setup

System services 를 선택


NetworkManager 의 * 표시를 해제 해준다.

기왕 해제하는거 안쓰는 bluetooth 와 cups 같은것도 해제 해주면 좋다.









ip를 설정해 준다.

eth0 번에는

static IP, netmask, gateway, DNS server 까지 다 채워주고

eth1 번에는

static IP, netmask만 넣어준다.


DNS 서버 설정도 해준다.


# cd /etc/sysconfig/network-script

# ls -l ifcfg-eth*


네트워크 설정 관련 파일들이 보인다.


# cat ifcfg-eth0


DEVICE=eth0
HWADDR=00:0c:29:ef:4c:96
TYPE=Ethernet
UUID=233fb4c0-2912-46c6-b38c-4806691149e7
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.118.181
NETMASK=255.255.255.0
DNS2=168.126.63.2
GATEWAY=192.168.118.2
DNS1=168.126.63.1
IPV6INIT=no
USERCTL=yes


붉은 색 부분의 no를 yes로 바꿔준다.


# cat ifcfg-eth1


DEVICE=eth1
HWADDR=00:0c:29:ef:4c:a0
TYPE=Ethernet
UUID=250e6fd3-6e5c-4e25-b2f0-a630b3e60004
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.184.181
NETMASK=255.255.255.0
IPV6INIT=no
USERCTL=yes


설정이 완료되면 네트워크를 재시작 해준다.


# /etc/init.d/network restart

# ifconfig


eth0      Link encap:Ethernet  HWaddr 00:0C:29:EF:4C:96 
          inet addr:192.168.118.181  Bcast:192.168.118.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:feef:4c96/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:383952 errors:0 dropped:0 overruns:0 frame:0
          TX packets:182880 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:519009671 (494.9 MiB)  TX bytes:11025325 (10.5 MiB)

eth1      Link encap:Ethernet  HWaddr 00:0C:29:EF:4C:A0 
          inet addr:192.168.184.181  Bcast:192.168.184.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:feef:4ca0/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1980 (1.9 KiB)  TX bytes:636 (636.0 b)
          Interrupt:19 Base address:0x2000

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:184 errors:0 dropped:0 overruns:0 frame:0
          TX packets:184 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:14624 (14.2 KiB)  TX bytes:14624 (14.2 KiB)


위같이 나오면 NIC설정이 완료 된것이다.


  1. 클러스터와 DB 설치과정은 없습니까?

  2. 안녕하세요 RHEL 6.5으로 RAC 구성하고 있는 학생입니다.
    RAC구성하면서 Grid Infrastructure 설치를 하고 있는데요 grid 2.0.1으로는 RAC 구성이 안되고 2.0.3으로만 된다는 글을 봐서요. 근데 이 2.0.3버젼은 라이센스키가 필요하던데 제품을 구매하지않고는 RHEL 6.5는 RAC구성을 할 수 없는건가요..?

  3. 안녕하세요 현재 Centos6.7에서 11.2.0.4 버전으로 RAC구성중에 있습니다 grid설치중에 2번 노드에서 클러스터구성에 실패하고 있는데요
    네트워크 설정할때 본딩작업을 해줘야하나요??
    Centos나 rhel 6버전에서 rac를 구성할때
    사전에 설정해야 하는 작업이 있나요?
    몇일째 헤메고만 있습니다ㅠ

Red Hat Enterprise Linux 버전별 Oracle 지원 여부

Red Hat Enterprise Linux (RHEL)


Document 376183.1 Defining a "default RPMs" installation of the RHEL OS

Quick Links for RHEL

RHEL6:   x86_64 zLinux
RHEL5:   x86   x86_64   Itanium   zLinux   Power
RHEL4:   x86   x86_64   Itanium   zLinux   Power
RHEL3:   x86   x86_64   Itanium   zLinux   Power

RHEL6 x86_64:

 9.2.0 - Not certified, not supported, not planned.
10.1.0 - Not certified, not supported, not planned.
10.2.0 - Not certified, not supported, not planned.
11.1.0 - Not certified, not supported, not planned.
11.2.0 - Document 1441282.1 Requirements for Installing Oracle 11gR2 RDBMS on RHEL6 or OL6 64-bit (x86-64)
12.1.0 - Document 1529864.1 Requirements for Installing Oracle Database 12.1 on RHEL6 or OL6 64-bit (x86-64)
RHEL6 zLinux:

 9.2.0 - Not certified, not supported, not planned.
10.1.0 - Not certified, not supported, not planned.
10.2.0 - Not certified, not supported, not planned.
11.1.0 - Not certified, not supported, not planned.
11.2.0 - Document 1470834.1 Requirements for Installing Oracle 11.2.0.3/11.2.0.4 RDBMS on RHEL 6 on zLinux (s390x)
12.1.0 - Document 1574413.1 Requirements for Installing Oracle Database 12c Release 1 on RHEL 6 on IBM: Linux on System z (s390x)


RHEL5 x86:

 9.2.0 - Not certified, not supported, not planned.
10.1.0 - Not certified, not supported, not planned.
10.2.0 - Document 419646.1 Requirements For Installing Oracle 10gR2 On RHEL 5 (x86)
11.1.0 - Document 438765.1 Requirements for Installing Oracle 11gR1 32bit RDBMS on RHEL 5
11.2.0 - Document 880936.1 Requirements for Installing Oracle 11gR2 RDBMS on RHEL (and OEL) 5 on 32-bit x86


RHEL5 x86-64:

 9.2.0 - Not certified, not supported, not planned.
10.1.0 - Not certified, not supported, not planned.
10.2.0 - Document 421308.1 Requirements For Installing Oracle10gR2 On RHEL 5 (x86_64)
11.1.0 - Document 438766.1 Requirements for Installing Oracle 11gR1 RDBMS on RHEL 5 on AMD64/EM64T
11.2.0 - Document 880989.1 Requirements for Installing Oracle 11gR2 RDBMS on RHEL (and OEL) 5 on AMD64/EM64T
12.1.0 - Document 1529433.1 Requirements for Installing Oracle Database 12.1 on RHEL5 or OL5 64-bit (x86-64)


RHEL5 Itanium:

 9.2.0 - Not certified, not supported, not planned.
10.1.0 - Not certified, not supported, not planned.
10.2.0 - Document 748378.1 Requirements for Installing Oracle 10gR2 RDBMS on RHEL 5 on Linux Itanium (ia64)


RHEL5 zLinux:

9.2.0 - Not certified, not supported, not planned.
10.1.0 - Not certified, not supported, not planned.
10.2.0 - Document 741646.1 Requirements for Installing Oracle 10gR2 RDBMS on RHEL 5 on zLinux (s390x)
11.2.0 - Document 1306889.1 Requirements for Installing Oracle 11gR2 on RHEL 5 on IBM: Linux on System z (s390x)


RHEL5 Power:

10.2.0 - Document 341507.1 Oracle Database Server on Linux on IBM POWER


RHEL4 x86:

 9.2.0 - Document 303859.1 Requirements for Installing Oracle 9iR2 on RHEL 4
10.1.0 - Document 392940.1 Requirements for Installing Oracle 10.1.0.x RDBMS on RHEL 4 x86 platform
10.2.0 - Document 343431.1 Requirements for Installing Oracle 10gR2 RDBMS on RHEL 4 x86 platform
11.1.0 - Document 430653.1 Requirements for Installing Oracle 11gR1 32-bit on RHEL 4
11.2.0 - Document 880211.1 Requirements for Installing Oracle 11gR2 RDBMS on RHEL (and OEL) 4 x86


RHEL4 x86-64:

 9.2.0 - Document 353529.1 Requirements for Installing Oracle 9iR2 64-bit on RHEL 4 x86-64 (AMD64/EM64T)
10.1.0 - Document 390900.1 Requirements for Installing Oracle 10g (10.1.0.x) RDBMS on RHEL 4 on AMD64/EM64T (Linux x86-64)
10.2.0 - Document 339510.1 Requirements for Installing Oracle 10gR2 RDBMS on RHEL 4 on AMD64/EM64T
11.1.0 - Document 437123.1 Requirements for Installing Oracle 11gR1 RDBMS on RHEL 4 on AMD64/EM64T
11.2.0 - Document 880942.1 Requirements for Installing Oracle 11gR2 RDBMS on RHEL (and OEL) 4 on AMD64/EM64T


RHEL4 Itanium:

 9.2.0 - Not available
10.1.0 - Not available
10.2.0 - Not available


RHEL4 zLinux:

 9.2.0 - Not certified, not supported, not planned.
10.1.0 - Not certified, not supported, not planned.
10.2.0 - Document 420382.1 Requirements for Installing Oracle 10gR2 RDBMS on RHEL 4 on zLinux (s390x)


RHEL4 Power:

10.1.0 - Not certified, not supported, not planned.
10.2.0 - Document 341507.1 Oracle Database Server on Linux on IBM POWER


RHEL3 x86:

 9.2.0 - Document 252217.1 Requirements for Installing Oracle 9iR2 32-bit on RHEL 3
10.1.0 - Document 394360.1 Requirements for Installing Oracle 10g 32-bit on RHEL 3
10.2.0 - Not available
11.1.0 - Not certified, not supported, not planned.
11.2.0 - Not certified, not supported, not planned.


RHEL3 x86-64:

 9.2.0 - Document 308588.1 Requirements for Installing Oracle 9iR2 x86_64 on RHEL 3
10.1.0 - Document 351679.1 Requirements for RPM Arch. for 10g x86_64 on RHEL 3
10.2.0 - Document 353735.1 Requirements for RPM Arch. for 10gR2 x86_64 on RHEL 3
11.1.0 - Not certified, not supported, not planned.
11.2.0 - Not certified, not supported, not planned.


RHEL3 Itanium:

 9.2.0 - Not available
10.1.0 - Not available
10.2.0 - Not available
11.1.0 - Not certified, not supported, not planned.
11.2.0 - Not certified, not supported, not planned.


RHEL3 zLinux:

 9.2.0 - Not certified, not supported, not planned.
10.1.0 - Not certified, not supported, not planned.
10.2.0 - Not certified, not supported, not planned.
11.1.0 - Not certified, not supported, not planned.
11.2.0 - Not certified, not supported, not planned.


RHEL3 Power:

10.2.0 - Not certified, not supported, not planned.
11.1.0 - Not certified, not supported, not planned.
11.2.0 - Not certified, not supported, not planned.


Oracle 11g DataGuard 설치 - Single instance

Oracle 11g Dataguard 설치 - Single instance


작업 환경 Active, standby 서버

OS : Oracle Linux 6.5 64bit

Oracle : 11g 11.2.0.4


Actvie 서버 구축 (반드시 Archive Mode로 구축)

Hostname : dg11g

Oracle SID = dg11g

경로 정보

Oracle Home : /oracle/base/product/11.2.0/db

Orlace data : /oracle/dg11g/oradata/dg11g

Archive : /oracle/dg11g/archive

Rman_backup : /oracle/rman_backup


정상적인 DB 생성후 spfile로 부터 pfile을 생성한 후.

아래와 같이 수정


$ vi $ORACLE_HOME/dbs/initdg11g.ora

dg11g.__db_cache_size=205520896
dg11g.__java_pool_size=4194304
dg11g.__large_pool_size=71303168
dg11g.__oracle_base='/oracle/base'#ORACLE_BASE set from environment
dg11g.__pga_aggregate_target=260046848
dg11g.__sga_target=390070272
dg11g.__shared_io_pool_size=0
dg11g.__shared_pool_size=100663296
dg11g.__streams_pool_size=0
*.audit_file_dest='/oracle/base/admin/dg11g/adump'
*.audit_trail='none'
*.compatible='11.2.0.4.0'
*.control_files='/oracle/dg11g/oradata/dg11g/control01.ctl','/oracle/base/fast_recovery_area/dg11g/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='dg11g'
*.db_recovery_file_dest='/oracle/base/fast_recovery_area'
*.db_recovery_file_dest_size=4385144832
*.db_unique_name='dg11g'
*.dg_broker_start=TRUE
*.diagnostic_dest='/oracle/base'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=dg11gXDB)'
*.fal_client='dg11g'
*.fal_server='dg11gs'
*.instance_name='dg11g'
*.log_archive_config='DG_CONFIG=(dg11g,dg11gs)'
*.log_archive_dest_1='LOCATION=/oracle/dg11g/archive valid_for=(all_logfiles, all_roles) db_unique_name=dg11g'
*.log_archive_dest_2='SERVICE=dg11gs ASYNC valid_for=(online_logfiles, primary_role) db_unique_name=dg11gs'
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.log_archive_format='%t_%s_%r.arc'
*.memory_target=650117120
*.open_cursors=300
*.open_links=100
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.standby_file_management='auto'
*.undo_tablespace='UNDOTBS1'


붉은 색으로 된 부분이 값을 변경하거나 새로 추가된 부분

그리고 나서 pfile로 DB재구동


리스너 정보 생성


$ vi $ORACLE_HOME/network/admin/listener.ora

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.118.177)(PORT = 1521))
      )
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
      )
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /oracle/base/product/11.2.0/db)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = dg11g)
      (ORACLE_HOME = /oracle/base/product/11.2.0/db)
      (SID_NAME = dg11g)
    )
  )


TNSNAMES 정보 생성


$ vi $ORACLE_HOME/network/admin/tnsnames.ora

dg11g =
  (DESCRIPTION =
   (ADDRESS_LIST =
    (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.118.177)(PORT=1521))
    )
    (CONNECT_DATA =
    (SERVER = DEDICATED)   

    (SID = dg11g)
   )
  )

dg11gs =
  (DESCRIPTION =
   (ADDRESS_LIST =
    (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.118.178)(PORT= 1521))
    )
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SID = dg11gs)
   )
  )


DB를 구동 한다음에

SQL> alter database force logging;

 * nologging 작업이 일어나지 않도록 사전에 예방하기 위해 강제로 nologging 도 log 를 남기도록 설정



Standby DB 구축


Hostname : dg11gs

Oracle SID = dg11gs

경로 정보

Oracle Home : /oracle/base/product/11.2.0/db

Orlace data : /oracle/dg11gs/oradata/dg11gs

Archive : /oracle/dg11gs/archive

Rman_backup : /oracle/rman_backup


엔진까지는 동일하게 설치한다.

DB는 DBCA를 통해 구축하지 않고, active 서버에서 가져와 복원 한다.


파라미터 파일을 Active 서버에거 가져와 수정한다.


$ vi $ORACLE_HOME/dbs/initdg11gs.ora

dg11g.__db_cache_size=205520896
dg11g.__java_pool_size=4194304
dg11g.__large_pool_size=71303168
dg11g.__oracle_base='/oracle/base'#ORACLE_BASE set from environment
dg11g.__pga_aggregate_target=260046848
dg11g.__sga_target=390070272
dg11g.__shared_io_pool_size=0
dg11g.__shared_pool_size=100663296
dg11g.__streams_pool_size=0
*.audit_file_dest='/oracle/base/admin/dg11gs/adump'
*.audit_trail='none'
*.compatible='11.2.0.4.0'
*.control_files='/oracle/dg11gs/oradata/dg11gs/control01.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='dg11g'
*.db_recovery_file_dest='/oracle/base/fast_recovery_area'
*.db_recovery_file_dest_size=4385144832
*.db_unique_name='dg11gs'
*.db_file_name_convert = 'dg11g','dg11gs'
*.log_file_name_convert = 'dg11g','dg11gs'
*.dg_broker_start=TRUE
*.diagnostic_dest='/oracle/base'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=dg11gsXDB)'
*.fal_client='dg11gs'
*.fal_server='dg11g'
*.instance_name='dg11g'
*.log_archive_config='DG_CONFIG=(dg11g,dg11gs)'
*.log_archive_dest_1='LOCATION=/oracle/dg11gs/archive valid_for=(all_logfiles, all_roles) db_unique_name=dg11gs'
*.log_archive_dest_2='SERVICE=dg11g ASYNC valid_for=(online_logfiles, primary_role) db_unique_name=dg11g'
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.log_archive_format='%t_%s_%r.arc'
*.memory_target=650117120
*.open_cursors=300
*.open_links=100
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.standby_file_management='auto'
*.undo_tablespace='UNDOTBS1'


역시 붉은색으로 표시된 부분을 추가 하거나 수정해준다. 

파라미터 파일이 생성 되었으면 nomount 상태로 DB를 구동한다.


SQL> startup nomount;


리스너 생성 및 구동

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.118.178)(PORT = 1521))
      )
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
      )
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /oracle/base/product/11.2.0/db)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = dg11gs)
      (ORACLE_HOME = /oracle/base/product/11.2.0/db)
      (SID_NAME = dg11gs)
    )
  )


tnsnames.ora 생성 (active 서버와 동일)


$ vi $ORACLE_HOME/network/admin/tnsnames.ora

dg11g =
  (DESCRIPTION =
   (ADDRESS_LIST =
    (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.118.177)(PORT=1521))
    )
    (CONNECT_DATA =
    (SERVER = DEDICATED)  

    (SID = dg11g)
   )
  )

dg11gs =
  (DESCRIPTION =
   (ADDRESS_LIST =
    (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.118.178)(PORT= 1521))
    )
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SID = dg11gs)
   )
  )


orapwd 파일 복사

Active 서버의 $ORACLE_HOME/dbs 에 있는 orapwddg11g 파일을 standby 서버에 복사한다.

$ scp -r orapwddg11g dg11gs:/oracle/base/product/11.2.0/dbs/orapwddg11gs

* 파일명에 주의 한다. (스탠바이에 복사되는 파일 끝에 s)


그리고 나서 서로 접속이 되는지 확인한다.


active에서

$ sqlplus sys/oracle@dg11gs as sysdba


standby 에서

$ sqlplus sys/oracle@dg11g as sysdba



Standby DB를 Active DB에서 복원


Actvie DB에서 Rman backup을 한다.


$ rman target /


RMAN>configure controlfile autobackup format for device type disk to '/oracle/rman_backup/%F';

RMAN>backup as compressed backupset database format '/oracle/rman_backup/rman_%U.bkp' plus archivelog format '/oracle/rman_backup/rman_%t%s.bkp' ;


상에서 standby control file 생성하기

SQL> alter database create standby controlfile as '/oracle/dg11g/oradata/dg11g/standby.ctl';


백업 파일을 standby 쪽으로 복사한다.

$ scp -r /oracle/rman_backup/* dg11gs:/oracle/rman_backup/


active 서버에서 rman을 이용해 standby DB로 접속한다.


$ rman target / auxiliary sys/oracle@dg11gs;


백업 된 파일을 이용해서 standby DB를 복원한다.


RMAN> duplicate target database for standby;


완료가 되면 Standby DB는 Mount 상태가 된다.

Standby DB에 접속해서 확인해보자.


Standby DB에서 standby log 파일을 등록해준다.


SQL> alter database add standby logfile '/oracle/dg11gs/oradata/dg11gs/standbylog03.log' size 52428800;
SQL> alter database add standby logfile '/oracle/dg11gs/oradata/dg11gs/standbylog03.log' size 52428800;
SQL> alter database add standby logfile '/oracle/dg11gs/oradata/dg11gs/standbylog03.log' size 52428800;


구축이 완료 되었다.


Active DB에서 log switch 를 발생하면, 양쪽 DB의 alertlog에서 동시에 같은 시퀀스의 로그가 떨어지는걸 확인할 수 있다.


SQL> alter system archive log current;


active

ALTER SYSTEM ARCHIVE LOG
Thread 1 advanced to log sequence 37 (LGWR switch)
  Current log# 1 seq# 37 mem# 0: /oracle/dg11g/oradata/dg11g/redo01.log
Archived Log entry 48 added for thread 1 sequence 36 ID 0xcc507c12 dest 1:
LNS: Standby redo logfile selected for thread 1 sequence 37 for destination LOG_ARCHIVE_DEST_2


standby

RFS[2]: Selected log 5 for thread 1 sequence 37 dbid -867162094 branch 858598738
Media Recovery Waiting for thread 1 sequence 37 (in transit)
Recovery of Online Redo Log: Thread 1 Group 5 Seq 37 Reading mem 0
  Mem# 0: /oracle/dg11gs/oradata/dg11gs/standbylog02.log


11g real-time query capability of physical standby

11g 부터는 stnadby db open 상태에서도 redo apply 가 가능해졌다.

즉 Standby DB도 open 상태로 두고 실시간 redo 적용이 가능해졌다는 이야기다.


mount 상태의 Standby DB에서


SQL> alter database recover managed standby database disconnect from session;
SQL> alter database recover managed standby database cancel;
SQL> alter database open;
SQL> alter database recover managed standby database using current logfile disconnect;     <-- Real-time Redo Apply 적용


온라인 상태에서 Redo를 적용하게 되면 standby DB는 Read only with apply 상태로 운영된다.






오라클 패치의 종류 및 개념

오라클 DB 패치 종류(PSR, PSU, CPU, 개별패치)

# 대상 버전
---------------------------------------
오라클 DB 패치 종류(PSR, PSU, CPU, 개별패치)

# 대상 버전
---------------------------------------

Oracle Database 11g Release2 (11.2.0)
Oracle Database 11g Release1 (11.1.0)
Oracle Database 10g Release2 (10.2.0)
Oracle9i Database Release2 (9.2.0)

# 대상 플랫폼

---------------------------------------

모든 플랫폼


# 목차
---------------------------------------

1. Oracle Database 패치 종류?
2. 패치 목적?
3. Oracle Database의 버전 번호?
4. PSR 란?
5. PSU 란?
6. CPU 란?
7. 개별 패치란?

1. Oracle Database 패치 종류
=================================

Oracle Database는 크게 4 종류의 패치를 지원하고 있습니다.
개선된 내용이 많이 포함되어 있는 패치를 순서로 나열하면 다음과 같습니다.

PSR > PSU > CPU > 개별 패치(One-Off Patch, PSE(Patch Set Exception), Interim Patch)

패치의 종류에 따라 업데이트 방법이 다르니 유의하시기 바랍니다.

PSR : Oracle Universal Installer (GUI)를 사용
PSU, CPU, 개별 패치 : OPatch 유틸리티를 사용


2. 패치 목적
=================================

* PSR(Patch Set Release) :

릴리즈된 버전의 통합 패치 파일입니다. 우리가 일반적으로 알고 있는 Patchset입니다.(예 - 10.2.0.5 Patchset)

10gR2에서 11gR2까지 초기 소프트웨어 버전과 2013/01/24 현재까지 출시 된 PSR 버전 번호를 정리해 보았습니다.
현재 사용하고 있는 DB 버전과 비교하여 4 번째 자리의 숫자가 최신이 아닌 경우 최신 PSR을 적용하여 버전을 업데이트 할 수 있습니다.

10gR2 : 10.2.0.1 -> PSR 10.2.0.2 -> PSR 10.2.0.3 -> PSR 10.2.0.4 -> PSR 10.2.0.5(마지막 버전)
11gR1 : 11.1.0.6 -> PSR 11.1.0.7(마지막 버전)
11gR2 : 11.2.0.1 -> PSR 11.2.0.2 -> PSR 11.2.0.3(현재 기준 최신 버전)

* PSU(Patch Set Update) :

CPU 패치, 단일 패치를 통합해 놓은 패치이며, 오라클에서 분기마다 정기적으로 권고하는 패치입니다.
패치 버전 번호는 마지막 번호 즉 5번째 번호입니다.(예 - 10.2.0.5.9)

* CPU(Critical Patch Update) :

오라클 DB의 보안 문제를 해결하기 위해 나온 패치입니다.

* 개별 패치 :

일회성 버그를 해결하는 패치로 갑작스러운 버그 발생시 해당 환경에 맞추어 적용됩니다.
새로운 BUG 또는 알려진 BUG, PSR 패치나 PSU 패치에 적용되어 있지 않는 경우 해당 문제에 한해서 패치를 적용합니다.
보통 우리가 알고 있는 One-Off Patch, PSE (Patch Set Exception), Interim Patch 가 개별 패치입니다.


3. Oracle Database의 버전 번호
=================================

SQL*Plus로 Oracle Database에 접속하면 배너에 다음과 같이 표시됩니다.

Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
With the Partitioning, Data Mining and Real Application Testing options

다음은 Oracle Database 소프트웨어의 자세한 버전 번호를 나타냅니다.
왼쪽부터 설명을 드리면 버전 11, 릴리스 2, 그리고 PSR 11.2.0.3 버전의 PSR이 적용되어 있음을 알 수 있습니다.

11.2.0.3.0
| | | | |__ 플랫폼 별 관리 번호
| | | |____ PSR (패치 세트) 식별 번호
| | |______ DB는 사용하지 않음 (iAS에서 사용)
| |________ 관리 릴리스 번호
|__________ 메이저 버전 번호

4. PSR (Patch Set Release)
=================================

Oracle Database의 가장 기본적이고 중요한 통합 패치이며, 최신 버전이 나올 경우 가장 우선적으로 적용해야 하는 패치입니다.
하나의 PSR에는 여러 개 이상의 소프트웨어 버그가 통합 수정되어 있으며, 오라클에서 충분한 통합 테스트를 실시한 후 배포하고 있습니다. PSR의 설치는 Oracle Database 소프트웨어의 설치시 사용하는 Oracle Universal Installer를 사용합니다.

Oracle Database 제품의 버전 번호의 4 자리는 PSR의 식별 번호입니다.
PSR 패치를 적용하면 버전 번호의 4 번째 자리 숫자가 변경됩니다.

11gR2 소프트웨어 설치 직후 : Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

PSR 11.2.0.3을 설치 한 후 : Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production


5. PSU (Patch Set Update)
=================================

매년 1월, 4월, 7월, 10월에 정기적으로 배포되며 수정된 내용이 누적되어 나오는 패치입니다.
빈도가 높은 버그 및 에러를 엄선하여 수정 및 적용하였으며, 중요한 보안 이슈와 관련하여 수정된 패치입니다.

PSU 패치를 적용하면 버전 번호의 5번째 자리 숫자가 변경됩니다.
예를 들어, 10.2.0.5 버전에 PSU를 적용하면, PSU 패치 버전은 5자리의 숫자로 변경됩니다.(예- 10.2.0.5.9)

그러나 SQL*Plus의 배너와 Installer에 보여지는 버전 번호는 변경되지 않으므로 유의하시기 바랍니다.
최신 PSU를 적용했지만 배너와 Installer에 보여지는 버전은 10.2.0.4.0 으로 보여집니다.


6. CPU (Critical Patch Update)
=================================

매년 1월, 4월, 7월, 10월에 정기적으로 배포되며 가장 중요한 보안 이슈의 내용만 수정되어 나오는 패치입니다.
즉 PSU 패치에서 수정된 보안 내용만을 뽑아 낸 패치가 CPU 패치 입니다.
PSU와 CPU는 같은 시기에 배포되기 때문에 통상적으로 CPU패치가 포함된 PSU 패치를 적용하도록 권장하고 있습니다.

어플리케이션 호환 문제 등 초기 설치시 적용된 Oracle Database 소프트웨어를 되도록 변경하고 싶지 않지만,
보안 요구 사항으로 인해 보안 패치만 적용해야 할 경우 PSU 패치 보다는 CPU가 더 적합 할 수 있습니다.


7. 개별 패치
=================================

개별 패치라는 것은 특정 하나의 문제나 BUG에 대해 특별히 만들어진 패치입니다.
보통 우리가 알고 있는 One-Off Patch, PSE(Patch Set Exception), Interim Patch 가 개별 패치 입니다.
PSR과 PSU 등 기존 통합 패치에 수정 및 포함되지 않은 부분으로 인해 에러가 발생했을 경우, 고객의 환경에 맞추어 제작되는 패치입니다. 특정 환경에서 특정 문제만의 해결을 위해 오라클 소프트웨어의 변경은 최소한으로 변경되지만, PSR 패치 만큼 충분한 시간을 가지고 통합 테스트는 이루어지지 않아, 어플리케이션과의 충돌 가능성을 배제할 수는 없습니다.

Windows 플랫폼에서는 개별 패치 대신 Windows Bundle Patch 라는 패치가 출시되고 있습니다.


8. Windows Bundle Patch
========================

Windows 플랫폼에서 패치 파일의 배포 형식이 Unix와 달리 개별 패치가 따로 존재하지는 않습니다.
대신 일정 기간 내에 고객이 요청한 내용을 수정, 통합한 Windows Bundle Patch 를 제공합니다.
Windows Bundle Patch는 버그나 문제가 된 내용을 통합하여 보통 1 ~ 3 개월에 1번 정도의 빈도로 제공하고 있습니다.

Windows Bundle Patch도 버전 번호의 5 번째 자리를 식별 번호로 사용합니다.
예를 들어, 10.2.0.4에 만들어진 Windows Bundle Patch의 Patch 1, Patch 2, Patch 3은 각각 10.2.0.5.1P, 10.2.0.5.2P, 10.2.0.5.3P로 보여집니다. 하지만 SQL*PLUS의 배너에는 10.2.0.5로 표시됩니다.
Oracle Database 11g Release2 (11.2.0)
Oracle Database 11g Release1 (11.1.0)
Oracle Database 10g Release2 (10.2.0)
Oracle9i Database Release2 (9.2.0)

# 대상 플랫폼

---------------------------------------

모든 플랫폼


# 목차
---------------------------------------

1. Oracle Database 패치 종류?
2. 패치 목적?
3. Oracle Database의 버전 번호?
4. PSR 란?
5. PSU 란?
6. CPU 란?
7. 개별 패치란?

1. Oracle Database 패치 종류
=================================

Oracle Database는 크게 4 종류의 패치를 지원하고 있습니다.
개선된 내용이 많이 포함되어 있는 패치를 순서로 나열하면 다음과 같습니다.

PSR > PSU > CPU > 개별 패치(One-Off Patch, PSE(Patch Set Exception), Interim Patch)

패치의 종류에 따라 업데이트 방법이 다르니 유의하시기 바랍니다.

PSR : Oracle Universal Installer (GUI)를 사용
PSU, CPU, 개별 패치 : OPatch 유틸리티를 사용


2. 패치 목적
=================================

* PSR(Patch Set Release) :

릴리즈된 버전의 통합 패치 파일입니다. 우리가 일반적으로 알고 있는 Patchset입니다.(예 - 10.2.0.5 Patchset)

10gR2에서 11gR2까지 초기 소프트웨어 버전과 2013/01/24 현재까지 출시 된 PSR 버전 번호를 정리해 보았습니다.
현재 사용하고 있는 DB 버전과 비교하여 4 번째 자리의 숫자가 최신이 아닌 경우 최신 PSR을 적용하여 버전을 업데이트 할 수 있습니다.

10gR2 : 10.2.0.1 -> PSR 10.2.0.2 -> PSR 10.2.0.3 -> PSR 10.2.0.4 -> PSR 10.2.0.5(마지막 버전)
11gR1 : 11.1.0.6 -> PSR 11.1.0.7(마지막 버전)
11gR2 : 11.2.0.1 -> PSR 11.2.0.2 -> PSR 11.2.0.3(현재 기준 최신 버전)

* PSU(Patch Set Update) :

CPU 패치, 단일 패치를 통합해 놓은 패치이며, 오라클에서 분기마다 정기적으로 권고하는 패치입니다.
패치 버전 번호는 마지막 번호 즉 5번째 번호입니다.(예 - 10.2.0.5.9)

* CPU(Critical Patch Update) :

오라클 DB의 보안 문제를 해결하기 위해 나온 패치입니다.

* 개별 패치 :

일회성 버그를 해결하는 패치로 갑작스러운 버그 발생시 해당 환경에 맞추어 적용됩니다.
새로운 BUG 또는 알려진 BUG, PSR 패치나 PSU 패치에 적용되어 있지 않는 경우 해당 문제에 한해서 패치를 적용합니다.
보통 우리가 알고 있는 One-Off Patch, PSE (Patch Set Exception), Interim Patch 가 개별 패치입니다.


3. Oracle Database의 버전 번호
=================================

SQL*Plus로 Oracle Database에 접속하면 배너에 다음과 같이 표시됩니다.

Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
With the Partitioning, Data Mining and Real Application Testing options

다음은 Oracle Database 소프트웨어의 자세한 버전 번호를 나타냅니다.
왼쪽부터 설명을 드리면 버전 11, 릴리스 2, 그리고 PSR 11.2.0.3 버전의 PSR이 적용되어 있음을 알 수 있습니다.

11.2.0.3.0
| | | | |__ 플랫폼 별 관리 번호
| | | |____ PSR (패치 세트) 식별 번호
| | |______ DB는 사용하지 않음 (iAS에서 사용)
| |________ 관리 릴리스 번호
|__________ 메이저 버전 번호

4. PSR (Patch Set Release)
=================================

Oracle Database의 가장 기본적이고 중요한 통합 패치이며, 최신 버전이 나올 경우 가장 우선적으로 적용해야 하는 패치입니다.
하나의 PSR에는 여러 개 이상의 소프트웨어 버그가 통합 수정되어 있으며, 오라클에서 충분한 통합 테스트를 실시한 후 배포하고 있습니다. PSR의 설치는 Oracle Database 소프트웨어의 설치시 사용하는 Oracle Universal Installer를 사용합니다.

Oracle Database 제품의 버전 번호의 4 자리는 PSR의 식별 번호입니다.
PSR 패치를 적용하면 버전 번호의 4 번째 자리 숫자가 변경됩니다.

11gR2 소프트웨어 설치 직후 : Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

PSR 11.2.0.3을 설치 한 후 : Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production


5. PSU (Patch Set Update)
=================================

매년 1월, 4월, 7월, 10월에 정기적으로 배포되며 수정된 내용이 누적되어 나오는 패치입니다.
빈도가 높은 버그 및 에러를 엄선하여 수정 및 적용하였으며, 중요한 보안 이슈와 관련하여 수정된 패치입니다.

PSU 패치를 적용하면 버전 번호의 5번째 자리 숫자가 변경됩니다.
예를 들어, 10.2.0.5 버전에 PSU를 적용하면, PSU 패치 버전은 5자리의 숫자로 변경됩니다.(예- 10.2.0.5.9)

그러나 SQL*Plus의 배너와 Installer에 보여지는 버전 번호는 변경되지 않으므로 유의하시기 바랍니다.
최신 PSU를 적용했지만 배너와 Installer에 보여지는 버전은 10.2.0.4.0 으로 보여집니다.


6. CPU (Critical Patch Update)
=================================

매년 1월, 4월, 7월, 10월에 정기적으로 배포되며 가장 중요한 보안 이슈의 내용만 수정되어 나오는 패치입니다.
즉 PSU 패치에서 수정된 보안 내용만을 뽑아 낸 패치가 CPU 패치 입니다.
PSU와 CPU는 같은 시기에 배포되기 때문에 통상적으로 CPU패치가 포함된 PSU 패치를 적용하도록 권장하고 있습니다.

어플리케이션 호환 문제 등 초기 설치시 적용된 Oracle Database 소프트웨어를 되도록 변경하고 싶지 않지만,
보안 요구 사항으로 인해 보안 패치만 적용해야 할 경우 PSU 패치 보다는 CPU가 더 적합 할 수 있습니다.


7. 개별 패치
=================================

개별 패치라는 것은 특정 하나의 문제나 BUG에 대해 특별히 만들어진 패치입니다.
보통 우리가 알고 있는 One-Off Patch, PSE(Patch Set Exception), Interim Patch 가 개별 패치 입니다.
PSR과 PSU 등 기존 통합 패치에 수정 및 포함되지 않은 부분으로 인해 에러가 발생했을 경우, 고객의 환경에 맞추어 제작되는 패치입니다. 특정 환경에서 특정 문제만의 해결을 위해 오라클 소프트웨어의 변경은 최소한으로 변경되지만, PSR 패치 만큼 충분한 시간을 가지고 통합 테스트는 이루어지지 않아, 어플리케이션과의 충돌 가능성을 배제할 수는 없습니다.

Windows 플랫폼에서는 개별 패치 대신 Windows Bundle Patch 라는 패치가 출시되고 있습니다.


8. Windows Bundle Patch
========================

Windows 플랫폼에서 패치 파일의 배포 형식이 Unix와 달리 개별 패치가 따로 존재하지는 않습니다.
대신 일정 기간 내에 고객이 요청한 내용을 수정, 통합한 Windows Bundle Patch 를 제공합니다.
Windows Bundle Patch는 버그나 문제가 된 내용을 통합하여 보통 1 ~ 3 개월에 1번 정도의 빈도로 제공하고 있습니다.

Windows Bundle Patch도 버전 번호의 5 번째 자리를 식별 번호로 사용합니다.
예를 들어, 10.2.0.4에 만들어진 Windows Bundle Patch의 Patch 1, Patch 2, Patch 3은 각각 10.2.0.5.1P, 10.2.0.5.2P, 10.2.0.5.3P로 보여집니다. 하지만 SQL*PLUS의 배너에는 10.2.0.5로 표시됩니다.

RAC를 위한 ocfs2 클러스터링

ocfs2는 Oracle 에서 제공하는 리눅스&윈도우용 클러스터링 시스템입니다.

다른 Unix 운영체제는 독자적은 클러스터링 시스템을 갖고 있기 때문에 ocfs가 필요가 없긴 하죠.


해당 실습 환경은 RAC구축을 위한 Oralce Linux 5.9 64bit 서버 2대 입니다.

VMWare에서 진행 했으며, 기본적인 설정 사항은 5.9 64bit에 RAC 설치와 동일하지만,

스토리지 부분은 그냥 Ocfs 마운트를 위해 fdisk로 파티션을 생성한 상태로 까지만 놔둡니다.


linux 5.x 버전 대에서는 ocfs2 , ocfs-tools 설치

linux 6.x 버전 대에서는 ocfs-tools 만 설치 (Oracle 리눅스만 지원, RHEL 지원 안함)



현재 이 서버에는 /dev/sdb, /dev/sdc 두 개의 파티션이 공유 파티션으로 묶여 있습니다.

리눅스에서 스토리지 공유를 위해 멀티 패스를 많이 쓰는데, ocfs가 더 나은거 같습니다.

멀티 패스는 양쪽 노드에 단순 파티션만 마운트 될뿐 ext3,4로 포맷 했을시 양쪽 노드에서 동시에 읽고 쓰는게 안됩니다.


o2cb 설정


# service o2cb configure

Configuring the O2CB driver.

This will configure the on-boot properties of the O2CB driver.
The following questions will determine whether the driver is loaded on
boot.  The current values will be shown in brackets ('[]').  Hitting
ENTER without typing an answer will keep that current value.  Ctrl-C
will abort.

Load O2CB driver on boot (y/n) [n]: y
Cluster stack backing O2CB [o2cb]: 
Cluster to start on boot (Enter "none" to clear) [ocfs2]: ocfscluster1
Specify heartbeat dead threshold (>=7) [31]: 
Specify network idle timeout in ms (>=5000) [30000]: 
Specify network keepalive delay in ms (>=1000) [2000]: 
Specify network reconnect delay in ms (>=2000) [2000]: 
Writing O2CB configuration: OK
Loading filesystem "configfs": OK
Mounting configfs filesystem at /sys/kernel/config: OK
Loading stack plugin "o2cb": OK
Loading filesystem "ocfs2_dlmfs": OK
Creating directory '/dlm': OK
Mounting ocfs2_dlmfs filesystem at /dlm: OK
Setting cluster stack "o2cb": OK
Checking O2CB cluster configuration : Failed


처음에는 Checking O2CB cluster configuration : Failed 부분이 Failed 나오는게 정상입니다.


ocfs 클러스터를 생성합니다.

클러스터의 이름은 ocfscluster1 입니다.


# o2cb_ctl -C -n ocfscluster1 -t cluster -a name=ocfscluster1


그리고 각 노드를 클러스터에 등록합니다.


# o2cb_ctl -C -n ocfsrac1 -t node -a number=0 -a ip_address=192.168.118.171 -a ip_port=7777 -a cluster=ocfscluster1
# o2cb_ctl -C -n ocfsrac2 -t node -a number=1 -a ip_address=192.168.118.172 -a ip_port=7777 -a cluster=ocfscluster1


그러고 나면 아래와 같은 설정 파일이 생성 됩니다.

# cat /etc/ocfs2/cluster.conf 
node:
        ip_port = 7777
        ip_address = 192.168.118.171
        number = 0
        name = ocfsrac1
        cluster = ocfscluster1

node:
        ip_port = 7777
        ip_address = 192.168.118.172
        number = 1
        name = ocfsrac2
        cluster = ocfscluster1

cluster:
        node_count = 2
        heartbeat_mode = local
        name = ocfscluster1


o2cb 설정


# service o2cb configure

Configuring the O2CB driver.

This will configure the on-boot properties of the O2CB driver.
The following questions will determine whether the driver is loaded on
boot.  The current values will be shown in brackets ('[]').  Hitting 
ENTER without typing an answer will keep that current value.  Ctrl-C
will abort.

Load O2CB driver on boot (y/n) [y]: y
Cluster stack backing O2CB [o2cb]: 
Cluster to start on boot (Enter "none" to clear) [ocfscluster1]: 
Specify heartbeat dead threshold (>=7) [31]: 
Specify network idle timeout in ms (>=5000) [30000]: 
Specify network keepalive delay in ms (>=1000) [2000]: 
Specify network reconnect delay in ms (>=2000) [2000]: 
Writing O2CB configuration: OK
Setting cluster stack "o2cb": OK
Registering O2CB cluster "ocfscluster1": OK
Setting O2CB cluster timeouts : OK


그리고 마운트 할 디스크를 ocfs2 방식으로 포맷을 해줍니다.(포맷은 1번 노드 에서만 하면 됩니다.)


# mkfs.ocfs2 -b 4K -C 32K -N 2 -L "OCFS2Filesystem" /dev/sdb1


-N 옵션의 숫자 값은 다중 접속수를 의미하며, 확장시에는 tunefs.ocfs2 로 변경 가능


# mkdir /oradata01
# mount -t ocfs2 -o datavolume,nointr /dev/sdb1 /oradata01
# chown oracle:dba /oradata01


fstab 등록하여 자동으로 마운트 시키기


# vi /etc/fstab

LABEL=/                 /                       ext3    defaults        1 1
LABEL=/oracle           /oracle                 ext3    defaults        1 2
LABEL=/boot             /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
LABEL=SWAP-sda3         swap                    swap    defaults        0 0
/dev/sdb1               /oradata1               ocfs2   _netdev,datavolume,nointr        0 0         <--- 추가


nointr 옵션을 주는 이유는 한쪽노드에서 파일을 사용할때, 파일 작업을 가로채기를 할 수 없게 하기 위함.

_netdev는 네트워크가 부팅된 후에 마운트 시키는 옵션.


oracle 10g는 nointr 옵션을 기본으로 사용합니다.


여기까지의 작업을 2번 노드에서도 반복해줍니다.

재부팅 후 제대로 마운트 되는지 확인해 봅니다.


# service o2cb status

Driver for "configfs": Loaded
Filesystem "configfs": Mounted
Stack glue driver: Loaded
Stack plugin "o2cb": Loaded
Driver for "ocfs2_dlmfs": Loaded
Filesystem "ocfs2_dlmfs": Mounted
Checking O2CB cluster "ocfscluster1": Online
  Heartbeat dead threshold: 31
  Network idle timeout: 30000
  Network keepalive delay: 2000
  Network reconnect delay: 2000
  Heartbeat mode: Local
Checking O2CB heartbeat: Active


service o2cb online/offline 명령으로 ocfs2 볼륨을 on/off 시킬수 있습니다.

ocr과 votedisk 만들기


dd if=/dev/zero of=/oradata1/oracrs/ocrfile bs=8192 count=12800
dd if=/dev/zero of=/oradata1/oracrs/votingdisk bs=8192 count=2560



HP-UX Oracle 11g Setting

Oracle Version 11.2

HP OS
(32- and 64-bit stands for Oracle not OS)

HP-UX 11i V3 patch Bundle Sep/ 2008 (B.11.31.0809.326a) or higher (Part Number E10851-01)

HP Disk Space

1.7G database
6.9 G Software

HP RAM

Database: minimum 1GB, recommended 2GB

Grid Infrastructure for standalone server: minimum 1.5GB (plus another 1GB if installing Database too), recommended 4GB

HP swap

Between 4 GB and 8 GB then 2 times RAM.
Between 8 GB and 32 GB then 1.5 times RAM.
More than 32 GB then 32 GB RAM.

HP tmp

1GB

HP jdk & JRE

HPUX JDK 6.0.05, HPUX JDK 5.0.15

NOTE: The JDK version included with 11.2.0.3 on HP-UX Itanium (1.5.0.23) is not compatible with Itanium 2 model 9310 processors. Please refer to the statement at the end of both Note:404843.1 and Note:552358.1. To workaround the issue, download JDK 1.5.0.24 or higher and use the "./runInstaller -jreLoc ..." syntax to start the 11.2.0.3 installation.

HP Patches/
Packages


"s/b" indicates superseded by

See Note 43507.1 for other applicable patches.

For HP-UX 11i V3 (11.31):
PHCO_40381 11.31 Disk Owner Patch
PHCO_41479 11.31 (fixes an 11.2.0.2 ASM disk discovery issue)
PHKL_38038 VM patch - hot patching/Core file creation directory
PHKL_38938 11.31 SCSI cumulative I/O patch
PHKL_39351 Scheduler patch : post wait hang
PHSS_36354 11.31 assembler patch
PHSS_37042 11.31 hppac (packed decimal)
PHSS_37959 Libcl patch for alternate stack issue fix (QXCR1000818011)
PHSS_39094 11.31 linker + fdp cumulative patch
PHSS_39100 11.31 Math Library Cumulative Patch
PHSS_39102 11.31 Integrity Unwind Library
PHSS_38141 11.31 aC++ Runtime
Pro*C/C++, Oracle Call Interface, Oracle C++
Pro*C/C++, Oracle Call Interface, Oracle C++ Call Interface, Oracle XML Developer's Kit (XDK):-
Patch for HP-UX 11i V3 (11.31) on HP-UX Itanium:-
PHSS_39824 - 11.31 HP C/aC++ Compiler (A.06.23) patch
PHKL_40941 - Scheduler patch : post wait hang

HP Kernel Settings

Refer to the 11GR2 HP-UX Install Guide for steps to do this. Section 2.8 Configuring Kernel Parameters on HP-UX Systems.Part Number E24336-02.

 

 

# 커널 변경 방법


For HP-UX PA RISC:

1.   Follow these steps:

a.   Optionally, set the DISPLAY environment variable to specify the display of the local system:

§  Bourne, Bash, or Korn shell:

§  # DISPLAY=local_host:0.0 ; export DISPLAY

§  C shell:

§  # setenv DISPLAY local_host:0.0

b.   Start System Administration Manager (SAM):

c. # /usr/sbin/sam

d.   Choose the Kernel Configuration area, then choose the Configurable Parameters area.

e.   Check the value or formula specified for each of these parameters and, if necessary, modify that value or formula.

If necessary, refer to the SAM online Help for more information about completing this step.

2.   If necessary, when the system restarts, log in and switch user to root.


For HP-UX Itanium:

1.   Enter the following command to start the kcweb application:

2. # /usr/sbin/kcweb -F

3.   Check the value or formula specified for each of these parameters and, if necessary, modify that value or formula.

If necessary, refer to the kcweb online Help for more information about completing this step.


Parameter

Minimum Value

executable_stack

0

ksi_alloc_max

32768

max_thread_proc

1024

maxdsiz

1073741824 (1 GB)

maxdsiz_64bit

2147483648 (2 GB)

maxfiles

1024

maxfiles_lim

32767

maxssiz

134217728 (128 MB)

maxssiz_64bit

1073741824 (1 GB)

maxuprc

3686

msgmni

4096

msgtql

4096

ncsize

35840

nflocks

4096

ninode

34816

nkthread

7184

nproc

4096

semmni

4096

semmns

8192

semmnu

4092

semvmx

32767

shmmax

1073741824

shmmni

4096

shmseg

512

tcp_largest_anon_port

65500

udp_largest_anon_port

65500

 

Oracle 11g RAC 설치 - 2. Openfiler 로 스토리지 구성

1. Openfiler 설치


Openfiler 2.99 64-bit


리눅스와는 설정이 다르기떄문에 VMware 자체에서의 RAC구성이 힘들기 때문에

Openfiler로 NAS를 구축해서, iscsi 기능을 이용해 스토리지를 구성합니다.

기본적으로 리눅스와 베이스가 같기 때문에 Red Hat 5 64-bit 로 설정하면 됩니다.


VMware 하드웨어 구성시

RAM 512

HDD 7GB (기본설정, store virtual disk as a single file)

HDD 20GB (All locate disk space now, store virtual disk as a single file 옵션으로 설치)










두번째 디스크는 파티션 설정을 안합니다.






https://192.168.20.60:446 (스크린샷은 ip가 틀림) 으로 접속을 하면 웹로그인 화면이 나옵니다.



openfiler // password 를 입력하면 관리화면으로 들어갑니다.



서비스에 가서 iSCSI Target 부분을 Enable, Running 시켜 줍니다.



그다음에 상단 System 탭에 가서 하단에 Network Access 부분에 rac-priv의 주소를 업데이트 해줍니다.



Volume 탭으로 가서 가운데 보이는 create new physical volumes 링크를 클릭

/dev/sdb 클릭



Physical volume 선탣해서 create 버튼을 누릅니다.


우측 패널의 Volume Group을 누르면 그룹을 지정해 줄 수 있는데 rac로 그룹을 만듭니다.


우측 패널의 Add volume 을 누르면 위같은 화면 이뜨는데, 각각의 디스크를 설정해 줄수 있습니다.

OCR_VOTE01 1GB

OCR_VOTE02 1GB

OCR_VOTE03 1GB

ASM01 5GB

ASM02 5GB

ASM03 5GB

spfile 1GB

이런식으로 디스크를 추가 해줍니다.




우측 패널에 iSCSI Target 버튼을 눌그고 3가지 설정을 해줍니다.



add 클릭



map 버튼을 눌러서 모두 맵핑



allow 설정후 업데이트



root 로 로그인후에


# vi /etc/initiators.dney


iqn 으로 시작하는 부분 앞에 주석처리(#)를 해줍니다.

#iqn~~~


rac노드에서


# svcs *iscsi*
# iscsiadm modify discovery --sendtargets enable
# iscsiadm list discovery
# iscsiadm add discovery-address 192.168.30.60
# iscsiadm list discovery-address
# iscsiadm list target
# devfsadm -C -i iscsi


2. 디스크세팅


# format
Specify disk (enter its number): 디스크선택
(경로에 openfiler가 있는 디스크는 모두 작업해야합니다.)


0번은 제외
디스크 선택 후
format> fdisk

y 입력

format> part
partition> 0
Enter partition id tag[unassigned]: 엔터
Enter partition permission flags[wm]: 엔터
Enter new starting cyl[0]: 3  (0이나 엔터를 입력하게 되면, clusterware설치가 불가능합니다.)
Enter partition size[0b, 0c, 3e, 0.00mb, 0.00gb]: $
partition> label
Ready to label disk, continue? y
partition> quit
format> disk
디스크 선택
이후 모든 openfiler가 있는 디스크를 동일하게 작업하세요


# chown -R oracle:oinstall /dev/rdsk


설정이 완료 되면 RAC1을 종료하고 파일을 복사하여 RAC2부분으로 만듭니다.


Oracle 11g RAC 설치 - 1. Solaris 10 설치

Test 환경 -  VMWare 2013, Solaris10-u11-ga-x86


1. VMWare 설정 및 OS 설치



솔라리스 64bit를 설정해주고, 쭉쭉 넘어가면 됩니다.



하드디스크는 넉넉하게 30GB로 잡아줍니다.



잡다스러운 하드웨어는 다 빼버리구요.

후에 NIC를 추가 해줘야하는데, 처음부터 2개를 장착하고 시작하면 host-only의 nic를 아예 인식 못하는 경우가 있으니 설치 완료후에 추가해 줍니다.




4번을 선택










사용 할 ip 주소를 넣어주면 됩니다.







vmware에서 할당된 게이트웨이주소 입니다.






























사용할 언어셋 선택, KOREAN UTF-8을 사용하거나 EUC KR을 선택






이 화면에서 F2를 눌렀을때 디바이스가 안잡힌다면 F4를 눌러 잡아주면 됩니다.




Swap은 4G 주면 넉넉합니다.

11g에서 3GB이상 원하기 때문에 차후에 추가해줄수는 있으나 번거로우니 미리 설정하고 넘어갑니다.







Java 콘솔로 접속한 모습입니다.

VM tool을 설치하면 작업하기가 편하니 VM tool 설치 후 shutdown


 

NIC를 Host-only로 추가해줍니다.

네트워크 카드를 인식시켜야 하는데 다음과 같은 절차를 따릅니다.


# devfsadm -Cv
새로운 장치를 인식.

# cat /etc/path_to_inst
(VMware상에서 인식되는 NIC는 PCN이나 e1000g 형태로 인식.)


장치만 인식하고 적용 되지 않으때 강제로 적용.

# ifconfig e1000g1 plumb

# ifconfig e1000g1 192.168.30.31 netmask 255.255.255.0 broadcast + up


# vi /etc/hosts


192.168.20.31 rac1

192.168.20.32 rac2

192.168.30.31 rac1-priv

192.168.30.32 rac2-priv

192.168.20.41 rac1-vip

192.168.20.42 rac2-vip

192.168.20.51 rac-cluster-scan

192.168.20.60 openfiler


vmware 환경이기 때문에 openfiler를 설치해 iscsi 타겟을 이용해 스토리지로 사용합니다.

그래서 따로 잡아주는 겁니다.


새로운 nic2의 호스트 이름을 할당.
# vi /etc/hostname.e1000g1
rac2-priv



2. Oracle 설치 전 세팅


User생성


# groupadd oinstall
# groupadd dba
# useradd -d /export/home/oracle -m -s /bin/bash -g oinstall -G dba oracle
# passwd -r files oracle
# mkdir -p /oracle/base
# mkdir -p /oracle/grid
# mkdir -p /oracle/pkg

설치전 필요한 패키지 확인

# pkginfo -i SUNWarc SUNWbtool SUNWhea SUNWlibC SUNWlibms SUNWsprot SUNWtoo SUNWi1of SUNWi1cs SUNWi15cs SUNWxwfnt

# cd /cdrom/sol_10_113_x86/Solaris_10/Product/
# cp -r SUNWi1cs /var/spool/pkg
# cp -r SUNWi15cs /var/spool/pkg
# pkgadd

# projadd -U oracle user.oracle
# projmod -s -K "project.max-sem-ids=(priv,128,deny)" user.oracle
# projmod -s -K "project.max-shm-ids=(priv,128,deny)" user.oracle
# projmod -s -K "process.max-sem-nsems=(priv,512,deny)" user.oracle
# projmod -s -K "project.max-shm-memory=(priv,4294967296,deny)" user.oracle
# projmod -s -K "process.max-file-descriptor=(priv,65536,deny)" user.oracle

# vi /etc/system
set max_nprocs = 30000
set maxuprc = 16384
set rlim_fd_max = 4096
set rlim_fd_cur = 1024

설정확인

# su - oracle
Sun Microsystems Inc.   SunOS 5.10      Generic January 2005

$ id -p
uid=100(oracle) gid=100(oinstall) projid=100(user.oracle)

$ more /etc/project
system:0::::
user.root:1::::
noproject:2::::
default:3::::
group.staff:10::::
user.oracle:100::::process.max-file-descriptor=(priv,65536,deny);process.max-sem-nsems=
(priv,256,deny);project.max-sem-ids=(priv,100,deny);project.max-shm-ids=(priv,100,deny)
;project.max-shm-memory=(priv,4294967296,deny)

사용자 Profile 수정

# su - oracle

$ vi .profile
export EDITOR=vi
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/oracle/base
export ORACLE_SID=rac1
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export CRS_HOME=/oracle/grid/crs_1
export ORA_CRS_HOME=/oracle/grid/crs_1
export PATH=/usr/sbin:$PATH:$ORACLE_HOME/bin:$CRS_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib:$CRS_HOME/bin
export PATH=$ORACLE_HOME/bin:$PATH
export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949
export NLS_DATE_FORMAT='RRRR-MM-DD:HH24:MI:SS'


# chown -R oracle:oinstall /oracle

  1. SOL_10_113_X86은 솔라리스 10인가요 아니면 솔라리스 10g인가요?

리눅스기반 11g에서 Sample schema 수동 설치

DBCA로 DB를 생성할때 일반이 아닌 커스텀으로 생성 하게 되면, 샘플스키마가 설치 되지 않습니다.

커스텀은 대부분 실제 업무에서 설치하는 방식이기도 하구요.

JVM이나 XML모듈을 DB 생성과 동시에 올리기 위해서 커스텀 방식의 DB 구축을 많이 하지요.

물론 JVM설치나 XML 설치도 오라클 내에 설치 SQL이 들어 있기 때문에 차후에 수동으로 설치가 가능합니다.


샘플 스키마는 배우는 입장에서 데이터를 만져 볼수 있도록 해주는 실습 예제로 보시면 됩니다.


http://www.hanb.co.kr/web/example/1547/


에서 샘플 스키마를 다운로드 합니다.


이 파일이 저장되는 경로는 $ORACLE_HOME/demo/schema/ 입니다.

이미 HR 샘플은 들어 있기에 압축을 풀때 덮어 쓸거냐 묻는데요. 그냥 None[N] 으로 없는것만 압축을 풀어주면 됩니다.


커스텀 설치시 examples 테이블 스페이스가 없기 때문에 테이블 스페이스 생성.


SQL> create tablespace examples datafile '자신의 datafile 경로/examples01.dbf' size 400m autoextend on;


으로 생성해주고


SQL> @/oracle/base/product/11g/demo/schema/mksample.sql


을 실행주면 비번을 묻는 화면이 나옵니다.



specify password for SYSTEM as parameter 1:
Enter value for 1: (엔진 설치 시 설정한 패스워드 입력)

specify password for SYS as parameter 2:
Enter value for 2: (엔진 설치 시 설정한 패스워드 입력)

specify password for HR as parameter 3:
Enter value for 3: hr

specify password for OE as parameter 4:
Enter value for 4: oe

specify password for PM as parameter 5:
Enter value for 5: pm

specify password for IX as parameter 6:
Enter value for 6: ix

specify password for SH as parameter 7:
Enter value for 7: sh

specify password for BI as parameter 8:
Enter value for 8: bi

specify default tablespace as parameter 9:
Enter value for 9: examples

specify temporary tablespace as parameter 10:
Enter value for 10: temp

specify log file directory (including trailing delimiter) as parameter 11:
Enter value for 11: /oracle/base/product/11g/demo/schema/log


이렇게 넣어주면 스키마 생성이 완료 됩니다.

CentOS4.8 + Oracle 9i R2 설치 (9.2.0.4 - 32bit)

현재 CentOS 4버전은 서비스가 끝나서 미러사이트에서 받을수가 없습니다.
CentOS 4를 받을수 있는 곳. http://vault.centos.org

CentOS4를 받아서 설치 - 설치 옵션은 RHEL4와 비슷하니까 참고.

CentOS4를 깔면 이미 yum이 설치 되어 있지만, 서비스가 종료된 상태라 사용 할 수 없습니다.
yum 역시 vault 사이트에서 이용 가능하기 때문에 이것의 repo를 구축 해주도록 합니다.

# rm -f /etc/yum.repos.d/CentOS-Base.repo
# vi /etc/yum.repos.d/CentOS-Base.repo

[base]
name=CentOS-$releasever - Base
baseurl=http://vault.centos.org/4.9/os/$basearch/
gpgcheck=1

[update]
name=CentOS-$releasever - Updates
baseurl=http://vault.centos.org/4.9/updates/$basearch/
gpgcheck=1

설정해 주고

RPM-GPG-KEY-CentOS-4 키를 받아서 (http://dbdevil.tistory.com/10 맨 밑에 있음)

# rpm --import RPM-GPG-KEY-CentOS-4

키를 인증해줍니다.

# yum update

로 각종 패키지들의 최신 버전으로 업그레이드를 해줍니다.
gcc cpp 등은 업데이트 진행시 같이 업그레이드 됩니다.
커널은 2.6.9-103 버전으로 업데이트 됩니다. (.bash_profile 옵션에서 export LD_ASSUME_KERNEL=2.4.19 불필요)

업데이트가 끝나면 재부팅해주고, 구동시 smp 커널은 멀티 CPU 사용시 사용하는 커널이고,
딱히 서버의 cpu가 멀티가 아닌 경우엔 el 로 부팅해 줍니다.
재부팅 후에도 el 로 부팅하게 grub.conf 수정해주면 좋습니다.

그리고 나서 필수 설치 패키지를 설치 하고, 파라메터 값을 수정해 줍니다.


아래는 오라클 설치전 필수 설치 패키지 입니다.

의존 어쩌구 하면 그냥 --nodeps --force 찍고 설치해버리면 됩니다.


# vi /etc/sysctl.conf

kernal.shmmax = 1073741824
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000


# vi /etc/security/limits.conf

oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384

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


# vi /home/oracle/.bash_profile

export EDITOR=vim
export ORACLE_BASE=/home/oracle
export ORACLE_HOME=$ORACLE_BASE/product/9204
export ORACLE_OWNER=oracle
export ORACLE_TERM=xterm
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH
export PATH=$PATH:$ORACLE_HOME/bin:/usr/bin:/usr/sbin:$ORACLE_HOME/Apache/bin:$PATH
export NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949
export LANG=C
export THREADS_FLAG=native

export ORACLE_SID=<자신의 SID를 적어줍니다>


패치설치

# unzip p3006854_9204_LINUX.zip
# cd 3006854/
# sh rhel3_pre_install.sh

# su - oracle

압축 풀기

$ zcat ship_9204_linux_disk1.cpio.gz | cpio -idmv && zcat ship_9204_linux_disk2.cpio.gz | cpio -idmv && zcat ship_9204_linux_disk3.cpio.gz | cpio -idmv

오라클 설치 파일을 받을때 oracle 계정으로 받아야 chown 작업 없이 진행 가능합니다.
root 로 받았다면 권한이 root 일테니 chown 으로 oracle로 바꿔주세요.


오라클 계정으로 xwindow에 로그인을 하던가, root에서 xhost +local:oracle 혹은 display 권한을 줘서 오라클을 설치 합니다.
설치는 되도록 software only 옵션으로 엔진만 설치 합니다.

설치가 끝나도 리스너 구동 프로그램인 netca와 dbca가 안되는데...

/opt/oracle/jre/1.1.8/bin/../lib/i686/green_threads/libzip.so: symbol errno, version GLIBC_2.0 not defined in file libc.so.6 with link time reference (libzip.so)
Unable to initialize threads: cannot find class java/lang/Thread
Could not create Java VM

이런 비슷한 에러가 뜰겁니다.

그럴경우 root 계정에서

# cd $ORACLE_HOME
# rm JRE
# ln -s $ORACLE_BASE/jre/1.3.1 JRE
# cd JRE/bin
# ln -s java jre
# cd i386/native_threads/
# ln -s java jre

설정을 해줍니다.

# netca

로 리스너를 생성해주고,
DBCA로 db를 새로 구축하거나, 기존의 DB를 수동으로 잡아주거나 알아서 하면 됩니다.

만약 9.2.0.8 버전으로 패치할 예정이라면 이 모든 작업을 마치고 패치 하시기 바랍니다.
이렇게 까지 하면 설치 끝~


9i의 데이터를 불완전 복구를 할 일이 있어서, 9i를 추가적으로 설치하면서 작성한 메뉴얼입니다.
9i가 클론DB가 안되서 같은 서버에서 두개의 오라클 프로세서를 올리는게 불가능하더군요.
그래서 백업본과 아카이브를 옮겨서 시간 기반 불완전 복구에 사용한 서버입니다.

  1. 비밀댓글입니다

CentOS 5.8 64bit에 Oracle 11g ASM 방식 Standalone 설치 2.설치 및 DB생성

그리드 웨어 설치는 p10098816_112020_Linux-x86-64_3of7.zip 파일의 압축을 풀면 나오는 grid 폴더에서 runInstaller를 실행 하면 됩니다.



두번째 옵션이 ASM 단독 서버 설치 입니다.










세팅에 별무리가 없었다면 다이렉트로 넘어갑니다.

설치가 끝나고  grid가 설치된 폴더의 bin 폴더로 가서 asmca를 실행 시켜서 잘뜨면 완료.


이걸로 설치 끝.

이제 DB 엔진을 설치하면 됩니다.


엔진 설치는 별 어려움 없으니 패스.


DBCA 설정에서 ASM 을 구성 해줘야하는데 

asmca 를 구동시켜서 ASM 디스크 설정을 잡아줘야 합니다.




create 버튼을 눌러 확장으로 설정을 해서 asm01~02는 ASM 디스크로 설정, 03은 복구 영역을 지정을 할 것입니다. 






ASM 으로 지정




프리 사이즈 만큼 복구 영역으로 지정해줍니다.





각종 설정을 해주고 끝

DB 생성을 하면 겁나 오래걸립니다....

11g dbca 가 10g 보다 4배는 더 걸리는것 같네요...

CentOS 5.8 64bit에 Oracle 11g ASM 방식 Standalone 설치 1.설치 세팅

RAC 구성을 하지 않고 ASM 만 구성하는 방식입니다.

ASM을 근래들어 많이 쓰고 있기도 하고, 굳이 RAC를 구성하지 않아도 여러가지 장점이 있기 때문에 설치해보도록 합니다.


CentOS가 무료기 때문에 많은 업체에서 설치하고 있지만, CentOS 에서는 ASM 모듈이 안올라오는데 이걸 올리려면 몇가지 사전 작업을 해줘야 합니다.

우선 Public Oracle yum repo 를 추가해서 커널의 업그레이드를 해줘야 합니다.


Public Oracle yum repo 설치


# yum install oracleasm


명령어를 입력하면 kernel-uek 및 여러가지를 설치 한다고 나옵니다.

CentOS가 RedHat Enterprise의 커널을 사용하는데 uek 커널은 Oracle linux server의 커널입니다.

uek 커널에서 MySQL을 구동시에 레드햇 커널보다 9배나 높은 성능을 벤치마킹에서 보였다고 합니다.

즉, 오라클 DB에서도 좀더 나은 성능을 구현해주겠지요.


커널 설치가 끝나면 init 6 재부팅을 하고나서 uek 커널로 부팅을 해줘야 하고, 계속 설치를 진행합니다.


# yum -y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat glibc-headers unixODBC unixODBC-devel pdksh libXp libXp-devel


기존의 패키지만 설치 해주는 것이 아니라 추가로 설치 해줘야하는 패키지가 있습니다.


Public Oracle YUM repo를 설치 했다면


# yum -y install ocfs2 ocfs2-tools ocfs2-console oracleasm oracleasmlib oracleasm-support


이렇게 설치해주면 되는데, 만약 안된다면 


http://www.oracle.com/technetwork/server-storage/linux/downloads/rhel5-084877.html


https://oss.oracle.com/index.html


여기서 커널에 맞는 패키지를 찾아서 설치합니다.


파라메터 값 설정


/etc/hosts

<ip> <hostname>         #설치하는 리눅스의 ip와 호스트네임을 적는다.


/etc/sysctl.conf

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 4180152320

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 4194304

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048586


/etc/security/limits.conf

grid    soft    nproc   2047

grid    hard    nproc   16384

grid    soft    nofile  1024

grid    hard    nofile  65536

oracle    soft    nproc    2047

oracle    hard    nproc    16384

oracle    soft    nofile    1024

oracle    hard    nofile    65536


/etc/pam.d/login

session    required    pam_limits.so


# groupadd oinstall

# groupadd dba

# groupadd oper

# useradd -g dba -G oinstall,oper oracle

# passwd oracle

# mkdir -p /oracle/base

# mkdir -p /oracle/grid

# chown -R oracle:dba /oracle


/home/oracle/.bash_profile

export PATH

export LANG=C

export EDITOR=vim

export ORACLE_BASE=/oracle/base

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db

export ORACLE_SID=DB의SID

export GRID_HOME=/oracle/grid

export ORACLE_TERM=xterm

export TMPDIR=/tmp

export TMP=/tmp

export TNS_ADMIN=$ORACLE_BASE/network/admin

export NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949

export PATH=$ORACLE_HOME/bin:$GRID_HOME/bin:/bin:/usr/bin:/sbin:/usr/ccs/bin:.:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/lib:/usr/loacl/lib

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib


※ Grid 설치시 ORACLE_HOME의 경로와 Gird의 설치 경로가 중복되지 않도록 설정을 권장하고 있습니다.
만약 ORACLE_HOME 이 /oracle/base/product/11.2.0/db 인데,
GRID_HOME이 /oracle/base/product/11.2.0/grid 또는 /oracle/base/product/11.2.0/crs 라면
Grid 의 경로가 ORACLE_BASE 를 포함하고 있어서 문제 발생.

마운트 된 HDD들을 ASM으로 묶는 작업을 할 것인데, fdisk로 파티셔닝은 되어 있어야 합니다.

# oracleasm configure -i                                          ## asm 환경설정
oracle
dba
y
y

# oracleasm init                                                      ## asm 모듈을 불러옵니다.
# oracleasm createdisk                                           ## 명령을 이용해서 ocr_vote01~03, asm01~03 디스크를 생성해줍니다.

ex>
# oracleasm createdisk ocr_vote01 /dev/sdb1
# oracleasm createdisk ocr_vote02 /dev/sdc1
# oracleasm createdisk ocr_vote03 /dev/sdd1
# oracleasm createdisk asm01 /dev/sde1
# oracleasm createdisk asm02 /dev/sdf1
# oracleasm createdisk asm03 /dev/sdg1
예제 이기 때문에 실무에서는 디스크 이름이라던가 sdb, vdb 등등.. 달라 질 수 있습니다.

# oracleasm scandisks
# oracleasm listdisks

# chown -R oracle:dba /dev/oracleasm

설정이 끝났습니다.

Grid ware를 설치 해야하기 때문에 

p10098816_112020_Linux-x86-64_1of7.zip
p10098816_112020_Linux-x86-64_2of7.zip
p10098816_112020_Linux-x86-64_3of7.zip

까지 내려 받습니다. 압축을 풀면 설치 준비가 끝.

CentOS 6.x 64bit에 Oracle 10g 설치하기

설치하지마세요...

제발...


설치해도 문제생김....


굳이 설치 하겠다면... CentOS 6버전에서 제공하는 모든 32bit/64bit 라이브러리 패키지 수동으로 강제 설치한 다음에....

설치하면 됩니다.


그후에...

EM 구동 안됨... 무슨수를 써도 EM구동 안되니까....


설치하지마세요....

  1. 공감.....서버 때려 부술번....

  2. centOS7에 oracle 11g 깔고있는데 서버 열번 때려부수고싶다가 이 글보고 위안얻고갑니다 ..

CentOS 6.x 64bit Oracle 11g R2 싱글 설치

※ 설치 전 주의사항


1. 리눅스 설치시, Oracle 설치 파티션 10GB정도를 따로 생성해준다.

2. 리눅스 설치시, 패키지 설치에서 Desktop에 놓고 하단 사용자 지정을 선택한다. 

3. 설치 후 selinux 설정 해제

4. 원격 설치를 위한 VNC 설정 (옵션)

5. tmpfs 사이즈 조정



※ 설치후 조치사항


11g 부터는 리스너를 구동시켜도 자동으로 listener.ora, tnsnames.ora 파일을 생성해주지 않기 때문에 

samples 폴더 안에 있는 파일들을 이용해서 수동으로 구성 해주어야 한다.



필요 패키지 설치


# yum -y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat glibc-headers unixODBC unixODBC-devel pdksh libXp libXp-devel


※ pdksh - yum으로 설치 안됨

  

pdksh-5.2.14-37.el5.i386.rpm

pdksh-5.2.14-37.el5.x86_64.rpm



파라메터 값 설정


/etc/hosts

<ip> <hostname>         #설치하는 리눅스의 ip와 호스트네임을 적는다.


/etc/sysctl.conf

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 4180152320

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 4194304

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048586


/etc/security/limits.conf
oracle    soft    nproc    2047
oracle    hard    nproc    16384
oracle    soft    nofile    1024
oracle    hard    nofile    65536

/etc/pam.d/login
session    required    pam_limits.so

# groupadd oinstall
# groupadd dba
# useradd -g oinstall -G dba oracle
# passwd oracle
# mkdir -p /oracle/base
# chown -R oracle.oinstall /oracle

/home/oracle/.bash_profile
export PATH
export LANG=C
export EDITOR=vim
export ORACLE_BASE=/oracle/base
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db
export ORACLE_SID=testdb
export TMPDIR=/tmp
export TMP=/tmp
export TNS_ADMIN=$ORACLE_BASE/network/admin
export NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949
export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/sbin:/usr/ccs/bin:.:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/usr/lib64:/lib:/usr/local/lib:/usr/local/lib64
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

싱글 설치기 때문에 1,2 번 파일만 받아서 설치 합니다.
p10098816_112020_Linux-x86-64_1of7.zip
p10098816_112020_Linux-x86-64_2of7.zip

CentOS 5 64bit 버전에 Oracel 10g R2 설치하기

실무에서 오라클을 설치하다보니 근래에는 CentOS를 많이 씁니다. 그중에도 5버전을 가장 많이 씁니다.

고객이 6버전에 10g를 설치 해달라고 할때도 있고, 5버전에 9i를 설치(신규는 9i가 거의 없고 주로 재설치) 혹은 5버전에 11g 다양한 환경에서 설치를 요구합니다.

가장 까다로운게 6버전에 10g 64bit 설치 였습니다.... hell...

또, 한글로 설치하기보다는 영문으로 설치하는 편이 좋더군요. 영문으로 쓰는데가 더 많기도 하구요.

 

지금 설치하는 CentOS는 영어를 기본으로 주고 설치한 것 입니다. 

 

기본패키지를 우선 적으로 설치합니다. 업데이트 할 패키지가 있으면 업데이트 하구요.

 

# yum -y install binutils compat-gcc-34 compat-libgcc-296 compat-libstdc++-296 compat-libstdc++-33 compat-db cpp gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make setarch libXp openmotif


CentOS는 워낙 Yum이 잘 되어 있기 때문에 패키지 설치가 그리 어렵지 않습니다.

CentOS 5 64bit 에서는 64비트 패키지만 업데이트 해도, 32비트 패키지가 같이 업데이트 되지만...

6버전 64비트는 그게 안되서 일일히 32비트 패키지를 설치 해줘야 합니다.

 

CentOS를 설치하고 나서 파라메터값 수정

환경 변수 설정


# vi /etc/sysctl.conf


kernel.shmall = 2097152                                       <--- 커널버전 2.6.18 이상부터는 주석 처리(리눅스상의 기본값을 쓰라는뜻)

kernel.shmmax = 2147483648                                <--- 커널버전 2.6.18 이상부터는 주석 처리(리눅스상의 기본값을 쓰라는뜻)

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 65536                                              <--- 커널버전 2.6.18 이상부터는 주석 처리(없어도 된다는 뜻, 그냥 입력해도 무방 )

net.ipv4.ip_local_port_range = 1024 65000

net.core.rmem_default = 4194304

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 262144


# /sbin/sysctl -p


# vi /etc/security/limits.conf


oracle soft    nproc 2047

oracle hard   nproc 16384

oracle soft    nofile  1024

oracle hard   nofile  65536


# vi /etc/pam.d/login


session required pam_limits.so


# groupadd dba

# useradd -g dba oracle

# passwd oracle


#vi /home/oracle/.bash_profile


export PATH
export LANG=C
export EDITOR=vim
export ORACLE_BASE=/home/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10g
export ORACLE_SID=testdb
export TMPDIR=$ORACLE_BASE/tmp
export TMP=$ORACLE_BASE/tmp
export TNS_ADMIN=$ORACLE_BASE/network/admin
export NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949
export ORA_NLS33=$ORACLE_HOME/occommon/nls/admin/data
export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/sbin:/usr/ccs/bin:.:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32:/usr/lib:/lib:/usr/loacl/lib
export SHLIB_PATH=$ORACLE_HOME/lib:/$ORACLE_HOME/lib32:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export PS1="[$ORACLE_SID:\u@\h:$PWD]\$ "                       <== 리눅스의 프롬프트를 변경해주는 명령 


작업 여건상 VNC로 원격 설치하는 경우가 많아 vnc-server를 설치하고

# vncpasswd

명령을 통해 VNC 접속 비번을 설정해줍니다.

 

# vi /etc/sysconfig/vncservers

 

VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1024x768 -nolisten tcp"

 

VNC의 기본 접속 포트는 5901입니다.

 

# /etc/init.d/vncserver start

 

그후에

 

# vi ~/.vnc/xstartup

 

unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc

 

앞의 주석을 제거해주고 gnome 환경을 사용하겠다면,

 

#twm &                     <==== 주석처리
gnome-session &       <==== 추가

해주면 된다.

 

# /etc/init.d/vncserver restart

 

VNC로 root계정으로 x-window에 로그인 하고 터미널을 연 후에

 

# xhost + local:oracle

# su - oracle

 

$ ./runIstaller

실행하면 OS 버전때문에 설치 할수 없다 나오는데,


 

# vi /etc/redhat-release

Red Hat Enterprise Linux ES release 4 (Nahant)

로 값을 변경해 줍니다.설치를 진행 하면 됩니다.

 

오라클 설치 압축파일 내용

오라클 11g 설치 파일을 다운 받게되면 7개의 압축 파일을 얻게 됩니다.

리눅스에 오라클 설치시에 파일을 VMware 쉐어링이나, WinSCP 같은 프로그램으로 이용해 복사하여야 하는데,

1번 부터 7번 까지 전부 복사해야할 필요가 없습니다.


어떤 압축 파일안에 어떤 프로그램이 들어있는지 알고 있으면 필요한 압축 파일만 복사하여 설치가 가능합니다.


p10404530_112030_LINUX_1of7.zip -> Database 설치파일

p10404530_112030_LINUX_2of7.zip -> Database 설치파일

p10404530_112030_LINUX_3of7.zip -> Grid infrastructure 

p10404530_112030_LINUX_4of7.zip -> Client

p10404530_112030_LINUX_5of7.zip -> Gateways

p10404530_112030_LINUX_6of7.zip -> Examples

p10404530_112030_LINUX_7of7.zip -> Deinstall


일반적인 system file 기반 단일 인스턴스 생성시에는 1,2번만 설치 해주시면 됩니다.

RAC 설치를 할때는 3번 까지 설치를 해주시면 됩니다.


10g는 현재 단종된 제품으로 새로 설치는 11g를 많이 합니다.

Oracle 11g Grid - ASM 방식 RAC 설치 - 3. 엔진 설치 및 DB 생성

오라클 엔진 설치


$  cd /oracle/software/database

$ ./runInstaller













설치 중간에 root 권한으로 root.sh를 실행 시켜주라고 나옵니다.

rac1, rac2 순으로 실행 시켜주면 완료 




ASMCA 구성


$ asmca



생성 버튼을 누릅니다.



ASM 디스크 2개를 골라서 디스크 그룹을 만들어 줍니다. ASM을 구성하려면 최소 두개 이상의 디스크가 필요 합니다.

남은 하나의 디스크는 플래시백 디스크로 구성합니다.




완료가 되면 다시 생성 버튼을 누르고





생성 되었습니다.



$ crs_stat -t


명령으로 구동 확인



DB 생성


$ dbca









찾아보기를 눌러 경로 지정을 해줍니다.




찾아보기를 눌러 경로 지정을 해줍니다.

플래시 경로를 지정해 줍니다.










DB 설정이 종료 되었습니다.


$ crs_stat -t




RAC TEST


$ crs_stop –f ora.rac.db

$ crs_start –f ora.rac.db



rac1에 oltp-service, rac2에는 fail-over용 생성


$ srvctl add service –d racdb –s oltp_service –r racdb1 –a racdb2


$ srvctl status service -d racdb -s oltp_service

Service oltp_service is running on instance(s) racdb1 


$ srvctl start service –d RAC –s oltp_service 



리스너 상태 조회


$ lsnrctl status



Oracle 11g Grid - ASM 방식 RAC 설치 - 2. Grid Infrastructure 설치

 Grid Infrastructure 는 양 노드간에 클러스터 구성을 잡아주는 프로그램 입니다.

9i, 10g 에서는 equipbalance를 직접 잡아줘야 했지만, 11g에서는 grid를 구성 함으로 그 과정을 생략 할 수 있습니다.


우선 설치 파일을 /oracle/install 폴더에 복사하고 나서 압축을 풀어 줍니다.

WinSCP 등을 이용하여 oracle 계정을 접속, 복사 해줍니다.


$ unzip p10098816_112020_LINUX_1of7.zip

$ unzip p10098816_112020_LINUX_2of7.zip

$ unzip p10098816_112020_LINUX_3of7.zip


$ su -


# cd /oracle/install/grid/rpm 

# rpm -ivh cvuqdisk-1.0.9-1.rpm


그리고 이 파일을 rac2에도 복사 해서 설치해 줍니다.


rac1]# scp /oracle/install/grid/rpm/cvuqdisk-1.0.9-1.rpm rac2:/oracle/


rac2]$ su -

rac2]# /oracle/cvuqdisk-1.0.9-1.rpm


그리고 설치가 완료 되면 rac1 에서 grid를 설치합니다.


$ ./runInstaller

























OS 패키지 때문에 뜨는 오류 이니까 그냥 확인을 누르고 다음으로 넘어갑니다.




클러스터 상태 확인


$ src_stat -t



Global Service Daemon(GSD) 가동


$ srvctl enable nodeapps -g

$ srvctl start nodeapps



$ ocrcheck



Grid Infrastructure 설치가 끝났습니다.


Oracle 11g Grid - ASM 방식 RAC 설치 - 1. 리눅스 설치 및 세팅

리눅스 설치


오라클 11g를 RAC 방식으로 설치하기 위해서는 우선 리눅스를 설치 해야하는데,

Oracle Enterprise Linux 5.6 버전을 이용해 설치 하도록 하겠습니다.


기본적으로 RHEL5 나 OEL5에는 설치가 잘됩니다. 다만, 같은 RHEL 5 기반인 Cent OS 에서는 다른 패치가 필요하다고 하는데,

그 패치를 구하는게 쉽지가 않습니다.

제가 5일 밤을 새가면서 CentOS에 패치를 하고 설치 해보려고 했으나 실패....


OEL5.6 버전으로 진행합니다.








HDD 파티션 분할


  /

 5000 MB

  /boot

 100 MB

  swap

 3072 MB (RAM 설정의 2~3배 가량 설정 해주는 것이 좋음)

  /home

 1000 MB

  /var  1000 MB
  /tmp

 2048 MB (11g 설치에 tmp 폴더는 2GB 이상 필요함)

  /oracle

 최대 가능한 용량까지 


11



VM웨어에서도 브릿지를 이용하지 않고 NAT와 Host Only에서 DHCP 설정이 아닌 고정 설정이 가능한데,

Edit → Virtual Network Editor 메뉴에 들어가서 직접 대역폭을 잡아주면 됩니다.



서브넷 부분을 잡아주고 나서 



네트워크 아답터를 커스텀으로 설정한 VMnet을 잡아주면 됩니다.

그러면 자신이 원하는 대역폭으로 네트워크 고정 ip 설정이 가능합니다. 


01








시스템 도구에서 옵션 패키지 버튼을 누르고 아래와 같이 파일을 추가 설치 해줍니다.


ocfs2-2.6.18-238.el5-1.4.6.-2.el5.i686

ocfs2-tools-1.6.3-2.el5.i386

ocfs2-console-1.6.3-2.el5.i386


oracleasm-2.6.18-238.el5-2.0.5.1.el5.i686

oracleasm-support-2.1.4-1.el5.i386


sysstat-7.0.2-3.el5_5.1.i386


















리눅스 설치가 끝나고 기본 해상도가 800x600 이니 VM Tool을 설치해서 자신의 모니터에서 작업하기 좋은 해상도로 변경 해줍니다.

OEL 기본 빨간 배경화면이 눈 아프면 탕화면에서 오른클릭 → 배경화면 변경 으로 바꿀수 있습니다.



리눅스에 오라클 설치 세팅 하기



0. Core Dump file을 생성하도록 설정


오라클 installer 는 설치하는 동안 core dump를 생성 할 수 있는지 여러 파일을 체크하게 됩니다. 

아래의 파일들이 해당 파일들입니다.


/proc/sys/kernel/suid_dumpable

/proc/sys/fs/suid_dumpable

/proc/sys/kernel/core_setuid_ok 


이 파일들에 설정되어 있는 값이 1 이어야 설치나 운영 중에 위험한 상황이 발생했을 때 그 내역을 core dump 파일에 저장을 해 두게 됩니다.

이 값들을 변경하여 core dump 를 만들게 하려면 아래와 같이 하면 됩니다.


- /etc/profile 수정 

변경 전 값 : ulimit –s –c 0 >  /dev/null 2 > &1 

변경 후 값 : ulimit –s –c unlimited > /dev/null 2 > &1 



- /etc/sysctl.conf 수정 

kernel.core_uses_pid = 1 (기본값)

fs.suid_dumpable = 1 추가하기



1. 설치 되어있어야 하는 패키지 목록


rpm -Uvh binutils-2.*

rpm -Uvh compat-libstdc++-33*

rpm -Uvh elfutils-libelf-0.*

rpm -Uvh elfutils-libelf-devel-*

rpm -Uvh gcc-4.*

rpm -Uvh gcc-c++-4.*

rpm -Uvh glibc-2.*

rpm -Uvh glibc-common-2.*

rpm -Uvh glibc-devel-2.*

rpm -Uvh glibc-headers-2.*

rpm -Uvh ksh-2*

rpm -Uvh libaio-0.*

rpm -Uvh libaio-devel-0.*

rpm -Uvh libgcc-4.*

rpm -Uvh libstdc++-4.*

rpm -Uvh libstdc++-devel-4.*

rpm -Uvh make-3.*

rpm -Uvh unixODBC-2.*

rpm -Uvh unixODBC-devel-2.*

rpm -Uvh numactl-0.9.8-*

rpm -Uvh munactl-devel-0.9.8-*



2. 파라미터 값 설정 하기


# vi /etc/hosts

   → 자신이 설정 해준 ip를 입력합니다. Private 를 제외하고는 같은 대역을 사용합니다.  

#Public

192.168.32.129    rac1

192.168.32.130    rac2


#Private

192.168.219.128    rac1-priv

192.168.219.129    rac2-priv


#VIP

192.168.32.11    rac1-vip

192.168.32.12    rac2-vip


#Grid SCAN

192.168.32.10    rac-cluster-scan


# vi /etc/sysctl.conf

   → 리눅스에게 오라클이 사용할 메모리 값을 지정해주는 부분입니다.

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 536870912 (64bit) or 2147483648 (32bit)

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

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 = 10485861


# /sbin/sysctl -p


# vi /etc/security/limits.conf


grid    soft    nproc    2047

grid    hard   nproc    16384

grid    soft    nofile     1024

grid    hard    nofile    65536

oracle    soft    nproc     2047

oracle    hard   nproc    16384

oracle    soft    nofile     1024

oracle    hard   nofile     65536


# vi /etc/pam.d/login


session required             pam_limits.so 


# vi /etc/modprobe.conf


options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180 


# modprobe -v hangcheck-timer


# vi /etc/rc.local


/sbin/modprobe hangcheck-timer rdate -s 203.248.240.140 


# mv /etc/ntp.conf /etc/ntp.conf.orig


   → RAC환경에서는 여러개의 시스템이 하나의 DB를 통해 서비스를 제공하게 되므로, 각 시스템사이의 시간이 제각각 들어가지 않도록 시간설정을 잘 해주셔야합니다. 이를 위해서 NTP(Network Time Protocol)를 설정하여 모든 Node들의 시간을 동기화 시키면 되었었는데, 11g R2에서 CTSS (Cluster Time Synchronization Service)라는 신기능이 추가되었습니다. 만약 NTP를 설정하지 않는다면 CTSS라는 서비스가 활성화되며 오라클이 알아서 특정 노드를 기반으로 시간을 동기화해주게 됩니다. 따라서 시간과 관련된 어떠한 작업도 하지 않아도 되게끔 변경되었습니다. 

  그런데 이 명령어를 입력하는 것은, Grid Infrastructure 설치 과정중에 NTP 설정이 되어있지 않지만, NTP와 관련된 파일이 존재하고 있다는 경고문구가 발생하기 때문입니다. 저랑 똑같이 설치진행중이시면 저렇게 입력하여 설정파일의 이름을 변경해주시면 되고, 아니시라면 애초에 저 파일이 없을 수도 있습니다. 그리고 그냥 놔두더라도 나중에 경고문구가 발생할 뿐이지 설치에 지장을 주지는 않습니다.


# service ntpd restart


# groupadd –g oinstall

# groupadd –g dba 

# useradd –g oinstall –G dba oracle 

# passwd oracle 


# mkdir -p /oracle/base/product/11g

# mkdir -p /oracle/grid_home

# chown -R oracle.oinstall /oracle

# chmod –R 755 /oracle


# su - oracle


$ vi .bash_profile


PATH=$PATH:$HOME/bin


export PATH

export EDITOR=vi

export ORACLE_HOSTNAME=rac1

export ORACLE_BASE=/oracle/base

export ORACLE_HOME=$ORACLE_BASE/product/11g

export ORA_CRS_HOME=/oracle/grid_home

export CRS_HOME=${ORA_CRS_HOME}

export GRID_HOME=/oracle/grid_home

export ORACLE_SID=rac1

export ORACLE_TERM=xterm

export LANG=ko_KR.UTF-8

export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

export PATH=/usr/sbin:$PATH

export PATH=$ORACLE_HOME/bin:$GRID_HOME/bin:$PATH

export PATH=/$PATH:${ORACLE_HOME}/bin:${CRS_HOME}/bin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib


불필요한 프로그램들 구동시 실행 시키지 않게 등록


# chkconfig --level 123456 xinetd off 

# chkconfig --level 123456 sendmail off 

# chkconfig --level 123456 cups off 

# chkconfig --level 123456 cups-config-daemon off 

# chkconfig --level 123456 smartd off 

# chkconfig --level 123456 isdn off 

# chkconfig --level 123456 iptables off 


# init 0




스토리지 추가와 ASM 설정



리눅스를 종료하여 ASM에 이용할 스토리지들을 추가하도록 합니다.









브라우저 버튼을 클릭해서 직접 경로를 잡아줘야 합니다.

그래야 rac2에서도 공용으로 사용 할수 있습니다.






Advanced... 버튼으 눌러 scsi 설정을 잡아줍니다.



이렇게 6번을 반복하여 6개의 디스크를 추가 합니다.


  ocr_vote01

 1GB 

  SCSI 1:0 

  ocr_vote02

 1GB

  SCSI 1:1

  ocr_vote03

 1GB

  SCSI 1:2

  asm01

 5GB

  SCSI 1:3

  asm02

 5GB

  SCSI 1:4

  asm03

 5GB

  SCSI 1:5
















rac1.vmx 파일을 메모장으로 열어서


disk.locking = "FALSE" 

diskLib.dataCacheMaxSize = "0" 

scsi1.sharedBus = "virtual"

scsi1:0.deviceType = "disk" 

scsi1:1.deviceType = "disk"

scsi1:2.deviceType = "disk" 

scsi1:3.deviceType = "disk" 

scsi1:4.deviceType = "disk"

scsi1:5.deviceType = "disk" 


을 추가 해줍니다.



그리고 ▶ 버튼을 눌러 리눅스를 구동 합니다.


추가 된 스토리지를 확인 합니다.


# ls -l /dev/sd*



# fdisk /dev/sdb 

# fdisk /dev/sdc 

# fdisk /dev/sdd 

# fdisk /dev/sde 

# fdisk /dev/sdf 

# fdisk /dev/sdg 



같은 방법으로 6개의 HDD의 파티션을 잡아 줍니다.



ASM 설정하기


# oracleasm configure –i

# oracleasm init



# oracleasm createdisk ocr_vote01 /dev/sdb1

# oracleasm createdisk ocr_vote02 /dev/sdc1

# oracleasm createdisk ocr_vote03 /dev/sdd1

# oracleasm createdisk asm01 /dev/sde1

# oracleasm createdisk asm02 /dev/sdf1

# oracleasm createdisk asm03 /dev/sdg1

 → ASM 공유 디스크 생성


# oracleasm scandisks

 → 스캔 작업


# oracleasm listdisks

 → 생성 리스트 확인



# chown –R oracle.oinstall /dev/oracleasm/


Node1 (rac1) 의 설정이 모두 끝났습니다. Node2 (rac2) 생성을 위해 리눅스를 종료합니다.


# init 0




Node2 (rac2) 구성하기


rac1 파일 두개를 rac2 폴더에 복사 해 줍니다.


rac1.vmdk

rac1.vmx





VM의 이름을 rac2 로 변경



OK를 누르고 리눅스를 구동.



복사 했다고 클릭해줍니다.


#neat


를 실행 시켜 ip 설정을 해줍니다.

eth0.bak, eth1.bak 는 체크를 해제하고 삭제 해줍니다.



hosts 파일에 설정한대로 rac2의 ip 설정을 해줍니다.

그리고 rac2를 재부팅 하고, rac1도 부팅 시켜 줍니다.


리고 클러스터웨어가 Node1에서 설치 했을 때, 양쪽에서 모두 설치 가능하게 관련 라이브러리를 설치 해줍니다.


Library 설치


Node1에서 작업


$ scp ~/pkg/clusterware/rpm/cvuqdisk-1.0.1-1.rpm rac2:~/  

 관련 RPM rac2로 복사


$ su -

 루트 권한으로 변경


# export CVUQDISK_GRP=dba

# rpm -Uvh /home/oracle/pkg/clusterware/rpm/cvuqdisk-1.0.1-1.rpm


Node2에서 작업


$ su -

 루트 권한으로 로그인


# export CVUQDISK_GRP=dba

# rpm -Uvh /home/oracle/cvuqdisk-1.0.1-1.rpm


equivalence 설정

SSH 공개키/개인키 생성

오라클 계정으로 로그인 후 모든 노드에서 각각 실행합니다.

Node1, 2

$ mkdir .ssh

$ ssh-keygen -t rsa
입력값 없이 엔터 -> 엔터 -> 엔터

$ ssh-keygen -t dsa
입력값 없이 엔터 -> 엔터 -> 엔터


Node1에서만 실행

$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

$ ssh rac2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
yes -> 노드 2 시스템 패스워드 입력

$ ssh rac2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
노드 2 시스템 패스워드 입력

$ scp ~/.ssh/authorized_keys rac2:~/.ssh/authorized_keys
노드 2 시스템 패스워드 입력
개인키가 저장된 파일(authorized_keys)을 노드2에 복사


Node1,2 에서 각각 실행
(암호를 묻는 과정이 나오지 않으면 올바르게 설정된 것임)

$ ssh rac1 date  
$ ssh rac1-priv date
$ ssh rac2 date
$ ssh rac2-priv date





Oracle 10g 싱글 silent 설치, 패치 및 DB 생성

기본 10g 설치의 리눅스 세팅에서 추가 해줘야하는 사항


# vi /etc/oraInst.loc

inventory_loc=/home/oracle/oraInventory

inst_group=dba


# chown oracle.dba /etc/oraInst.loc


원격 접속으로 설치 하기 위해서


# vi /home/oracle/.bash_profile


export DISPLAY=:0.0



rsp 파일 설정하기


# vi /home/oracle/database/response/enterprise.rsp


UNIX_GROUP_NAME="dba"

FROM_LOCATION="../stage/products.xml"

ORACLE_HOME="/home/oracle/product/10g"

ORACLE_HOME_NAME="OraHome"

n_configurationOption=3


Silent 설치


$ cd /home/oracle/database/

$ ./runInstaller -silent -force -waitforcompletion  -responseFile /home/oracle/database/response/enterprise.rsp




root 권한으로 아래 명령어를 실행시켜 줍니다.

# /home/oracle/product/10g/root.sh



설치가 완료 되었습니다.



Silent 패치하기


$ unzip p8202632_10205_LINUX.zip

$ cd Disk1


rsp 파일 설정 하기


$ vi /home/oracle/Disk1/response/patchset.rsp


UNIX_GROUP_NAME="dba" 

FROM_LOCATION="../stage/products.xml"

ORACLE_HOME="/home/oracle/product/10g" 

ORACLE_HOME_NAME="OraHome" 

DECLINE_SECURITY_UPDATES=true


$ ./runInstaller -silent -force -waitforcompletion -responseFile /home/oracle/Disk1/response/patchset.rsp




root 권한으로 아래 명령어를 실행시켜 줍니다.

#  /home/oracle/product/10g/root.sh




패치 완료



Silent DB 생성


rsp 설정하기


$ vi /home/oracle/database/response/dbca.rsp


GDBNAME = "testdb"

SID = "testdb" 

CHARACTERSET = "KO16MSWIN949"

NATIONALCHARACTERSET= "UTF8"


$ dbca -silent -templateName General_Purpose.dbc -responseFile /home/oracle/database/response/dbca.rsp


$ sqlplus / as sysdba

SQL > select status from v$instance;



DB가 생성 되었습니다.