DBA가 되고 싶은 병아리

ORACLE 11g RAC ASM 설치 본문

Oracle Study/RAC

ORACLE 11g RAC ASM 설치

미스틱스 2021. 4. 28. 13:33

Oracle 11g Install on Oracle Linux 6

 

- OS Package Groups selection

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

 

minimum 4GB swap

4GB RAM

 

 

 

 

1. 초기 환경설정

==================================

vi /etc/hosts

 

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

 

# Public

192.168.137.21  rac1

192.168.137.22  rac2

 

# Virtual

192.168.137.23  rac1-vip

192.168.137.24  rac2-vip

 

# Cluster Scan

192.168.137.25  cluster-scan

192.168.137.26  cluster-scan

192.168.137.27  cluster-scan

 

# Private

10.0.0.1        rac1-priv

10.0.0.2        rac2-priv

 

 

===================================

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   nofile    1024

oracle   hard   nofile    65536

oracle   soft   nproc    16384

oracle   hard   nproc    16384

oracle   soft   stack    10240

oracle   hard   stack    32768

 

grid   soft   nofile    1024

grid   hard   nofile    65536

grid   soft   nproc    16384

grid   hard   nproc    16384

grid   soft   stack    10240

grid   hard   stack    32768

====================================

vi /etc/pam.d/login

 

session    required     pam_limits.so

====================================

 

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

 

# Change this

*          soft    nproc    1024

 

# To this

* - nproc 16384

 

====================================

vi /etc/selinux/config

 

SELINUX=permissive

=====================================

방화벽 해제

#

service iptables stop

chkconfig iptables off

=====================================

/etc/fstab에 기존의 tmpfs 내용을 #를 사용해 주석처리하고 아래의 내용을 추가합니다.

vi /etc/fstab

tmpfs                    /dev/shm               tmpfs   size=2500m      0 0

 

=====================================

NTP 설정

 

#

service ntpd stop

chkconfig ntpd off

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

rm /var/run/ntpd.pid

 

 

2. NTP 를 사용할 경우 "-x" option 을 반드시 추가

 

#

vi /etc/sysconfig/ntpd

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

 

# service ntpd restart

=====================================

불필요 서비스 제거

 

chkconfig acpid off

chkconfig autofs off

chkconfig avahi-daemon off

chkconfig bluetooth off

chkconfig hidd off

chkconfig cups off

chkconfig cpuspeed off

chkconfig --level 245 gpm off

chkconfig hplip off

chkconfig ip6tables off

chkconfig iptables off

chkconfig irqbalance off

chkconfig isdn off

chkconfig lm_sensors off

chkconfig mcstrans off

chkconfig netfs off

chkconfig nfslock off

chkconfig pcscd off

chkconfig portmap off

chkconfig restorecond off

chkconfig rpcgssd off

chkconfig rpcidmapd off

chkconfig sendmail off

chkconfig smartd off

chkconfig yum-updatesd off

chkconfig xfs off

chkconfig microcode_ctl off

chkconfig iscsi off

chkconfig iscsid off

 

=====================================

oracle-validated

 

 

cd /etc/yum.repos.d/

vi  rhel-debuginfo.repo

[Server]

name=Server

baseurl=file:///mnt/Server

enabled=1

gpgcheck=0

 

yum search oracle

yum install oracle-validated

 

 

=====================================

 

사용자 생성 (root)

#

groupadd -g 5000 dba

useradd -u 500 -g dba oracle

useradd -u 501 -g dba grid

passwd oracle

passwd grid

 

=====================================

 

오라클 엔진 & GI 엔진 설치디렉토리 생성

 

mkdir -p /oracle/app/product/11.2.0/db_1

mkdir -p /grid/app

mkdir -p /grid/product/11.2.0

chown -R oracle:dba /oracle

chown -R grid:dba /grid

 

=====================================

oracle 유저 profile 변경

 

# su - oracle

$ vi .bash_profile

 

# Oracle Settings

TMP=/tmp; export TMP

TMPDIR=$TMP; export TMPDIR

 

ORACLE_HOSTNAME=rac1; export ORACLE_HOSTNAME

ORACLE_UNQNAME=racdb; export ORACLE_UNQNAME

EDITOR=vi; export EDITOR=vi

ORACLE_BASE=/oracle/app; export ORACLE_BASE

ORACLE_HOME=/oracle/app/product/11.2.0/db_1; export ORACLE_HOME

ORACLE_SID=racdb1; 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

export DISPLAY=192.168.137.1:0.0

 

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

 

if [ $USER = "oracle" ]; then

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

    ulimit -p 16384

    ulimit -n 65536

  else

    ulimit -u 16384 -n 65536

  fi

fi

 

alias ss='sqlplus "/as sysdba"'

alias sid='echo $ORACLE_SID'

stty erase ^H

 

=====================================

oragrid 유저 profile 변경

 

# su - oragrid

$ vi .bash_profile

 

# Oracle Settings

TMP=/tmp; export TMP

TMPDIR=$TMP; export TMPDIR

 

ORACLE_HOSTNAME=rac1; export ORACLE_HOSTNAME

ORACLE_UNQNAME=racdb; export ORACLE_UNQNAME

ORACLE_BASE=/grid/app; export ORACLE_BASE

ORACLE_HOME=/grid/product/11.2.0; export ORACLE_HOME

EDITOR=vi; export EDITOR=vi

ORACLE_SID=+ASM1; 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

export DISPLAY=192.168.137.1:0.0

 

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

 

if [ $USER = "grid" ]; then

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

    ulimit -p 16384

    ulimit -n 65536

  else

    ulimit -u 16384 -n 65536

  fi

fi

 

alias sa='sqlplus "/as sysasm"'

alias sid='echo $ORACLE_SID'

=====================================

root 유저 profile 변경

 

vi .bash_profile

 

# Oracle Settings

export GRID_HOME=/grid/product/11.2.0

export EDITOR=vi

export PATH=$PATH:$HOME/bin;$GRID_HOME/bin

export DISPLAY=192.168.137.1:0.0

 

=====================================

 

Install Guest Additions Oracle VM

 

cd /media/VBOXADDITIONS_4.2.6_82870

sh ./VBoxLinuxAdditions.run

 

=====================================

DNS 설정

 

vi /etc/resolv.conf

 "domain" "search"항목이 모두있는 경우 이 중 하나를 아래처럼 주석 처리해야 한다.

 

#domain localdomain

search localdomain

 

DNS restart

# service dnsmasq restart

 

DNS 자동 시작 등록

vi /etc/rc.local

service dnsmasq restart

 

nslookup 테스트

# nslookup cluster-scan

=====================================

 

OS 패키지 설치

 

# From Oracle Linux 6 DVD

 

cd /media/cdrom/Server/Packages

 

rpm -Uvh binutils-2.*

rpm -Uvh compat-libstdc++-33*

rpm -Uvh elfutils-libelf-0.*

rpm -Uvh libaio-0.*

rpm -Uvh libaio-devel-0.*

rpm -Uvh sysstat-9.*

rpm -Uvh glibc-2.*

rpm -Uvh glibc-common-2.*

rpm -Uvh glibc-devel-2.* glibc-headers-2.*

rpm -Uvh ksh-2*

rpm -Uvh make-3.*

rpm -Uvh libgcc-4.*

rpm -Uvh libstdc++-4.*

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

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

rpm -Uvh gcc-4.*x86_64*

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

rpm -Uvh --allfiles elfutils-libelf-0*x86_64* elfutils-libelf-devel-0*x86_64*

rpm -Uvh elfutils-libelf-0*i686* elfutils-libelf-devel-0*i686*

rpm -Uvh libtool-ltdl*i686*

rpm -Uvh ncurses*i686*

rpm -Uvh readline*i686*

rpm -Uvh unixODBC*

 

cd /

eject

 

=====================================

 

 

openfiler 설정

data01:10g 디스크 추가

data02:10g 디스크 추가

 

openfiler 웹페이지에서 아래와 같이 설정

1) System메뉴->Network Access Configuration 2 rac hostname ip입력->update

2) Volumes메뉴->Volume Groups->create new physical volumes->/dev/sdb선택->Phisical Volume->create

3) Volumes메뉴->Create a new volume group->Volume group name(no space):data01->/dev/sdb1 체크->add volume group 버튼 클릭

4) 위의 1),2)번의 진행사항을 /dev/sdc에서도 동일하게 진행하며, Volume group name data02 이다.

5) Volumes메뉴->Add Volume->Select Volume Group->

   volume "data01"선택->Create a volume in "data01"->

   volumne name size(MB)입력(아래 처럼)->Filesystem/Volume type항목 : block(iSCSI,FC,etc)선택

 

"data01" Volume Group Raw Device

ocr01     350

ocr02     350

vote01    350

vote02    350

control1  50 

control2  50 

system          1500

sysaux          1500

undotbs01 1000

undotbs02 1000

temp      1000

test01  500

users     120

redolog1a 60

redolog1b 60

redolog1c 60

redolog2a 60

redolog2b 60

redolog2c 60

vote03    350

 

 

"data02" Volume Group ASM Disk

ocrvote01   2000

data02      나머지

 

6) Services메뉴->iSCSI Target: Enable, Start 클릭

7) Volumes 메뉴->iSCSI Targets->Target Configuration->IQN일력번호확인->Add버튼 클릭

8) LUN Mapping->ASM만 진행할 예정이므로 "data02" Map 버튼 클릭

9) Network ACL->Access항목:Allow로 변경->Update 버튼 클릭

 

 

접근불가한 IQN 설정해제

root계정으로 접속하여 접근을 허용하고자 하는 IQN은 주석처리(#)하고, 접근을 허용하지 않는 IQN은 주석처리하지 않는다.

# vi /etc/initiators.deny

#iqn.2006-01.com.openfiler:tsn.0bbe7abe2592 ALL

 

Client Openfiler 연결

1) Openfiler 공유 스토리지 IQN 접속 및 Login

iSCSI 사용을 위해서는 반드시 iSCSI OS 패키지가 설치되어야 한다. (iscsi-initiator-utils-6.2.0.872-21.0.1.el6.x86_64 )

 

Iscsiadm 명령을 통해 Openfiler의 접속 IQN 을 확인한다.

# iscsiadm -m discovery -t st -p 192.168.137.100

[  OK  ] iscsid: [  OK  ]

192.168.137.100:3260,1 iqn.2006-01.com.openfiler:tsn.0bbe7abe2592

 

Iscsiadm 명령을 통해 iSCSI 공유 스토리지에 login 한다.

# iscsiadm -m node --loginall all

Logging in to [iface: default, target: iqn.2006-01.com.openfiler:tsn.0bbe7abe2592, portal: 192.168.137.100,3260]

Login to [iface: default, target: iqn.2006-01.com.openfiler:tsn.0bbe7abe2592, portal: 192.168.137.100,3260] successful.

 

로그인이 안될 때 체크리스트

1) Openfiler OS에서 # vi /etc/initiators.deny 체크

2) Openfiler Web사이트에서 Access 권한 Allow 체크

=====================================

raw device 설정 (ASM에서 직접 raw device Diskgroup으로 사용하기 위함)

 

# fdisk -l

 

#

fdisk /dev/sdb

 

n -> p -> 1 -> enter -> enter -> t -> 8e -> w

 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

LVM 디스크로 포맷됨

 

raw device 형태로 신규 디스크를 변경 (추후 ASM diskgroup에 매핑 위함)

 

# cd /dev/disk/by-id; ls -rtl *scsi*part1 | awk '{FS=" "; print $8 " " $9 " " $11}'

 

10:24 scsi-SATA_VBOX_HARDDISK_VB72370089-9129bea3-part1 ../../sda1

12:17 scsi-14f504e46494c45523274773346442d414477432d564c644a-part1 ../../sdb1

12:17 scsi-14f504e46494c4552496f386a486d2d595577412d74533037-part1 ../../sdc1

 

# vi /etc/udev/rules.d/60-raw.rules

KERNEL=="sd[a-z][0-9]", ENV{ID_SERIAL}=="14f504e46494c45523274773346442d414477432d564c644a", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n" ACTION=="add" RUN+="/bin/raw /dev/raw/raw1 %N"

KERNEL=="sd[a-z][0-9]", ENV{ID_SERIAL}=="14f504e46494c4552496f386a486d2d595577412d74533037", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n" ACTION=="add" RUN+="/bin/raw /dev/raw/raw2 %N"

 

ACTION=="add", KERNEL=="raw*", OWNER="oragrid", GROUP=="dba", MODE=="0660"

 

:wq!

 

-- 서버 재기동

# reboot

# udevadm control --reload-rules && udevadm trigger

 

[root@rac1 ~]# ls -rtl /dev/raw/*

crw-rw----. 1 oragrid dba 162, 0 Aug 30 10:38 /dev/raw/rawctl

crw-rw----. 1 oragrid dba 162, 2 Aug 30 10:38 /dev/raw/raw2

crw-rw----. 1 oragrid dba 162, 1 Aug 30 10:38 /dev/raw/raw1

=====================================

 

raw 초기화

 

dd if=/dev/zero of=/dev/raw/raw1 bs=8192 count=4

dd if=/dev/zero of=/dev/raw/raw2 bs=8192 count=4

 

=====================================

 

Node1 부팅이 완료되면 Node2와 상호간에 ping이 접속되면 네트워크 설정 성공!

ping rac1

ping rac2

ping rac1-priv

ping rac2-priv

 

=====================================

=====================================

 

Oracle VM Shared Folder [게스트 확장이 설치 되어 있어야함.]

 

-- oragrid에 공유폴더 권한 부여

mkdir /stage

mount -t vboxsf -o uid=501,gid=5000 11g /stage

 

 

ex> 마운트

mount -t vboxsf [-o OPTIONS] sharename mountpoint   

 

ex> 마운트 해제

umount /src

 

=====================================

 

 

grid ASM 추가 패키지 설치 (모든 노드)

 

클러스터링과 ASM 구성을 위해 공유 폴더로 이동해서 추가 패키지를 설치합니다.

작업은 루트 유저로 진행합니다.

 

-- node1

#

export CVUQDISK_GRP=dba

cd /src/grid/rpm

rpm -Uvh cvuqdisk*

scp cvuqdisk-1.0.9-1.rpm rac2:~

 

-- node2

export CVUQDISK_GRP=dba

rpm -Uvh cvuqdisk*

 

=====================================

 

Interconnect 연결설정

 

[자동] 양쪽 노드 모두 수행

# su - grid

cd /src/grid/sshsetup

sh sshUserSetup.sh -user grid -hosts "rac1 rac2 rac1-priv rac2-priv" -hostfile /etc/hosts

 

 

 

[수동]

SSH 설정.

su - grid

 

==> Node 1, 2 모두 실행.

 

$> mkdir -p ~/.ssh

$> chmod 700 ~/.ssh

 

$> cd .ssh

$> /usr/bin/ssh-keygen -t dsa

Generating public/private dsa key pair.

Enter file in which to save the key (/oracle/.ssh/id_dsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /oracle/.ssh/id_dsa.

Your public key has been saved in /oracle/.ssh/id_dsa.pub.

The key fingerprint is:

9a:c0:1a:69:7d:77:2b:66:92:ca:b9:f4:1c:42:c8:87 oracle@11gn1

 

$> /usr/bin/ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/oracle/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /oracle/.ssh/id_rsa.

Your public key has been saved in /oracle/.ssh/id_rsa.pub.

The key fingerprint is:

58:d5:4f:93:a5:ca:cd:2d:1b:a5:a6:4a:01:a1:fe:dc oracle@11gn1

 

 

==> Node 1만 수행.

$> touch ~/.ssh/authorized_keys

 

$> 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 rac2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

$> scp ~/.ssh/authorized_keys rac2:~/.ssh/authorized_keys

grid@rac2's password:

authorized_keys                                                                                   100% 1589     1.6KB/s   00:00   

 

==> 확인 작업 node 1, 2 모두 수행. 진행하겠냐고 물어보면. yes, 암호 물어보면 넣어준당.

 

$ ssh rac1 date

$ ssh rac1-priv date

$ ssh rac2 date

$ ssh rac2-priv date

 

=====================================

 

GI(Grid Infrastructure) 설치

 

 

ntp 재기동 (모든 노드)

#

service ntpd stop

service ntpd start

 

 

# su - grid

 

 

GI 설치를 위한 사전 준비가 제대로 되었는지 터미널 모드에서 확인합니다.

$ cd /src/grid

$ ./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -verbose

 

GI 설치 시작

$ ./runInstaller

 

GUI 설치 절차

(1) Download Software Updates

- Skip software updates 선택 -> next

(2) Select Installation Option

- Install and Configure Oracle Grid Infrastructure for a Cluster 선택 -> next

(3) Select Installation Type

- Advanced Installation 선택 -> next

(4) Select Product Languages

- Selected Languages Korean 추가 -> next

(5) Grid Plug and Play Information

- Cluster_name : rac_cluster

- SCAN Name : rac-cluster-scan   (/etc/hosts 에 등록된 scan Name 입력)

- SCAN Port : 1521

- Configure GNS 체크해제

- next

(5) Cluster Node Information

- Add

- Public Hostname : rac2

- Virtual Hostname : rac2-vip

- OK

- SSH Connectivity

- OS password : oracle -> Setup 버튼 클릭

(6) Specify Network Interface Usage

- eth0 : 192.168.137.0 , Public

- eth1 : 10.10.0.0 , Private

 

여기서, [INS-41112] Oracle 12c RAC Grid Install error가 발생하면 방화벽 설정을 해제해야 한다.

service iptables stop

chkconfig iptables off

 

chmod +x /tmp/CVU_11.2.0.3.0_grid/*

 

(7) Storage Option Information

- Oracle Automatic Storage Management (Oracle ASM) 선택 -> next

(8) Create ASM Disk Group

- Disk Group Name : DATA

- Redundancy : External

- AU Size : 1MB

- Add disk : Candidate Disks -> 필요한 디스크 체크

(만약 디스크 목록이 뜨지 않으면 Change Discovery Path를 눌러 디스크 경로를 설정해준다)

(9) Specify ASM Password : user same passwords for these accounts : 동일한 password 입력 -> next

(10) Failure Isolation Support : Do not use Inteligent ~ (IPMI) 선택 -> next

(11) Privileged Operating System Groups : 모두 dba 그룹 선택 -> next

(12) Specify Installation Location (GI Oracle Base위에 Oracle Home이 위치 할 수 없다.)

- Oracle Base : $ORACLE_BASE 설정디렉토리로 설정되어 있는지 확인, 안되어있다면 Browse 버튼을 눌러 경로 지정

- Oracle Home : $ORACLE_HOME 설정디렉토리로 설정되어 있는지 확인, 안되어있다면 Browse 버튼을 눌러 경로 지정

(13) Create Inventory

Inventory Directory : /grid/oraInventory -> next

(14) Summary : 별다른 문제가 없다면 바로 Install 버튼이 뜬다. -> Install

(15) Execute Configuration scripts : 모든 노드에서 root유저로 아래 스크립트를 순차적으로 수행한다.

- /grid/oraInventory/orainstRoot.sh

- /grid/product/11.2.0/root.sh

- 스크립트 수행이 모두 끝나면 OK

(16) Finish -> close

 

=====================================

 

Oracle Engine 설치

 

-- oracle 유저에 공유폴더 권한 부여

mount -t vboxsf -o uid=500,gid=5000 linux_x64 /src

 

 

# su - oracle

oracle 엔진 미디어 소스 디렉토리로 이동

 

$ export DISPLAY=192.168.10.12:0.0

$ ./runInstaller

 

Oracle Engine GUI설치절차

(1) Configure Security Updates 

- I wish to ~ My oracle Support 체크해제 -> next

(2) Download Software Updates

- Skip software updates 선택 -> next

(3) Select Installation Option

- Install Database software only 선택 -> next

(4) Grid Installation Options

- Select All 버튼 클릭 (RAC 구성하는 모든 노드의 hostname이 표출되어야 한다)

- SSH connectity : Oracle password 입력후 Setup 버튼 클릭

- Next

(5) Select Product Languages :  Korean 추가 선택 -> next

(6) Select Database Edition

- Enterprise Edition 선택

- Select Options : 고객사 환경에 따라 컴포넌트를 선택한다. 일반적으로 Oracle Patitioning은 선택

(테스트 환경에서는 Partitioning, Oracle Real Application Testing 만 선택 후 진행하자)

(7) Specify Installation Location 

(GI와는 다르게 Oracle software $ORACLE_HOME경로는 $ORACLE_BASE 하위 디렉토리에 소속해야 한다.)

- Oracle Base: /oracle/app ($ORACLE_BASE경로)

- software Location : /oracle/app/product/11.2.0/db_1 ($ORACLE_HOME경로)

(8) Privileged Operating System Groups

- all dba group 선택 -> next

(9) Summary : 별다른 이상이 없다면 Intall 버튼이 표출된다.

(10) Execute Configuration scripts : 모든 노드에서 root유저로 아래 스크립트를 순차적으로 수행한다.

- /oracle/app/product/11.2.0/db_1/root.sh

(11) Finish

 

=====================================

 

데이터베이스 생성

 

node1 (rac1) oracle 계정에서 dbca 실행

# su - oracle

$ export DISPLAY=192.168.10.12:0.0

$ dbca

 

GUI 설치절차

(1) Operations

- Create a Database 

- next

(2) Database Templates

- Custom Database

- next

(3) Database Identification

- Configuration Type : Admin-Managed 선택

- Global Database Name : racdb

- SID prefix : racdb

- Select ALL 버튼 클릭

- next

(4) Management Options

- Engerprise Manager : Configure Enterprise Manager 선택 (선택사항)

(5) Database Credentials

- Use the Same Administrative Password for All Accounts

- Password 입력

(6) Database File Location

- Storage Type : Automatic Storage Management(ASM) 선택

- Use Oracle-Managed Files 선택

- Database Area : +DATA  (설정되어 있지 않다면 Browse 버튼을 클릭하여 Diskgroup 지정)

- ASM Credentials : Specify ASMSNMP Password specific to ASM : 패스워드 입력

(7) Recovery Configuration

- Specify Fast Recovery Area 선택

- Fast Recovery Area : +DATA

- Fast Recovery Area Size : 4096 MB

- next

(8) Database Content

- 선택사항이다. 테스트 환경에서는 모두 체크박스 해제

- Standard Database components 버튼 클릭하여 모두 체크박스 해제

(9) Initialization Parameters

- Memory

- Typical 선택

- Memory Size (SGA and PGA) : 1204 MB

(보통 전체 시스템 RAM Memory 40 % 정도를 자동으로 설정하고 있다. 조정하고 싶으면 조정가능)

- Character Sets 선택

- Choose from the list of character sets : KO16MSWIN949 선택

- next

(10) Database Storage

- Datafile, redolog, controlfile, tablespace 구성 확인

- SYSAUX(600M), SYSTEM(700M), TEMP(20M), UNDOTBS1(200M), UNDOTBS2(200M), USERS(5M)

- 테이블스페이스 데이터파일 사이즈 조정 가능

- redo log 50MB 기본설정되어 있으나 실운영환경에서는 보통 100MB로 설정한다. (테스트 환경에서는 50M)

(11) Creation Options

- 실운영환경에서 설치시에는 Generate Database Creation Scripts를 체크하고 경로를 지정한다.

- Finish

 

 

 

 

 

 

데이터베이스가 정상적으로 가동된 것을 확인할 수 있습니다.

$ srvctl config database -d RACDB

$ srvctl status database -d racdb

 

 

데이터베이스에 접속해서 인스턴스가 가동되고 있는지 확인합니다.

$ sqlplus / as sysdba

SQL> SELECT inst_name FROM v$active_instances;

 

추가된 서비스를 확인할 수 있습니다.

$ crs_stat -t

gsd 서비스의 경우 11g에서 기본적으로 사용하지 않으므로 OFFLINE으로 되어 있습니다.

 

 

 

데이터베이스 및 가상머신 중지

 

oracle 유저 권한으로 crs_stop 명령을 이용해 모든 서비스를 정지시킵니다.

$ crs_stop -all

 

제공되지 않던 서비스나 일부 서비스 정지에 에러메시지가 출력되지만 정상적으로 정지가 된

것입니다.

 

 

모든 서비스가 OFFLINE으로 변경된 것을 확인할 수 있습니다.

$ crs_stat -t

 

이제 root 유저 권한으로 접속해서 클러스터 서비스를 정지합니다.

# /u01/app/11.2.0/grid/bin/crsctl stop crs

 

rac2 노드에 ssh로 접속해서 클러스터 서비스를 정지시켜 봅니다.

이미 rac1와 함께 클러스터가 정지되어서 클러스터 서비스가 내려가 있다는 에러 메시지를 출

력합니다.

따라서 rac2 노드에서 별도로 클러스터 서비스를 정지시킬 필요는 없습니다.

 

접속된 두번째 가상 머신을 중지하기 위해 shutdown 명령을 입력하고, 접속 해제 합니다.

# shutdown -h now

# exit

 

첫번째 노드도 shutdown 명령을 이용해 가상 머신을 정지하면 됩니다.

# shutdown -h now

 

 

 

데이터베이스 가동 (아래 명령은 양쪽 노드 모두에서 실행하여야 한다.)

 

가상 머신을 가동한 후

$ ps -ef | grep d.bin

했을 때 관련 프로세스들이 떠있으면

잠시 기다리면 클러스터 서비스가 올라옵니다.

시스템 성능에 따라 2~5분 이상의 시간이 소요될 수 있습니다.

$ crs_stat -t

 

[root@rac1 ~]# crsctl start crs

CRS-4640: Oracle High Availability Services is already active

CRS-4000: Command Start failed, or completed with errors.

 

위와 같은 에러가 발생하면 양쪽 노드 root계정에서 아래 명령 실행하여 클러스터 종료

(Stop High availabilty service and crs resources)

 

# crsctl stop res -init -all

# crsctl stop has

CRS-4133: Oracle High Availability Services has been stopped.

 

프로세스 중 d.bin으로 검색되는 프로세스 kill

(Verify no crs processes should be running )

# ps -ef|grep d.bin

(Note: Kill if any process is still running .)

 

 

클러스터 시작 (Now start crs)

# crsctl start crs

2~5분 후에 클러스터 리소스들이 올라오기 시작한다.

 

Oracle 계정으로 접속하여 아래명령으로 crs 리소스 상태 확인

$ crs_stat -t

 

일부 서비스들은 수동으로 가동을 시켜야 합니다. (oracle 계정)

$ crs_start -all

 

수동으로 OFFLINE이던 서비스가 ONLINE으로 가동됩니다.

이미 시작되었거나 다른 서비스와 동시에 올라온 서비스의 경우 에러 메시지가 출력됩니다.

 

$ sqlplus “/as sysdba”

SQL> select inst_name from v$active_instances;

 

모든 노드의 인스턴스가 정상적으로 가동된 것을 확인할 수 있습니다.

 

데이터베이스가 정상적으로 가동된 것을 확인할 수 있습니다.

$ srvctl config database -d racdb

$ srvctl status database -d racdb

 

외부 접속시 tnsnames.ora 에는

Scan IP 접속시 SID:racdb

노드1  Virtual IP 접속시에는 SID:racdb1

노드2  Virtual IP 접속시에는 SID:racdb2

'Oracle Study > RAC' 카테고리의 다른 글

RAC CMD로 설치 해보자  (0) 2021.02.23
oracleasm createdisk  (0) 2015.02.19
11g ip setting  (0) 2015.02.19
VirtualBox 디스크 추가 명령어  (0) 2015.02.04
VMware server on RAC 11g installation (2)  (0) 2015.02.01