티스토리 뷰
ProDBA에 Rocky Linux 8 환경에서 Oracle 11g 설치 방법에 대한 질문 글이 있어서 오랜만에 설치 테스트를 했습니다.
설치 과정중의 시행착오와 설치 절차를 정리해 보려고 합니다.
Rocky Linux 설치는 처음이라 생소했지만, 설치해보니 Red Hat Enterprise / CentOS 와 거의 동일하게 느껴졌습니다.
Rocky Linux Minimal ISO를 다운받아 VMware Workstation Player에서 CentOS 8로 선택하여 설치했습니다.
오라클은 11.2.0.4 버전 제품을 준비했습니다.
1. runInstaller 실행시 No such file or directory 메시지 발생
$ ./runInstaller
./runInstaller: line 137: /tmp/oracle_install/database/install/.oui: No such file or directory
$ file .oui
.oui: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.2.5, not stripped
설치 시작부터 나오는 오류 메시지를 보니 당황스럽습니다. runInstaller 파일 자체의 문제는 아니고 .oui가 32 비트 파일인 것이 원인으로 보입니다. libstdc++-8.5.0-18.el8.i686 패키지를 yum으로 설치하여 해결했는데 dependency 패키지가 같이 설치되어서 정확히 어느 패키지가 누락되어 오류가 발생한 것인지는 테스트를 해봐야 알 것 같네요.
2. runInstaller 실행시 There was an error trying to initialize the HPI library 메시지 발생
$ ./runInstaller
...
There was an error trying to initialize the HPI library.
Please check your installation, HotSpot does not work correctly
when installed in the JDK 1.2 Linux Production Release, or
with any JDK 1.1.x release.
Could not create the Java virtual machine.
앞의 오류가 해결되고 나서 이번에는 뜬금없이 설치되어 있지도 않은 JDK 1.1 과 1.2 버전 얘기가 나옵니다. 아래 오라클 공식 문서 및 링크를 참고하여 원인을 추정할 수 있었습니다.
1) runInstaller 에 의해 .oui 커맨드가 호출됨
2) .oui 커맨드에 의해 java -version 명령이 실행됨
3) libnsl.so.1 라이브러리를 찾지 못해 오류가 발생함
위의 추정에 따라 여기서는 libnsl-2.28.225.el8.x86_64 / libnsl-2.28.225.el8.i686 패키지를 설치하여 해결하였습니다.
https://support.oracle.com/knowledge/Oracle%20Database%20Products/2889673_1.html
https://forums.centos.org/viewtopic.php?t=73210
3. GUI 인터페이스를 사용하기 위한 패키지 설치
runInstaller를 실행하기 위해 뒤늦게 GUI 인터페이스를 사용하기 위한 패키지를 설치합니다. 아래 문서를 참고해 명령어 한번으로 설치 완료했습니다. 상세 과정은 아래 문서에 잘 나와 있습니다. 처음 OS 설치 과정에서 GUI 옵션을 선택하면 수고로움을 덜 수 있을 것 같습니다.
명령어 수행 단계
# dnf groupinstall "Server with GUI" "Graphical Administration Tools"
# systemctl get-default
multi-user.target
# systemctl set-default graphical.target
Removed /etc/systemd/system/default.target.
Created symlink /etc/systemd/system/default.target → /usr/lib/systemd/system/graphical.target.
# systemctl get-default
graphical.target
# reboot
4. 설치 과정중에 발생한 오류 메시지 별 설치 패키지
GUI 모드에서 설치 중에 발생한 오류 메시지와, 그에 따라 설치한 패키지를 정리했습니다. 아래 패키지를 설치하고 Desktop Class로 설치 성공했습니다.
설치 중 오류 메시지 | 필요 패키지 |
install/.oui: No such file or directory | libstdc++-8.5.0-18.el8.i686 libstdc++-devel-8.5.0-18.el8.i686 |
There was an error trying to initialize the HPI library | libnsl-2.28-225.el8.x86_64 libnsl-2.28-225.el8.i686 |
Error in invoking target ‘mkldflags ntcontab.o nnfgt.o’ of makefile | libstdc++-8.5.0-18.el8.x86_64 glibc-devel-2.28-225.el8.x86_64 glibc-devel-2.28-225.el8.i686 |
//lib/x86_64-linux-gnu/libaio.so.1: undefined reference to `__stack_chk_fail@GLIBC_2.4' | libaio-0.3.109-13.el7.x86_64 libaio-devel-0.3.109-13.el7.x86_64 libaio-0.3.109-13.el7.i686 libaio-devel-0.3.109-13.el7.i686 |
그 외 필수 패키지 | libXext-1.3.4-1.el8.x86_64 libXext-1.3.4-1.el8.i686 libXext-devel-1.3.4-1.el8.x86_64 libXext-devel-1.3.4-1.el8.i686 compat-libstdc++-33-3.2.3-72.el7.x86_64 make gcc gcc-c++ elfutils-libelf-devel sysstat |
https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1397464.html
5. Error in invoking target 'agent 'nmhs' of makefile
패키지 설치만으로 해결되지 않은 경우로, 설치중에 생성된 스크립트를 수정해서 해결했습니다.
$ORACLE_HOME/sysman/lib/ins_emagent.mk 파일의 176 라인에 -lnnz11 옵션을 추가하여 저장한 후, 설치창에서 Retry 버튼을 클릭하면 오류없이 진행됩니다.
#===========================
# emdctl
#===========================
$(SYSMANBIN)emdctl:
$(MK_EMAGENT_NMECTL) -lnnz11
설치 테스트가 중구난방으로 진행되었는데 대부분 패키지 누락으로 인한 문제였고, 인스톨 로그파일을 통해 원인을 유추할 수 있었습니다. 마지막에 언급한 문제는 설치중에 생성된 스크립트를 수정하여 해결되었는데, 정식 해결방법이라기 보다는 workaround로 볼 수 있을 것 같습니다.
- Total
- Today
- Yesterday