Oracle DB 설치 시 미리 챙겨야 할 것들

쿼리 작성 및 튜닝 연습 용으로 VirtualBox에 상시 Oracle 세팅을 해두곤 하는데,
최근에 모두 새로 세팅하겠다며 싹 밀어버렸다. ^^;;;

VM에 Oracle을 세팅할 때 어떤 것을 해야하는지 고민해본다.
DB 버전은 지금으로선 많이 오래되기는 하였지만, 내가 가장 익숙한 11g로 빠르게 설치하려고 했다.

(추후 상위 버전에 대한 테스트도 많이 해봐야겠다.)

Oracle 11g
주의사항
1) 해당 포스팅은 VirtualBox에 저 혼자 놀기 위한 Oracle 설치하는 과정에서 생각나는 것을 정리한 문서 입니다.
2) DB는 2020년 기준으로는 아주 오래된 버전인 11g 버전으로 최신 버전과는 차이가 있을 수 있습니다.
가장 정확한 정보는 공식 매뉴얼에 있음을 유의 부탁 드립니다.
3) 설치 과정들을 모두 세밀하게 기재해두지는 않았습니다. 챙겨야 할 포인트 위주로만 기재하였습니다.
Oracle Database 11gR2 (11.2) Lifetime Support Changes (Doc ID 2068368.1) - 링크
오잉.. 이미 끝난줄 알았는데 한번 늘어났었구나...

만일 Oracle ACS 계약이 되어있으시다면, 설치 진행 시 ACS의 도움을 받아서 최적화된 환경을 세팅하시기를 강력 추천 드립니다. 전방위적으로 검토 및 진단을 해주기 때문에 설치 시 매우 용이합니다.
는 돈돈돈..

준비 단계

오라클 설치과정에서는 일단 root 유저가 필요합니다.

DB 버전과 OS 버전의 호환성 확인

각 DB 버전에는 호환되는 OS 버전, 커널 조건이 있다.
이를 반드시 확인하고 설치 진행해야 한다.

오라클 공식 매뉴얼 Operating System Requirements - 링크

예를들어 개인적인 경험으로는 이전에 실 운영장비 DB 설치 시에, 오히려 OS 커널이 너무 최신 버전이어서 문제가 된 적이 있었다.


하드웨어 확인

메모리

메모리에 대한 확인이 필요하다.

# 메모리 확인
grep MemTotal /proc/meminfo
  • 최소: 1 GB
  • 추천: 2 GB 이상

아몰랑 다다익선... 램 큰거 사주세요...

스왑메모리

# 스왑 확인
grep SwapTotal /proc/meminfo
램 (RAM)스왑 공간 필요 크기
1 GB ~ 2 GB램의 1.5배
2 GB ~ 16 GB램과 동일 (1배)
16 GB 이상16 GB

tmp 경로

/tmp에 최소 1 GB 의 공간이 필요하다.

오라클 공식 매뉴얼 Checking the Hardware Requirements - 링크

OS 유저 확인

OS 유저는 oracle 유저 (꼭 oracle일 필요는 없음)가 있어야 하며, grid 계정이 추가로 필요할 수도 있겠다.
그룹 지정(예: dba)도 해준다.

오라클 공식 매뉴얼 Creating Required Operating System Groups and Users - 링크

주요 디렉토리 생성

설치에 필요한 주요 디렉토리 생성이 필요하다.

  • 오라클 홈 디렉토리
  • 데이터파일 / 인덱스파일
  • 리두
  • 아카이브
  • 백업

등....

일단 설치 후에 변경하는 것도 가능하기 때문에, 홈 디렉토리만 일단 만들어도 설치과정 진행하는 것에는 무리가 없다.

중요한 디스크 성능

좋으면 좋을 수록 좋지만, 특히나 몇몇 디렉토리가 마운트 된 스토리지의 경우 성능을 특히 신경 써야 한다.

예를들면 redo 라던가... redo 라던가... redo 라던가... ★★★
datafile이 생성되는 디렉토리, 아카이브 디렉토리 등도 마찬가지이다.

만일 Oracle을 AWS EC2와 같은 환경에 설치하고 있다면, EBS별로 iops를 특성에 맞게 잘 설정해 주어야 한다.
적절하게 설정되지 않으면 이 포인트로 장애가 날 수 있다.

사전 작업

관련 패키지 설치

각 OS에 필요로 하는 설치 패키지가 각기 다르다.
매뉴얼을 꼼꼼히 확인하여 설치 해준다.

오라클 공식 매뉴얼 Package Requirements - 링크

보통 오라클 설치 과정에서 제일 고단한(...) 과정 중 하나로 꼽히기도 하다.
하지만 열심히 잘 꼼꼼히(...) 설치해준다.


만일 OS로 Oracle Linux를 사용하고 있다면?
이 과정이 보다 편리해질 수 있다! 패키지들을 한방에 설치해주는....

Automatically Configuring Oracle Linux with Oracle Preinstallation RPM - 링크

물론 필수 패키지 설치를 놓치는 것에 대한 부담은 조금 덜어둬도 된다.
설치 중에 '이 패키지 없어요!!' 라고 알려주기 때문.

OS 파라미터 설정

커널 파라미터를 수정 해준다.

vi /etc/sysctl.conf

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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 = 1048576

Open File Descriptions을 수정해준다.

Resource Shell Limit Resource Soft Limit Hard Limit
Open file descriptors nofile at least 1024 at least 65536
Number of processes available to a single user nproc at least 2047 at least 16384
Size of the stack segment of the process stack at least 10240 KB at least 10240 KB, and at most 32768 KB

vi /etc/security/limits.conf
oracle soft nofile 63536
oracle hard nofile 63536
오라클 공식 매뉴얼 Configuring Kernel Parameters and Resource Limits - 링크
레드햇 리눅스 공식 매뉴얼 CHAPTER 11. SETTING SHELL LIMITS FOR THE ORACLE USER - 링크

패스 설정

아래와 같은 패스는 OS profile에 등록하여 사용하는 것이 좋다.
아래 정보를 미리 등록하고 설치과정을 실행시키면, 해당 정보로 이미 맞춰져 있는 모습을 확인할 수 있다.

  • ORACLE_BASE
  • ORACLE_HOME
  • NLS_LANG
  • TNS_ADMIN
DB 캐릭터셋은 가장 기본이 되지만, 의외로 기본 세팅으로 무턱대고 설치하는 경우가 있다.
처음부터 의도한대로 잡아서 설치해주자.

설치

설치 진행

사전 준비가 다 되었다면 runInstaller를 실행하여 설치를 진행한다.
아차, runInstaller를 띄우는 것 또한 오라클 설치의 최대 난관이기도 한데...
이 부분은 추후 별도 글을 따로 작성해보는걸로... (아 물론 silent 모드 설치도 있긴 하다...)

# 오라클 설치의 최대 난관이기도 한 단계
export DISPLAY = xxx.xxx.xxx.xxx:0.0
# 오라클 설치 시작 
cd database./runInstaller

설치를 하다보면, 필요한 조건을 충족하지 못했다는 화면이 뜰 수 있다.
(완벽 하다면 아예 없을 수도 있다.)

해당화면을 참고하여 누락된 패키지를 추가 설치하거나, 파라미터를 추가 설정해주고 'Check Again' 처리를 하여 상태를 재확인한다. 그러나 아래와 같은 예외 케이스도 있으니 참고하자.

Missing pdksh-5.2.14 package during Oracle database 11.2.0.4 install on Oracle Linux 7 (Doc ID 1962046.1) - 링크 (로그인 필요)

요약:
- elfutils-libelf-devel-0.97
- pdksh-5.2.14
는 설치에 필수 요소는 아니므로, 무시하고 넘어가도 설치할 수 있다.

그렇게 설치를 이어가다 보면, 아래와 같은 에러에 또 봉착할 수 있다.

ins_emagent.mk 에러
error in invoking target 'agent nmhs' of make file ins_emagent.mk while installing Oracle 11.2.0.4 on Linux (Doc ID 2299494.1) - 링크 (로그인 필요)

요약: ins_emagent.mk 링크 에러이다.
아래와 같이 조치해준다.
vi $ORACLE_HOME/sysman/lib/ins_emagent.mk 

## 이 라인을 찾는다
## $(MK_EMAGENT_NMECTL)  

## 아래와 같이 변경해준다
$(MK_EMAGENT_NMECTL) -lnnz11 

조치 후 'Retry' 버튼을 눌러 설치 과정을 재개해준다.

root로 두가지 쉘 스크립트 실행

정상적으로 설치가 완료되면 위와 같은 팝업창이 뜬다.
지침 대로 root 유저를 이용해 2개의 쉘 스크립트를 실행 시켜준다.

/app/oraInventory/orainstRoot.sh
/app/oracle/product/11.2.0/root.sh

OPatch 적용

이 또한 다음에 별도 글로 작성 해볼 이야기지만,
관련하여 적절한 패치 적용까지 해주면 말끔하게 설치 완료!

날짜 내용
2020.10.01 최초 글 작성
2021.07.23 글 해당 공간으로 복제