Linux Oracle 19c(rpm) 설치과정 {23년4월20일~21일}
참고 블로그
https://hapajay.tistory.com/63
[ORACLE] 오라클 19c 설치(CentOS 7, Virtualbox)
안녕하세요~~~ 하파제이 입니다😊 이번에는 ORACLE 19c를 리눅스에 설치해보는 내용입니다! 오라클 19c 설치하기에 앞서 가상환경 셋팅은 스펙에 맞게 다 준비되어 있으니 참고하시면 됩니다! https:
hapajay.tistory.com
약 3일간 진행을 해왔던 것들을 생각해보면
1. Vmware에 RHEL설치하기 / MobaXterm 연결하기 / yum 해결하기
ㄴ레포지토리 문제 해결하기
2. Oracle 19c 설치를 위한 환경설정하기 rpm활용하여 설정잡기
ㄴ root - oracle-database-preinstall 설치 및 환경설정 확인
ㄴ root - user생성하기
ㄴ root - 방화벽해제하기
ㄴ root - 설치경로 설정 및 "권한주기"
ㄴ 서비스계정 - bash_profile 설정하기
ㄴ 서비스계정 - 압축풀기
3. X Display 설정 잡기
ㄴ 윈도우로 xming 설치하기
ㄴ root - x11-forwarding
ㄴ 서비스계정 - xhost + 및 xclock 및 xdpyinfo
대망의 4.GUI가 형성되었으니 Oracle 설치하기
문제가 해결되었으니 서비스 계정에서 ./runInstaller을 통해 실행을 하면 되겠지만, 참고한 블로그의 10번에서 확인을 해보면 부족한 패키지를 추가적으로 설치를 해줘야 한다는 문장이 존재하고 있다. 해당 블로그에서는 설치하는 과정 중에 진행을 했지만, 나는 사전 먼저 패키지를 설치한 후에 진행을 해보려고 한다.
먼저 root 상황에서 두가지를 설치해줘야 하는데 필자의 경우에는 아마도 인지는 모르겠지만, 이전에 gnome이라는 패키지를 설치한 적이 있기 때문이라서 그런지 kmod와 kmod-libs 이렇게 두가지에 대한 yum install을진행할 수 없었다.
우선은 두가지가 완성되어 있다고 가정 하에 oracle을 설치해보도록 하겠다.
./runInstaller 입력으로 실행을 하게 된다면,
길고 길었던 x11의 문제점을 해결하고 원격으로 GUI가 정상 작동된다는 것을 알 수 있다.
우선 방식에 맞게 순서대로 설치를 진행하면 될것이다.
설치 과정 중 다음과 같은 반응이 나왔는데 위에서 kmod라는 것을 설치해야 하는 것 같다라는 문장을 적은게 있는데 이미 패키지가 있기 때문에 해당 창에 나오지 않았던 것이고 나의 경우는 gcc-c++라는 패키지가 필요로 하다는 것으로 판단된다. 참고로 뒤의 숫자는 따로 입력하지 않더라도 자동으로 되는 것으로 추측이 된다.
그래서 부족한 패키지 설치를 위해 root 계정에서
[root@localhost ~]# yum -y install gcc-c++
Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package gcc-c++.x86_64 0:4.8.5-44.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==============================================================================================================================================================
Package Arch Version Repository Size
==============================================================================================================================================================
Installing:
gcc-c++ x86_64 4.8.5-44.el7 base 7.2 M
Transaction Summary
==============================================================================================================================================================
Install 1 Package
Total download size: 7.2 M
Installed size: 16 M
Downloading packages:
gcc-c++-4.8.5-44.el7.x86_64.rpm | 7.2 MB 00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : gcc-c++-4.8.5-44.el7.x86_64 1/1
Verifying : gcc-c++-4.8.5-44.el7.x86_64 1/1
Installed:
gcc-c++.x86_64 0:4.8.5-44.el7
Complete!
이와 같이 gcc-c++를 설치해주었다. 다시 oracle 설치 화면서 아직 no로 되어 있기 때문에 yes로 변경하기 위해서는 back 을 한 뒤에 다시 실행을 해주면 아래와 같이 패키지를 더이상 설치할게 없다고 나오며 igonre all을 눌러줘야 하는데
한가지 문제점이 발생하게 되었다.
다른 글에서는 해당 swap size가 yes로 되어있는데 나의 경우는 no로 되어있다는 것이다....
우선은 무시하고 next를 누르게 된다면, 이러한 창이 뜨는데 무시하고 yes를 누르자 그러면 다음 단계에서 install에 대한 문의가 남는데 그냥 설치를 해보자.
설치과정 중에 아래와 같은 문장이 나오는데 딱히 신경쓸 필요는 없어보인다. 무시하고 진행하자.
그리고 석세스..... 라고 할줄알았지만, 리스너라는게 더 필요로 하고 있는 상황이다.
리스너 생성하기
증말 해야할게 뭐가 이리 많은 것인지....
[oracle@localhost ~]$ netca
Oracle Net Services Configuration:
위의 상황까지 되었다면 아래와 같이 나오는데 문제가 한가지 있다면, 참고 블로그에서는 문제없이 자동으로 시작을 해주었지만 나의 경우는 시작이 되지 않았다.
Configuring Listener:LISTENER
Listener configuration complete.
Oracle Net Services configuration successful. The exit code is 0
그래서 나는 설정된 리스너를 실행하기 위해
lsnrctl start를 입력하였는데 다음과 같은 반응이 발생하게 되었다.
[oracle@localhost admin]$ lsnrctl start
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 20-APR-2023 15:44:27
Copyright (c) 1991, 2019, Oracle. All rights reserved.
Starting /ora19/app/oracle/product/19.0.0/db_home_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 19.0.0.0.0 - Production
System parameter file is /ora19/app/oracle/product/19.0.0/db_home_1/network/admin/listener.ora
Log messages written to /ora19/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle)(PORT=1521)))
TNS-12545: Connect failed because target host or object does not exist
TNS-12560: TNS:protocol adapter error
TNS-00515: Connect failed because target host or object does not exist
Linux Error: 99: Cannot assign requested address
Listener failed to start. See the error message(s) above...
DB 생성하기
이전에는 서비스 계정을 생성했지만, DB를 생성해야하는 상황이다.
[oracle@localhost ~]$ dbca
위의 이미지에서 글로벌데이터베이스 이름에 대해 의문점인게 참고 블로그에는 자동으로 잡혀있었던 것 같지만, 나의 경우는 그렇지 않아서 참고 블로그와 동일한 이름으로 변경을 하였다. 무엇이 맞는지 모르겠지만, 동일하게 한번 적용 후 진행을 해보려고 한다.
하지만 나는 항상 문제점이 발생되는 똥손인건지 아래와 같은 창이 발생되었다. DBT-07502???
현재의 문제점은 리스너를 문제없이 만들었으나 lsnrctl start를 했음에도 불구하고
[oracle@localhost ~]$ lsnrctl start
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 20-APR-2023 14:28:05
Copyright (c) 1991, 2019, Oracle. All rights reserved.
Starting /ora19/app/oracle/product/19.0.0/db_home_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 19.0.0.0.0 - Production
System parameter file is /ora19/app/oracle/product/19.0.0/db_home_1/network/admin/listener.ora
Log messages written to /ora19/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle)(PORT=1521)))
TNS-12545: Connect failed because target host or object does not exist
TNS-12560: TNS:protocol adapter error
TNS-00515: Connect failed because target host or object does not exist
Linux Error: 99: Cannot assign requested address
Listener failed to start. See the error message(s) above...
내용을 보자면 리스너에 대한 에러가 발생되고 있는 상황이다.
리스너의 문제점은 다른 포스팅에서 한번 더 다뤄서 진행해보는 것으로 하고 사수의 도움으로 해결을 했다.
## 처음 리스너를 생성했을 당시 아래의 내용을 보면 LISTENER1 에서 oracle이 잡혀있는 것을 확인할 수 있다. (참고로 현재는 LISTENER을 사용하고 있음.) 내용을 살펴보면, HOST에 IP 주소가 아닌 oracle로 잡혀있는데 이는
https://widm2240.tistory.com/31
Linux에 Oracle 설치 진행 시 문제는 yum{23년4월17일}
현재 VMware를 통해 Red Hat Enterprise Linux (RHEL) 운영 체제를 만든 상황에서 MobaXterm을 통해 Oracle을 설치하고자 하는 중이다. 내 이해가 맞다면 VMware에서만으로도 진행이 가능하지만, 현재 공부를 하고
widm2240.tistory.com
다른 블로그 참고 당시 host를 설정하고 했었는데 하지말라는 문장을 확인해볼 수 있을 것이다. 참고 블로거는 어떻게 가능하게 됬는지 이유나 안됬을때의 피드백에 대해서 명시되어 있는게 없었지만, 아무튼 hosts에 oracle을 잡아버렸기 때문에 리스너 생성 당시 자동으로 잡힌것으로 보여진다. 그래서 직접 vi를 통해 본인이 수정을 하거나 아니면 애초에 host 이름을 설정 잡지 않도록 하는게 가장 현명하다. 실제로 LISTENER1은 작동이 안되는 것이기 때문에 삭제를 해도 되는 것이지만, 현재는 공부하는 입장이기 때문에 그냥 그대로 두고 진행을 해볼 예정이다. 어짜피 Oracle DB생성 시에 사용을 안하면 그만이니까.
[oracle@localhost ~]$ cd $ORACLE_HOME
[oracle@localhost db_home_1]$ cd network/admin/
[oracle@localhost admin]$ cat listener.ora
# listener.ora Network Configuration File: /ora19/app/oracle/product/19.0.0/db_home_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER1 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1522))
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.111.137)(PORT = 1522))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
)
)
## 추가적으로 본인이 해당 작업중 업무가 종료되어 다시 설치를 할때 나의 경우는 리스너가 동작중이지 않는다는 문구가 발생되었는데 이때는 이미 해결이 된 상황인 만큼 리스너에 대해서 lsnrctl start을 입력으로 다음과 같은 답변을 받으면 된다. 아래의 내용은 위와는 다르게 제대로 작동이 되었다는 것을 알 수 있다.
[oracle@localhost ~]$ lsnrctl start
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 21-APR-2023 09:21:07
Copyright (c) 1991, 2019, Oracle. All rights reserved.
Starting /ora19/app/oracle/product/19.0.0/db_home_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 19.0.0.0.0 - Production
System parameter file is /ora19/app/oracle/product/19.0.0/db_home_1/network/admin/listener.ora
Log messages written to /ora19/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.111.137)(PORT=1522)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1522)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.111.137)(PORT=1522)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 21-APR-2023 09:21:09
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /ora19/app/oracle/product/19.0.0/db_home_1/network/admin/listener.ora
Listener Log File /ora19/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.111.137)(PORT=1522)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1522)))
The listener supports no services
The command completed successfully
아래부터는 설정을 잡는 부분인데 탭부분을 잘 살펴보고 체크를 해줘야 한다.
위와 같이 아무런 문제 없이 설치가 완료 되었다는 것을 알 수 있다.
이제 마지막 작업이 한가지 남았는데 제대로 진행이 되는지 확인해야하는 작업이다.
[oracle@localhost ~]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Fri Apr 21 10:29:34 2023
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SQL>
이렇게 되었다면 끝! 약 4일하고 2시간정도의 시간 동안 OS 설치 및 Oracle 19c 를 진행했다.