본문 바로가기
Oracle/설치

Oracle 11.2.0.3 Single Raw Device로 구성하기

by 취미툰 2019. 4. 11.
반응형

안녕하세요.

오늘은 각 데이터파일과 컨트롤파일 그리고 리두로그 파일을 각각의 디스크에 저장되도록 구성하여 관리성을 높이고 안정성을 높인 Raw Device(로우 디바이스라고 칭하겠음)을 설치하는 법을 포스팅하겠습니다.

OS 구성부터 진행할 예정이니 따라오시면 설치가 될 것 같습니다~

 

저는 vmsphere를 이용해서 진행했습니다.

 

SCSI 컨트롤러를 추가하고 Logical Parallel에 버스공유는 물리적으로 설정합니다.

 

하드디스크를 아래와 같은 그림으로 설정합니다.

저는 기본 하드제외 총 11개의 하드디스크를 추가하였습니다.

 

1.컨트롤파일1

2.컨트롤파일2

3.spfile

4.redo 1

5.redo 2

6.redo 3

7.system tablespace

8.sysaux tablespace

9.undo tablespace

10.temp tablespace

11.users tablespace

 

이렇게 구성을 하였습니다. (필요에 따라 늘리거나 줄이시면 될 것 같습니다.)

 

설정이 다되었으면 재부팅을 하여 키고 Oracle 엔진을 설치하기 위한 환경설정을 진행합니다.

 

기본적인 진행은 일반 single 엔진 설치와 동일합니다. 디스크 파티션 설정하는 부분만 다르기 때문에 싱글로 설치하실 분들도 참고하시면 될것 같습니다.

 

 

사용자 및 그룹 생성& 권한 설정

 


[root@localhost ~]# mkdir -p /u01/app

[root@localhost ~]# useradd -g dba oracle

[root@localhost ~]# id oracle

uid=1000(oracle) gid=1001(dba) groups=1001(dba)


Oracle_base가 설정될 디렉토리를 생성해주고, oracle 유저를 생성한다.

 

 

Oracle유저의 .bash_profile 수정

 

[root@localhost ~]# su – oracle 접속 후

vi .bash_profile


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

 

export PATH

 

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.3/db

export ORACLE_SID=orcl

export BASE_PATH=/usr/bin

export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPAtch:$BASE_PATH

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

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


 

디스크 파티션 설정

 

root유저로 접속해서 fdisk -l로 현재 디스크들의 상황을 체크한다.


[oracle@localhost ~]$ exit

Logout

 

파티션을 명시적으로 지정해주기로 한다.

 


[root@localhost ~]# fdisk /dev/sdb

Welcome to fdisk (util-linux 2.23.2).

 

Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.

 

Device does not contain a recognized partition table

Building a new DOS disklabel with disk identifier 0xaa41fd1c.

 

Command (m for help): n

Partition type:

   p   primary (0 primary, 0 extended, 4 free)

   e   extended

Select (default p): p

Partition number (1-4, default 1): 1

First sector (2048-10485759, default 2048):[enter]

Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-10485759, default 10485759): [enter]

Using default value 10485759

Partition 1 of type Linux and of size 5 GiB is set

 

Command (m for help): w

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

Syncing disks.


붉은색 글자를 입력하여 파티션을 지정해준다.

11개의 디스크가 있기때문에 sdb부터 하나씩 알파벳을 올려가며 진행한다.

 

11개 다 추가후 잘됬는지 확인한다.


[root@localhost ~]# ls -al /dev/sd*

brw-rw----. 1 root disk 8,   0  3 26 16:03 /dev/sda

brw-rw----. 1 root disk 8,   1  3 26 16:03 /dev/sda1

brw-rw----. 1 root disk 8,   2  3 26 16:03 /dev/sda2

brw-rw----. 1 root disk 8,  16  3 26 16:17 /dev/sdb

brw-rw----. 1 root disk 8,  17  3 26 16:17 /dev/sdb1

brw-rw----. 1 root disk 8,  32  3 26 16:18 /dev/sdc

brw-rw----. 1 root disk 8,  33  3 26 16:18 /dev/sdc1

brw-rw----. 1 root disk 8,  48  3 26 16:18 /dev/sdd

brw-rw----. 1 root disk 8,  49  3 26 16:18 /dev/sdd1

brw-rw----. 1 root disk 8,  64  3 26 16:18 /dev/sde

brw-rw----. 1 root disk 8,  65  3 26 16:18 /dev/sde1

brw-rw----. 1 root disk 8,  80  3 26 16:19 /dev/sdf

brw-rw----. 1 root disk 8,  81  3 26 16:19 /dev/sdf1

brw-rw----. 1 root disk 8,  96  3 26 16:19 /dev/sdg

brw-rw----. 1 root disk 8,  97  3 26 16:19 /dev/sdg1

brw-rw----. 1 root disk 8, 112  3 26 16:19 /dev/sdh

brw-rw----. 1 root disk 8, 113  3 26 16:19 /dev/sdh1

brw-rw----. 1 root disk 8, 128  3 26 16:19 /dev/sdi

brw-rw----. 1 root disk 8, 129  3 26 16:19 /dev/sdi1

brw-rw----. 1 root disk 8, 144  3 26 16:19 /dev/sdj

brw-rw----. 1 root disk 8, 145  3 26 16:19 /dev/sdj1

brw-rw----. 1 root disk 8, 160  3 26 16:20 /dev/sdk

brw-rw----. 1 root disk 8, 161  3 26 16:20 /dev/sdk1

brw-rw----. 1 root disk 8, 176  3 26 16:20 /dev/sdl

brw-rw----. 1 root disk 8, 177  3 26 16:20 /dev/sdl1


 

 

 

새로 추가한 디스크들을 rawdevice로 맵핑해준다.


[root@localhost ~]# /bin/raw /dev/raw/raw1 /dev/sdb1

/dev/raw/raw1:  bound to major 8, minor 17

[root@localhost ~]# /bin/raw /dev/raw/raw2 /dev/sdc1

/dev/raw/raw2:  bound to major 8, minor 33

[root@localhost ~]# /bin/raw /dev/raw/raw3 /dev/sdd1

/dev/raw/raw3:  bound to major 8, minor 49

[root@localhost ~]# /bin/raw /dev/raw/raw4 /dev/sde1

/dev/raw/raw4:  bound to major 8, minor 65

[root@localhost ~]# /bin/raw /dev/raw/raw5 /dev/sdf1

/dev/raw/raw5:  bound to major 8, minor 81

[root@localhost ~]# /bin/raw /dev/raw/raw6 /dev/sdg1

/dev/raw/raw6:  bound to major 8, minor 97

[root@localhost ~]# /bin/raw /dev/raw/raw7 /dev/sdh1

/dev/raw/raw7:  bound to major 8, minor 113

[root@localhost ~]# /bin/raw /dev/raw/raw8 /dev/sdi1

/dev/raw/raw8:  bound to major 8, minor 129

[root@localhost ~]# /bin/raw /dev/raw/raw9 /dev/sdj1

/dev/raw/raw9:  bound to major 8, minor 145

[root@localhost ~]# /bin/raw /dev/raw/raw10 /dev/sdk1

/dev/raw/raw10:  bound to major 8, minor 161

[root@localhost ~]# /bin/raw /dev/raw/raw11 /dev/sdl1

/dev/raw/raw11:  bound to major 8, minor 177


 

수동으로 11개의 디스크를 raw디스크에 맵핑해주었다.

 

 잘 들어갔는지 체크해본다.


[root@localhost ~]# ls -al /dev/raw/*

crw-rw----. 1 oracle dba  162,  1  3 26 16:51 /dev/raw/raw1

crw-rw----. 1 oracle dba  162, 10  3 26 16:52 /dev/raw/raw10

crw-rw----. 1 oracle dba  162, 11  3 26 16:52 /dev/raw/raw11

crw-rw----. 1 oracle dba  162,  2  3 26 16:51 /dev/raw/raw2

crw-rw----. 1 oracle dba  162,  3  3 26 16:51 /dev/raw/raw3

crw-rw----. 1 oracle dba  162,  4  3 26 16:52 /dev/raw/raw4

crw-rw----. 1 oracle dba  162,  5  3 26 16:52 /dev/raw/raw5

crw-rw----. 1 oracle dba  162,  6  3 26 16:52 /dev/raw/raw6

crw-rw----. 1 oracle dba  162,  7  3 26 16:52 /dev/raw/raw7

crw-rw----. 1 oracle dba  162,  8  3 26 16:52 /dev/raw/raw8

crw-rw----. 1 oracle dba  162,  9  3 26 16:52 /dev/raw/raw9

crw-rw----. 1 root   disk 162,  0  3 26 16:03 /dev/raw/rawctl

 


 

설치파일 압축해제

 

Oracle 엔진 설치파일을 압축해제한다.

 


 

[oracle@localhost u01]$ unzip p10404530_112030_Linux-x86-64_1of7.zip

…..생략

 


나중에 기술하지만 11g의 경우에는 설치파일이 1of7과 2of7 두개가 필요하다. 저는 1of7한개만 압축을 해제하고 설치를 진행해서 나중에 에러가 발생한다. 그것은 2of7에 있는 파일이 없어서 나는 에러이므로 2of7을 압축해제하고 다시 시작하면 해결된다.

 

 

runInstaller로 엔진 설치

 

 

 

 

 

 

 

 

 

 

 

 

추가적으로 나오는 rpm 에러와 다른 파라미터 변경에러는 직접 수동으로 해결한다.

rpm은 인터넷에서 직접 다운받아서 설치했다.


[root@localhost u01]# rpm -Uvh elfutils-libelf-devel-0.97.1-5.x86_64.rpm

경고: elfutils-libelf-devel-0.97.1-5.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID a7048f8d: NOKEY

오류: Failed dependencies:

        elfutils-libelf = 0.97.1-5 is needed by elfutils-libelf-devel-0.97.1-5.x86_64

[root@localhost u01]# rpm -Uvh elfutils-libelf-devel-0.97.1-5.x86_64.rpm --nodeps --force

경고: elfutils-libelf-devel-0.97.1-5.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID a7048f8d: NOKEY

준비 중...                         ################################# [100%]

Updating / installing...

   1:elfutils-libelf-devel-0.97.1-5   ################################# [100%]

[root@localhost u01]# rpm -Uvh pdksh-5.2.14-8.i386.rpm --nodeps --force

준비 중...                         ################################# [100%]

Updating / installing...

   1:pdksh-5.2.14-8                   ################################# [100%]

[root@localhost u01]# rpm -Uvh libaio-devel-0.3.105-2.x86_64.rpm --nodeps --force

경고: libaio-devel-0.3.105-2.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID a7048f8d: NOKEY

준비 중...                         ################################# [100%]

Updating / installing...

   1:libaio-devel-0.3.105-2           ################################# [100%]

 


kermel.shm 수정 에러


[root@localhost ~]# vi /etc/sysctl.conf

에서 kermel.shm* 값을 에러창에 뜨는 숫자로 변경한다.

[root@localhost ~]# /sbin/sysctl -p

로 적용한다.


에러 해결 후 다시 설치를 진행한다.

 

 

 

 

 

**Error**

/u01/app/oracle/product/11.2.3/db/owb/external/oc4j_applications/applications/WFMLRSVCApp.ear에러가 위에서 말했던 설치파일이 부족해서 발생하는 에러이다.

**해결방법**

설치파일 2of7을 압축을 풀고 다시 처음부터 설치를 진행하면 에러가 해결된다.

 

다시 runinstall을 켜서 처음부터 따라가서 설치창까지 따라오면 된다.

 

**Error**

/u01/app/oracle/product/11.2.3/db/sysman/lib/ins_emagent.mk 에러가 발생한다.

에러가 발생한 파일에 접속해서 파일을 수정하면 간단하게 해결된다.

 

**해결방법**

 

vi /u01/app/oracle/product/11.2.3/db/sysman/lib/ins_emagent.mk 로접속한다.

 

 

/NMECTl을 입력하여 찾은 후 문장 끝에 -lnnz11을 입력하고 :wq로 저장하고 나온다.

 

설치가완료되면 root에서 쉘을 돌리라고 한다.

root에서 /u01/app/oracle/product/11.2.3/db/root.sh를 실행하고

[enter]

[enter]

[enter]

를 입력한다.

 

NETCA로 리스너를 설정한다.

 

DB 설치

dbca로 설치를 진행한다.

 

위에부분까지는 일반 싱글 DB설치와 동일하다.

밑에 All initiallzation Parameters를 클릭한다.

 

 

spfile을 /dev/raw/raw3 로 수정한다.

경고문구가 뜨면 Yes를 클릭한다.

 

 

Database Storage를 구성하는 창에서 컨트롤파일과 데이터파일 그리고 리두로그 파일의 경로를 수정한다.

 

리두로그파일의 경로를 수정한다.

 

 

 

 

파일크기가 권장사항보다 작아서 나오는 에러이다. Abort하고 진행해도 무방하다. 실제 운영상황에서는 거기에 맞는 용량 크기 설정이 필요하다.

DB설치가 완료되었습니다. 경로가 잘 설정되

어있는지 확인해보겠습니다.

 

sqlplus에 접속해서

show parameter spfile

select name from v$datafile;

select name from v$tempfile;

select name from v$controlfile;

로 설정을 확인합니다.

 

이렇게 설치가 완료되었습니다.

반응형

댓글