안녕하세요.
오늘은 각 데이터파일과 컨트롤파일 그리고 리두로그 파일을 각각의 디스크에 저장되도록 구성하여 관리성을 높이고 안정성을 높인 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;
로 설정을 확인합니다.
이렇게 설치가 완료되었습니다.
'Oracle > 설치' 카테고리의 다른 글
11gR2 RAC Grid 재기동 시 특정 노드가 올라오지 않는 현상 (0) | 2020.04.01 |
---|---|
11gR2 RAC_Grid 설치 후 root.sh 돌릴 때 CRS-4124,CRS-4000 해결법 (1) | 2020.03.31 |
운영중인 싱글 DB에 Raw Device 추가하기 (0) | 2020.01.12 |
Oracle 19c ASM Single DB 설치하기 ch.2 (0) | 2020.01.11 |
Oracle 19c ASM Single DB 설치하기 ch.1 (2) | 2020.01.10 |
댓글