쿼리 작성 및 튜닝 연습 용으로 VirtualBox에 상시 Oracle 세팅을 해두곤 하는데,
최근에 모두 새로 세팅하겠다며 싹 밀어버렸다. ^^;;;
VM에 Oracle을 세팅할 때 어떤 것을 해야하는지 고민해본다.
DB 버전은 지금으로선 많이 오래되기는 하였지만, 내가 가장 익숙한 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
는 설치에 필수 요소는 아니므로, 무시하고 넘어가도 설치할 수 있다.
그렇게 설치를 이어가다 보면, 아래와 같은 에러에 또 봉착할 수 있다.
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 유저를 이용해 2개의 쉘 스크립트를 실행 시켜준다.
/app/oraInventory/orainstRoot.sh
/app/oracle/product/11.2.0/root.sh
OPatch 적용
이 또한 다음에 별도 글로 작성 해볼 이야기지만,
관련하여 적절한 패치 적용까지 해주면 말끔하게 설치 완료!
날짜 | 내용 |
---|---|
2020.10.01 | 최초 글 작성 |
2021.07.23 | 글 해당 공간으로 복제 |