Database 생성

DBCA 실행

$ dbca

 

데이터베이스 작업 선택

 

고급 구성 선택

 

데이터베이스 배치 유형 선택

 

노드 선택

rac1, rac2 선택

 

데이터베이스 식별 세부 정보 지정

전역데이터베이스 이름 및 SID 명을 입력

컨테이너 데이터베이스는 생성하지 않는다.

 

데이터베이스 저장 영역 옵션 선택

데이터베이스 저장 영역 유형은 ASM 관리로 설정하고 파일 위치는 +DATA로 설정한다.

리두로그 및 컨트롤 파일 다중화가 필요하다면 리두로그 및 제어 파일 다중화를 선택하여 구성한다.

 

리두로그 및 제어 파일 다중화 구성

+DATA, +FRA 영역에 파일을 다중화한다.

 

파일 위치변수를 클릭하면 소프트웨어가 설치된 경로 및 SID 명을 확인할 수 있다.

 

빠른 복구 옵션 선택

빠른 복구 영역은 +FRA 영역으로 지정한다.

아카이브 모드를 사용할 것이므로 아카이브 모드 사용을 체크하고 아카이브모드 매개변수 편집을 선택한다.

 

아카이브 모드 매개변수 설정

.arc 로 형식을 변경한다.

 

Oracle Database Vault 구성 옵션 선택

 

구성 옵션 지정

메모리 - 자동 메미로 관리 사용

 

문자집합 - KO16MSWIN949 선택

 

관리 옵션 지정

모두 사용하지 않으므로 체크를 모두 하지 않고 다음으로 넘어간다.

 

관리 비밀번호 설정 (oracle)

 

 

데이터베이스 생성 옵션 선택

모든 초기화 매개변수에서 초기 파라미터를 변경할 수 있다.

 

저장 영역 위치 사용자 정의

리두로그 그룹 추가 및 컨트롤 파일을 수정

 

리두로그 그룹 설정

그룹 3번은 스레드 1로 변경한다.

 

리두로그 그룹 추가

 

리두로그 그룹 5 추가

 

리두로그 그룹 6 추가

 

리두로그 그룹 생성 확인

1~3번 그룹은 1번 스레드에 할당하고, 나머지 4~6번 그룹은 2번 스레드에 할당

 

데이터베이스 생성 스크립트 생성

별도 스크립트 저장을 위해 데이터베이스 생성 스크립트 생성을 체크하고 다음으로 넘어간다.

 

필요조건 검사 수행

 

모두 무시하고 진행

 

 

응답파일 저장

 

 

설치 진행

 

 

설치 완료

 

DB 상태 확인

[racdb1:/home/oracle]> sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Fri Feb 3 13:27:06 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> select instance_name, version, status from gv$instance;

INSTANCE_N VERSION    STATUS
---------- ---------- ----------
racdb1     19.0.0.0.0 OPEN
racdb2     19.0.0.0.0 OPEN

 

CRS 상태 확인

crsctl stat res -t
[root@rac1 ~]# crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.chad
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.net1.network
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.ons
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        ONLINE  OFFLINE                               STABLE
ora.CRS.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.DATA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.FRA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rac1                     STABLE
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       rac2                     STABLE
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       rac2                     STABLE
ora.asm(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     Started,STABLE
      2        ONLINE  ONLINE       rac2                     Started,STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.cvu
      1        ONLINE  ONLINE       rac2                     STABLE
ora.qosmserver
      1        ONLINE  ONLINE       rac2                     STABLE
ora.rac1.vip
      1        ONLINE  ONLINE       rac1                     STABLE
ora.rac2.vip
      1        ONLINE  ONLINE       rac2                     STABLE
ora.racdb.db
      1        ONLINE  ONLINE       rac1                     Open,HOME=/u01/app/o
                                                             racle/product/19c/db
                                                             _1,STABLE
      2        ONLINE  ONLINE       rac2                     Open,HOME=/u01/app/o
                                                             racle/product/19c/db
                                                             _1,STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       rac1                     STABLE
ora.scan2.vip
      1        ONLINE  ONLINE       rac2                     STABLE
ora.scan3.vip
      1        ONLINE  ONLINE       rac2                     STABLE
--------------------------------------------------------------------------------

 

 

+) 노드간 시간 동기화

설치가 끝나고 서버 시간을 양쪽 노드 모두 확인한다.

[root@rac1 ~]# date
2023. 02. 03. (금) 17:23:49 KST

 

두 노드 사이에 시간이 일치하지 않으면 시간 동기화를 해준다.

rdate -s 203.248.240.103

 

 

 

참조

https://dataforum.io/display/ORCL/Oracle+Database+19c+Real+Application+Cluster

https://positivemh.tistory.com/523

Database 소프트웨어 설치 사전 작업

설치 파일 압축 해제
설치 경로 생성 및 설치 파일 압축 해제

설치 경로에 설치파일을 다운받아 넣어둔다.

[racdb1:/home/oracle]> mkdir -p $DB_HOME
[racdb1:/home/oracle]> cd $DB_HOME
[racdb1:/u01/app/oracle/product/19c/db_1]> ls -alrt
합계 2987996
drwxr-xr-x 3 oracle oinstall         18  2월  3 10:28 ..
drwxr-xr-x 2 oracle oinstall         42  2월  3 10:29 .
-rw-r--r-- 1 oracle oinstall 3059705302  2월  3 10:31 LINUX.X64_193000_db_home.zip
[racdb1:/u01/app/oracle/product/19c/db_1]> unzip LINUX.X64_193000_db_home.zip

 

Database 소프트웨어 설치

runInstaller 실행

cd $DB_HOME
./runInstaller

 

구성 옵션 선택

소프트웨어(엔진)만 설치할 것이므로 소프트웨어만 설정을 선택한다.

데이터베이스는 추후 생성한다.

 

RAC 설치 선택

 

노드 rac1, rac2 선택

 

Enterprise Edition 선택

 

Oracle base 확인 및 Oracle home 확인

 

권한이 부여된 운영체제 그룹 선택

모두 dba로 선택한다.

 

루트 스크립트 실행 구성 선택

 

필요 조건 검사 수행

 

교체크기는 swap 사이즈가 지정되어있지 않아 발생한 것으로 무시하고 진행

SCAN IP가 DNS에 등록되어 있지 않아서 발생한 문제이므로 모두 무시 하고 진행

 

 

응답 파일 저장

 

 

설치 시작

 

 

루트 스크립트 실행 확인

 

Oracle Database 소프트웨어 설치 완료

 

 

 

참조

https://dataforum.io/display/ORCL/Oracle+Database+19c+Real+Application+Cluster

https://positivemh.tistory.com/523

ASM 디스크 그룹 추가

ASMCA 실행

grid_env
asmca

 

ASMCA 실행 화면

 

디스크 그룹 추가

 

DATA 디스크 그룹 추가

이름, 경로 선택 후 생성

 

 

FRA 디스크 그룹 추가

 

DATA, FRA 디스크 그룹 추가 완료

 

작업 결과 확인

crsctl stat res -t

클러스터 리소스에 DATA와 FRA 디스크 그룹이 추가되었다.

[root@rac1 ~]# crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.chad
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.net1.network
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.ons
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.CRS.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.DATA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        ONLINE  OFFLINE                               STABLE
ora.FRA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        ONLINE  OFFLINE                               STABLE
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rac2                     STABLE
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       rac1                     STABLE
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       rac1                     STABLE
ora.asm(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     Started,STABLE
      2        ONLINE  ONLINE       rac2                     Started,STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.cvu
      1        ONLINE  ONLINE       rac1                     STABLE
ora.qosmserver
      1        ONLINE  ONLINE       rac1                     STABLE
ora.rac1.vip
      1        ONLINE  ONLINE       rac1                     STABLE
ora.rac2.vip
      1        ONLINE  ONLINE       rac2                     STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       rac2                     STABLE
ora.scan2.vip
      1        ONLINE  ONLINE       rac1                     STABLE
ora.scan3.vip
      1        ONLINE  ONLINE       rac1                     STABLE
--------------------------------------------------------------------------------

 

 

참조

https://dataforum.io/display/ORCL/Oracle+Database+19c+Real+Application+Cluster

https://positivemh.tistory.com/523

GRID Infrastructure 설치 사전 작업

GRID_HOME 경로 생성

1번 노드 oracle 계정으로 접속한 후 grid 환경변수로 넘어간다.

$GRID_HOME 경로에 디렉토리를 생성한다.

oracle 계정에서 실행

[racdb1:/home/oracle]> grid_env
[+ASM1:/home/oracle]> mkdir -p $GRID_HOME

 

GRID 설치파일 업로드

GRID_HOME에 grid 설치파일을 넣어준다.

[+ASM1:/home/oracle]> cd $GRID_HOME
[+ASM1:/u01/app/19c/grid]> ls -alrt
합계 2821472
drwxr-xr-x 3 oracle oinstall         18  2월  1 11:18 ..
drwxr-xr-x 2 oracle oinstall         44  2월  1 11:20 .
-rw-r--r-- 1 oracle oinstall 2889184573  2월  1 11:21 LINUX.X64_193000_grid_home.zip

 

Grid 설치파일 압축 해제

[+ASM1:/u01/app/19c/grid]> unzip LINUX.X64_193000_grid_home.zip

 

cvuqdisk 패키지 설치

패키지 설치 중 "오류: can't create transaction lock on /var/lib/rpm/.rpm.lock (허가 거부)" 에러가 뜨게 되는데 이 부분은 root 계정에서 실행을 하지 않아 생긴 오류이다.

[+ASM1:/u01/app/19c/grid]> cd $GRID_HOME/cv/rpm/
[+ASM1:/u01/app/19c/grid/cv/rpm]> rpm -Uvh cvuqdisk-1.0.10-1.rpm
오류: can't create transaction lock on /var/lib/rpm/.rpm.lock (허가 거부)

 

cvuqdisk 패키지 1, 2번 노드 설치

root 계정에서 cvuqdisk 패키지 설치

[root@rac1 ~]# cd $GRID_HOME/cv/rpm
[root@rac1 rpm]# rpm -Uvh cvuqdisk-1.0.10-1.rpm
준비 중...                         ################################# [100%]
Using default group oinstall to install package
Updating / installing...
   1:cvuqdisk-1.0.10-1                ################################# [100%]

 

2번 노드로 rpm 파일 전송

[root@rac1 rpm]# scp cvuqdisk-1.0.10-1.rpm rac2:/tmp
The authenticity of host 'rac2 (10.0.2.16)' can't be established.
ECDSA key fingerprint is SHA256:8Hcia2qTaZbb5QhSOqXIu8yS2pucxfNE/O4h4PhtDL8.
ECDSA key fingerprint is MD5:3d:9e:20:72:be:7d:65:7f:6a:26:19:61:ef:46:ce:2b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'rac2,10.0.2.16' (ECDSA) to the list of known hosts.
root@rac2's password:
cvuqdisk-1.0.10-1.rpm                                                    100%   11KB   4.3MB/s   00:00

 

2번 노드 ssh 접속 및 cvuqdisk 패키지 설치

root 에서 실행

[root@rac1 rpm]# ssh root@rac2
root@rac2's password:
Last login: Thu Feb  2 17:10:57 2023 from 192.168.56.1
[root@rac2 ~]# cd /tmp
[root@rac2 tmp]# rpm -Uvh cvuqdisk-1.0.10-1.rpm
준비 중...                         ################################# [100%]
Using default group oinstall to install package
Updating / installing...
   1:cvuqdisk-1.0.10-1                ################################# [100%]
[root@rac2 tmp]# exit
logout
Connection to rac2 closed.

 

oracle 유저 패스워드 없는 SSH 접속 환경 설정

(yes, oracle pw 입력)

oracle 계정에서 실행

grid_env
cd $GRID_HOME/oui/prov/resources/scripts
./sshUserSetup.sh -user oracle -hosts "rac1 rac2" -noPromptPassphrase -advanced
더보기
[racdb1:/home/oracle]> grid_env
[+ASM1:/home/oracle]> cd $GRID_HOME/oui/prov/resources/scripts
[+ASM1:/u01/app/19c/grid/oui/prov/resources/scripts]> ./sshUserSetup.sh -user oracle -hosts "rac1 rac2" -noPromptPassphrase -advanced
The output of this script is also logged into /tmp/sshUserSetup_2023-02-01-14-55-19.log
Hosts are rac1 rac2
user is oracle
Platform:- Linux
Checking if the remote hosts are reachable
PING rac1 (10.0.2.15) 56(84) bytes of data.
64 bytes from rac1 (10.0.2.15): icmp_seq=1 ttl=64 time=0.022 ms
64 bytes from rac1 (10.0.2.15): icmp_seq=2 ttl=64 time=0.026 ms
64 bytes from rac1 (10.0.2.15): icmp_seq=3 ttl=64 time=0.028 ms
64 bytes from rac1 (10.0.2.15): icmp_seq=4 ttl=64 time=0.029 ms
64 bytes from rac1 (10.0.2.15): icmp_seq=5 ttl=64 time=0.026 ms

--- rac1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4108ms
rtt min/avg/max/mdev = 0.022/0.026/0.029/0.004 ms
PING rac2 (10.0.2.16) 56(84) bytes of data.
64 bytes from rac2 (10.0.2.16): icmp_seq=1 ttl=64 time=4.21 ms
64 bytes from rac2 (10.0.2.16): icmp_seq=2 ttl=64 time=0.560 ms
64 bytes from rac2 (10.0.2.16): icmp_seq=3 ttl=64 time=1.75 ms
64 bytes from rac2 (10.0.2.16): icmp_seq=4 ttl=64 time=0.794 ms
64 bytes from rac2 (10.0.2.16): icmp_seq=5 ttl=64 time=0.513 ms

--- rac2 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4035ms
rtt min/avg/max/mdev = 0.513/1.566/4.210/1.396 ms
Remote host reachability check succeeded.
The following hosts are reachable: rac1 rac2.
The following hosts are not reachable: .
All hosts are reachable. Proceeding further...
firsthost rac1
numhosts 2
The script will setup SSH connectivity from the host rac1 to all
the remote hosts. After the script is executed, the user can use SSH to run
commands on the remote hosts or copy files between this host rac1
and the remote hosts without being prompted for passwords or confirmations.

NOTE 1:
As part of the setup procedure, this script will use ssh and scp to copy
files between the local host and the remote hosts. Since the script does not
store passwords, you may be prompted for the passwords during the execution of
the script whenever ssh or scp is invoked.

NOTE 2:
AS PER SSH REQUIREMENTS, THIS SCRIPT WILL SECURE THE USER HOME DIRECTORY
AND THE .ssh DIRECTORY BY REVOKING GROUP AND WORLD WRITE PRIVILEGES TO THESE
directories.

Do you want to continue and let the script make the above mentioned changes (yes/no)?
yes		# yes 입력

The user chose yes
User chose to skip passphrase related questions.
Creating .ssh directory on local host, if not present already
Creating authorized_keys file on local host
Changing permissions on authorized_keys to 644 on local host
Creating known_hosts file on local host
Changing permissions on known_hosts to 644 on local host
Creating config file on local host
If a config file exists already at /home/oracle/.ssh/config, it would be backed up to /home/oracle/.ssh/config.backup.
Removing old private/public keys on local host
Running SSH keygen on local host with empty passphrase
Generating public/private rsa key pair.
Your identification has been saved in /home/oracle/.ssh/id_rsa.
Your public key has been saved in /home/oracle/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:nmYpaT6h/TbTnjqKgijXQ7HR/WSQlOGM9nW1Vj0xHMs oracle@rac1
The key's randomart image is:
+---[RSA 1024]----+
|       .o+    o+=|
|       ++    ..=+|
|     .o.o.. . oE.|
|    o.....o. .   |
|     +  S+       |
|    o .o o.      |
|.. o o+.*.       |
|+ o ++o+= ..     |
|.. ...o=o*o      |
+----[SHA256]-----+
Creating .ssh directory and setting permissions on remote host rac1
THE SCRIPT WOULD ALSO BE REVOKING WRITE PERMISSIONS FOR group AND others ON THE HOME DIRECTORY FOR oracle. THIS IS AN SSH REQUIREMENT.
The script would create ~oracle/.ssh/config file on remote host rac1. If a config file exists already at ~oracle/.ssh/config, it would be backed up to ~oracle/.ssh/config.backup.
The user may be prompted for a password here since the script would be running SSH on host rac1.
Warning: Permanently added 'rac1,10.0.2.15' (ECDSA) to the list of known hosts.
oracle@rac1's password:		# oracle PW 입력
Done with creating .ssh directory and setting permissions on remote host rac1.
Creating .ssh directory and setting permissions on remote host rac2
THE SCRIPT WOULD ALSO BE REVOKING WRITE PERMISSIONS FOR group AND others ON THE HOME DIRECTORY FOR oracle. THIS IS AN SSH REQUIREMENT.
The script would create ~oracle/.ssh/config file on remote host rac2. If a config file exists already at ~oracle/.ssh/config, it would be backed up to ~oracle/.ssh/config.backup.
The user may be prompted for a password here since the script would be running SSH on host rac2.
Warning: Permanently added 'rac2,10.0.2.16' (ECDSA) to the list of known hosts.
oracle@rac2's password:		# oracle PW 입력
Done with creating .ssh directory and setting permissions on remote host rac2.
Copying local host public key to the remote host rac1
The user may be prompted for a password or passphrase here since the script would be using SCP for host rac1.
oracle@rac1's password:		# oracle PW 입력
Done copying local host public key to the remote host rac1
Copying local host public key to the remote host rac2
The user may be prompted for a password or passphrase here since the script would be using SCP for host rac2.
oracle@rac2's password:		# oracle PW 입력
Done copying local host public key to the remote host rac2
Creating keys on remote host rac1 if they do not exist already. This is required to setup SSH on host rac1.

Creating keys on remote host rac2 if they do not exist already. This is required to setup SSH on host rac2.
Generating public/private rsa key pair.
Your identification has been saved in .ssh/id_rsa.
Your public key has been saved in .ssh/id_rsa.pub.
The key fingerprint is:
SHA256:n9l17dexS1gKJVzdSMuP44sQ/XzPxvutOX7LPb0g/h0 oracle@rac2
The key's randomart image is:
+---[RSA 1024]----+
|             oo..|
|          . ...o.|
|           o .o  |
|           .o  o.|
|        S ... +o+|
|         . =.=+++|
|          =..++E*|
|          ....**%|
|           .oo=%%|
+----[SHA256]-----+
Updating authorized_keys file on remote host rac1
Updating known_hosts file on remote host rac1
Updating authorized_keys file on remote host rac2
Updating known_hosts file on remote host rac2
cat: /home/oracle/.ssh/known_hosts.tmp: 그런 파일이나 디렉터리가 없습니다
cat: /home/oracle/.ssh/authorized_keys.tmp: 그런 파일이나 디렉터리가 없습니다
SSH setup is complete.

------------------------------------------------------------------------
Verifying SSH setup
===================
The script will now run the date command on the remote nodes using ssh
to verify if ssh is setup correctly. IF THE SETUP IS CORRECTLY SETUP,
THERE SHOULD BE NO OUTPUT OTHER THAN THE DATE AND SSH SHOULD NOT ASK FOR
PASSWORDS. If you see any output other than date or are prompted for the
password, ssh is not setup correctly and you will need to resolve the
issue and set up ssh again.
The possible causes for failure could be:
1. The server settings in /etc/ssh/sshd_config file do not allow ssh
for user oracle.
2. The server may have disabled public key based authentication.
3. The client public key on the server may be outdated.
4. ~oracle or ~oracle/.ssh on the remote host may not be owned by oracle.
5. User may not have passed -shared option for shared remote users or
may be passing the -shared option for non-shared remote users.
6. If there is output in addition to the date, but no password is asked,
it may be a security alert shown as part of company policy. Append the
additional text to the <OMS HOME>/sysman/prov/resources/ignoreMessages.txt file.
------------------------------------------------------------------------
--rac1:--
Running /usr/bin/ssh -x -l oracle rac1 date to verify SSH connectivity has been setup from local host to rac1.
IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL. Please note that being prompted for a passphrase may be OK but being prompted for a password is ERROR.
2023. 02. 01. (수) 14:56:26 KST
------------------------------------------------------------------------
--rac2:--
Running /usr/bin/ssh -x -l oracle rac2 date to verify SSH connectivity has been setup from local host to rac2.
IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL. Please note that being prompted for a passphrase may be OK but being prompted for a password is ERROR.
2023. 02. 01. (수) 14:56:26 KST
------------------------------------------------------------------------
------------------------------------------------------------------------
Verifying SSH connectivity has been setup from rac1 to rac1
IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL.
2023. 02. 01. (수) 14:56:27 KST
------------------------------------------------------------------------
------------------------------------------------------------------------
Verifying SSH connectivity has been setup from rac1 to rac2
IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL.
2023. 02. 01. (수) 14:56:27 KST
------------------------------------------------------------------------
-Verification from complete-
SSH verification complete.

 

클러스터 구성 환경 사전 검증
사전 환경 검증 스크립트 실행 (kernel / package 등)

cd $GRID_HOME
./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -osdba dba -orainv oinstall -fixup -method root -networks enp0s3/enp0s8 -verbose
더보기

교체 크기 확인이 실패로 뜨는데 이 부분은 swap 사이즈 부족으로 발생하는 에러이다. (초기 리눅스 설치시 파티션 작업 필요)

테스트로 설치하는 것이므로 나중에 Grid 설치시 무시하고 진행한다.

[+ASM1:/home/oracle]> cd $GRID_HOME
[+ASM1:/u01/app/19c/grid]> ./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -osdba dba -orainv oinstall -fixup -method root -networks enp0s3/enp0s8 -verbose
"ROOT" 비밀번호 입력:

물리적 메모리 확인 중...
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          7.7805GB (8158464.0KB)    8GB (8388608.0KB)         성공
  rac1          7.7805GB (8158464.0KB)    8GB (8388608.0KB)         성공
물리적 메모리 확인 중...성공
사용 가능한 물리적 메모리 확인 중...
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          7.4623GB (7824744.0KB)    50MB (51200.0KB)          성공
  rac1          6.7808GB (7110212.0KB)    50MB (51200.0KB)          성공
사용 가능한 물리적 메모리 확인 중...성공
교체 크기 확인 중...
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          4.8008GB (5033980.0KB)    7.7805GB (8158464.0KB)    실패
  rac1          4.8008GB (5033980.0KB)    7.7805GB (8158464.0KB)    실패
교체 크기 확인 중...실패 (PRVF-7573)
사용 가능한 공간: rac2:/usr,rac2:/var,rac2:/etc,rac2:/sbin,rac2:/tmp 확인 중...
  경로                노드 이름         마운트 위치        사용 가능         필수            상태
  ----------------  ------------  ------------  ------------  ------------  ------------
  /usr              rac2          /             35.7617GB     25MB          성공
  /var              rac2          /             35.7617GB     5MB           성공
  /etc              rac2          /             35.7617GB     25MB          성공
  /sbin             rac2          /             35.7617GB     10MB          성공
  /tmp              rac2          /             35.7617GB     1GB           성공
사용 가능한 공간: rac2:/usr,rac2:/var,rac2:/etc,rac2:/sbin,rac2:/tmp 확인 중...성공
사용 가능한 공간: rac1:/usr,rac1:/var,rac1:/etc,rac1:/sbin,rac1:/tmp 확인 중...
  경로                노드 이름         마운트 위치        사용 가능         필수            상태
  ----------------  ------------  ------------  ------------  ------------  ------------
  /usr              rac1          /             26.7018GB     25MB          성공
  /var              rac1          /             26.7018GB     5MB           성공
  /etc              rac1          /             26.7018GB     25MB          성공
  /sbin             rac1          /             26.7018GB     10MB          성공
  /tmp              rac1          /             26.7018GB     1GB           성공
사용 가능한 공간: rac1:/usr,rac1:/var,rac1:/etc,rac1:/sbin,rac1:/tmp 확인 중...성공
사용자 존재 여부: oracle 확인 중...
  노드 이름         상태                        설명
  ------------  ------------------------  ------------------------
  rac2          성공                        존재함(54321)
  rac1          성공                        존재함(54321)

  UID가 동일한 사용자입니다.: 54321 확인 중...성공
사용자 존재 여부: oracle 확인 중...성공
그룹 존재 여부: asmadmin 확인 중...
  노드 이름         상태                        설명
  ------------  ------------------------  ------------------------
  rac2          실패                        존재하지 않음
  rac1          실패                        존재하지 않음
그룹 존재 여부: asmadmin 확인 중...실패 (PRVG-10461)
그룹 존재 여부: dba 확인 중...
  노드 이름         상태                        설명
  ------------  ------------------------  ------------------------
  rac2          성공                        존재함
  rac1          성공                        존재함
그룹 존재 여부: dba 확인 중...성공
그룹 존재 여부: oinstall 확인 중...
  노드 이름         상태                        설명
  ------------  ------------------------  ------------------------
  rac2          성공                        존재함
  rac1          성공                        존재함
그룹 존재 여부: oinstall 확인 중...성공
그룹 멤버쉽: asmadmin 확인 중...
  노드 이름             사용자가 존재함      그룹이 존재함       그룹의 사용자       상태
  ----------------  ------------  ------------  ------------  ----------------
  rac2              예             아니오           아니오           실패
  rac1              예             아니오           아니오           실패
그룹 멤버쉽: asmadmin 확인 중...실패 (PRVG-10460)
그룹 멤버쉽: oinstall(기본) 확인 중...
  노드 이름             사용자가 존재함      그룹이 존재함       그룹의 사용자       기본            상태  
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac2              예             예             예             예             성공
  rac1              예             예             예             예             성공
그룹 멤버쉽: oinstall(기본) 확인 중...성공
그룹 멤버쉽: dba 확인 중...
  노드 이름             사용자가 존재함      그룹이 존재함       그룹의 사용자       상태
  ----------------  ------------  ------------  ------------  ----------------
  rac2              예             예             예             성공
  rac1              예             예             예             성공
그룹 멤버쉽: dba 확인 중...성공
실행 레벨 확인 중...
  노드 이름         실행 레벨                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          5                         3,5                       성공
  rac1          5                         3,5                       성공
실행 레벨 확인 중...성공
완전 제한: 최대 열린 파일 기술자 확인 중...
  노드 이름             유형            사용 가능         필수            상태
  ----------------  ------------  ------------  ------------  ----------------
  rac2              완전            65536         65536         성공
  rac1              완전            65536         65536         성공
완전 제한: 최대 열린 파일 기술자 확인 중...성공
부분 제한: 최대 열린 파일 기술자 확인 중...
  노드 이름             유형            사용 가능         필수            상태
  ----------------  ------------  ------------  ------------  ----------------
  rac2              부분            1024          1024          성공
  rac1              부분            1024          1024          성공
부분 제한: 최대 열린 파일 기술자 확인 중...성공
완전 제한: 최대 사용자 프로세스 확인 중...
  노드 이름             유형            사용 가능         필수            상태
  ----------------  ------------  ------------  ------------  ----------------
  rac2              완전            16384         16384         성공
  rac1              완전            16384         16384         성공
완전 제한: 최대 사용자 프로세스 확인 중...성공
부분 제한: 최대 사용자 프로세스 확인 중...
  노드 이름             유형            사용 가능         필수            상태
  ----------------  ------------  ------------  ------------  ----------------
  rac2              부분            16384         2047          성공
  rac1              부분            16384         2047          성공
부분 제한: 최대 사용자 프로세스 확인 중...성공
부분 제한: 최대 스택 크기 확인 중...
  노드 이름             유형            사용 가능         필수            상태
  ----------------  ------------  ------------  ------------  ----------------
  rac2              부분            10240         10240         성공
  rac1              부분            10240         10240         성공
부분 제한: 최대 스택 크기 확인 중...성공
구조 확인 중...
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          x86_64                    x86_64                    성공
  rac1          x86_64                    x86_64                    성공
구조 확인 중...성공
OS 커널 버전 확인 중...
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          4.14.35-1818.3.3.el7uek.x86_64  4.1.12                    성공
  rac1          4.14.35-1818.3.3.el7uek.x86_64  4.1.12                    성공
OS 커널 버전 확인 중...성공
OS 커널 매개변수: semmsl 확인 중...
  노드 이름             현재            구성됨           필수            상태            설명
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac1              250           250           250           성공
  rac2              250           250           250           성공
OS 커널 매개변수: semmsl 확인 중...성공
OS 커널 매개변수: semmns 확인 중...
  노드 이름             현재            구성됨           필수            상태            설명
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac1              32000         32000         32000         성공
  rac2              32000         32000         32000         성공
OS 커널 매개변수: semmns 확인 중...성공
OS 커널 매개변수: semopm 확인 중...
  노드 이름             현재            구성됨           필수            상태            설명
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac1              100           100           100           성공
  rac2              100           100           100           성공
OS 커널 매개변수: semopm 확인 중...성공
OS 커널 매개변수: semmni 확인 중...
  노드 이름             현재            구성됨           필수            상태            설명
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac1              128           128           128           성공
  rac2              128           128           128           성공
OS 커널 매개변수: semmni 확인 중...성공
OS 커널 매개변수: shmmax 확인 중...
  노드 이름             현재            구성됨           필수            상태            설명
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac1              4398046511104  4398046511104  4177133568    성공
  rac2              4398046511104  4398046511104  4177133568    성공
OS 커널 매개변수: shmmax 확인 중...성공
OS 커널 매개변수: shmmni 확인 중...
  노드 이름             현재            구성됨           필수            상태            설명
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac1              4096          4096          4096          성공
  rac2              4096          4096          4096          성공
OS 커널 매개변수: shmmni 확인 중...성공
OS 커널 매개변수: shmall 확인 중...
  노드 이름             현재            구성됨           필수            상태            설명
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac1              1073741824    1073741824    1073741824    성공
  rac2              1073741824    1073741824    1073741824    성공
OS 커널 매개변수: shmall 확인 중...성공
OS 커널 매개변수: file-max 확인 중...
  노드 이름             현재            구성됨           필수            상태            설명
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac1              6815744       6815744       6815744       성공
  rac2              6815744       6815744       6815744       성공
OS 커널 매개변수: file-max 확인 중...성공
OS 커널 매개변수: ip_local_port_range 확인 중...
  노드 이름             현재            구성됨           필수            상태            설명
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac1              between 9000 & 65500  between 9000 & 65500  between 9000 & 65535  성공
  rac2              between 9000 & 65500  between 9000 & 65500  between 9000 & 65535  성공
OS 커널 매개변수: ip_local_port_range 확인 중...성공
OS 커널 매개변수: rmem_default 확인 중...
  노드 이름             현재            구성됨           필수            상태            설명
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac1              262144        262144        262144        성공
  rac2              262144        262144        262144        성공
OS 커널 매개변수: rmem_default 확인 중...성공
OS 커널 매개변수: rmem_max 확인 중...
  노드 이름             현재            구성됨           필수            상태            설명
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac1              4194304       4194304       4194304       성공
  rac2              4194304       4194304       4194304       성공
OS 커널 매개변수: rmem_max 확인 중...성공
OS 커널 매개변수: wmem_default 확인 중...
  노드 이름             현재            구성됨           필수            상태            설명
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac1              262144        262144        262144        성공
  rac2              262144        262144        262144        성공
OS 커널 매개변수: wmem_default 확인 중...성공
OS 커널 매개변수: wmem_max 확인 중...
  노드 이름             현재            구성됨           필수            상태            설명
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac1              1048576       1048576       1048576       성공
  rac2              1048576       1048576       1048576       성공
OS 커널 매개변수: wmem_max 확인 중...성공
OS 커널 매개변수: aio-max-nr 확인 중...
  노드 이름             현재            구성됨           필수            상태            설명
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac1              1048576       1048576       1048576       성공
  rac2              1048576       1048576       1048576       성공
OS 커널 매개변수: aio-max-nr 확인 중...성공
OS 커널 매개변수: panic_on_oops 확인 중...
  노드 이름             현재            구성됨           필수            상태            설명
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac1              1             1             1             성공
  rac2              1             1             1             성공
OS 커널 매개변수: panic_on_oops 확인 중...성공
패키지: kmod-20-21 (x86_64) 확인 중...
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          kmod(x86_64)-20-23.0.1.el7  kmod(x86_64)-20-21        성공
  rac1          kmod(x86_64)-20-23.0.1.el7  kmod(x86_64)-20-21        성공
패키지: kmod-20-21 (x86_64) 확인 중...성공
패키지: kmod-libs-20-21 (x86_64) 확인 중...
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          kmod-libs(x86_64)-20-23.0.1.el7  kmod-libs(x86_64)-20-21   성공
  rac1          kmod-libs(x86_64)-20-23.0.1.el7  kmod-libs(x86_64)-20-21   성공
패키지: kmod-libs-20-21 (x86_64) 확인 중...성공
패키지: binutils-2.23.52.0.1 확인 중...
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          binutils-2.27-34.base.0.1.el7  binutils-2.23.52.0.1      성공
  rac1          binutils-2.27-34.base.0.1.el7  binutils-2.23.52.0.1      성공
패키지: binutils-2.23.52.0.1 확인 중...성공
패키지: compat-libcap1-1.10 확인 중...
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          compat-libcap1-1.10-7.el7  compat-libcap1-1.10       성공
  rac1          compat-libcap1-1.10-7.el7  compat-libcap1-1.10       성공
패키지: compat-libcap1-1.10 확인 중...성공
패키지: libgcc-4.8.2 (x86_64) 확인 중...
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          libgcc(x86_64)-4.8.5-36.0.1.el7  libgcc(x86_64)-4.8.2      성공
  rac1          libgcc(x86_64)-4.8.5-36.0.1.el7  libgcc(x86_64)-4.8.2      성공
패키지: libgcc-4.8.2 (x86_64) 확인 중...성공
패키지: libstdc++-4.8.2 (x86_64) 확인 중...
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          libstdc++(x86_64)-4.8.5-36.0.1.el7  libstdc++(x86_64)-4.8.2   성공
  rac1          libstdc++(x86_64)-4.8.5-36.0.1.el7  libstdc++(x86_64)-4.8.2   성공
패키지: libstdc++-4.8.2 (x86_64) 확인 중...성공
패키지: libstdc++-devel-4.8.2 (x86_64) 확인 중...
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          libstdc++-devel(x86_64)-4.8.5-36.0.1.el7  libstdc++-devel(x86_64)-4.8.2  성공
  rac1          libstdc++-devel(x86_64)-4.8.5-36.0.1.el7  libstdc++-devel(x86_64)-4.8.2  성공
패키지: libstdc++-devel-4.8.2 (x86_64) 확인 중...성공
패키지: sysstat-10.1.5 확인 중...
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          sysstat-10.1.5-17.el7     sysstat-10.1.5            성공
  rac1          sysstat-10.1.5-17.el7     sysstat-10.1.5            성공
패키지: sysstat-10.1.5 확인 중...성공
패키지: ksh 확인 중...
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          ksh                       ksh                       성공
  rac1          ksh                       ksh                       성공
패키지: ksh 확인 중...성공
패키지: make-3.82 확인 중...
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          make-3.82-23.el7          make-3.82                 성공
  rac1          make-3.82-23.el7          make-3.82                 성공
패키지: make-3.82 확인 중...성공
패키지: glibc-2.17 (x86_64) 확인 중...
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          glibc(x86_64)-2.17-260.0.9.el7  glibc(x86_64)-2.17        성공
  rac1          glibc(x86_64)-2.17-260.0.9.el7  glibc(x86_64)-2.17        성공
패키지: glibc-2.17 (x86_64) 확인 중...성공
패키지: glibc-devel-2.17 (x86_64) 확인 중...
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          glibc-devel(x86_64)-2.17-260.0.9.el7  glibc-devel(x86_64)-2.17  성공
  rac1          glibc-devel(x86_64)-2.17-260.0.9.el7  glibc-devel(x86_64)-2.17  성공
패키지: glibc-devel-2.17 (x86_64) 확인 중...성공
패키지: libaio-0.3.109 (x86_64) 확인 중...
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          libaio(x86_64)-0.3.109-13.el7  libaio(x86_64)-0.3.109    성공
  rac1          libaio(x86_64)-0.3.109-13.el7  libaio(x86_64)-0.3.109    성공
패키지: libaio-0.3.109 (x86_64) 확인 중...성공
패키지: libaio-devel-0.3.109 (x86_64) 확인 중...
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          libaio-devel(x86_64)-0.3.109-13.el7  libaio-devel(x86_64)-0.3.109  성공
  rac1          libaio-devel(x86_64)-0.3.109-13.el7  libaio-devel(x86_64)-0.3.109  성공
패키지: libaio-devel-0.3.109 (x86_64) 확인 중...성공
패키지: nfs-utils-1.2.3-15 확인 중...
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          nfs-utils-1.3.0-0.61.0.1.el7  nfs-utils-1.2.3-15        성공
  rac1          nfs-utils-1.3.0-0.61.0.1.el7  nfs-utils-1.2.3-15        성공
패키지: nfs-utils-1.2.3-15 확인 중...성공
패키지: smartmontools-6.2-4 확인 중...
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          smartmontools-6.5-1.el7   smartmontools-6.2-4       성공
  rac1          smartmontools-6.5-1.el7   smartmontools-6.2-4       성공
패키지: smartmontools-6.2-4 확인 중...성공
패키지: net-tools-2.0-0.17 확인 중...
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          net-tools-2.0-0.24.20131004git.el7  net-tools-2.0-0.17        성공
  rac1          net-tools-2.0-0.24.20131004git.el7  net-tools-2.0-0.17        성공
패키지: net-tools-2.0-0.17 확인 중...성공
"Oracle Notification Service (ONS)" 구성요소에 대한 포트 가용성 확인 중...
  노드 이름             포트 번호         프로토콜          사용 가능         상태
  ----------------  ------------  ------------  ------------  ----------------
  rac2              6200          TCP           예             성공
  rac1              6200          TCP           예             성공
  rac2              6100          TCP           예             성공
  rac1              6100          TCP           예             성공
"Oracle Notification Service (ONS)" 구성요소에 대한 포트 가용성 확인 중...성공
"Oracle Cluster Synchronization Services (CSSD)" 구성요소에 대한 포트 가용성 확인 중...
  노드 이름             포트 번호         프로토콜          사용 가능         상태
  ----------------  ------------  ------------  ------------  ----------------
  rac2              42424         TCP           예             성공
  rac1              42424         TCP           예             성공
"Oracle Cluster Synchronization Services (CSSD)" 구성요소에 대한 포트 가용성 확인 중...성공
UID가 동일한 사용자입니다.: 0 확인 중...성공
현재 그룹 ID 확인 중...성공
루트 사용자 일관성 확인 중...
  노드 이름                                 상태
  ------------------------------------  ------------------------
  rac2                                  성공
  rac1                                  성공
루트 사용자 일관성 확인 중...성공
패키지: cvuqdisk-1.0.10-1 확인 중...
  노드 이름         사용 가능                     필수                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          cvuqdisk-1.0.10-1         cvuqdisk-1.0.10-1         성공
  rac1          cvuqdisk-1.0.10-1         cvuqdisk-1.0.10-1         성공
패키지: cvuqdisk-1.0.10-1 확인 중...성공
호스트 이름 확인 중...성공
노드 접속 확인 중...
  호스트 파일 확인 중...
  노드 이름                                 상태
  ------------------------------------  ------------------------
  rac1                                  성공
  rac2                                  성공
  호스트 파일 확인 중...성공

"rac1" 노드에 대한 인터페이스 정보

 이름     IP 주소           서브넷             게이트웨이           Def. 게이트웨이      HW 주소             MTU
 ------ --------------- --------------- --------------- --------------- ----------------- ------
 enp0s3 10.0.2.15       10.0.2.0        0.0.0.0         10.0.2.2        08:00:27:FA:6C:B3 1500
 enp0s8 192.168.56.101  192.168.56.0    0.0.0.0         10.0.2.2        08:00:27:47:B9:46 1500

"rac2" 노드에 대한 인터페이스 정보

 이름     IP 주소           서브넷             게이트웨이           Def. 게이트웨이      HW 주소             MTU
 ------ --------------- --------------- --------------- --------------- ----------------- ------
 enp0s3 10.0.2.16       10.0.2.0        0.0.0.0         10.0.2.2        08:00:27:D0:50:F0 1500
 enp0s8 192.168.56.102  192.168.56.0    0.0.0.0         10.0.2.2        08:00:27:CC:EA:49 1500

검사: "192.168.56.0" 서브넷의 MTU 일관성.

  노드                이름            IP 주소         서브넷           MTU
  ----------------  ------------  ------------  ------------  ----------------
  rac1              enp0s8        192.168.56.101  192.168.56.0  1500
  rac2              enp0s8        192.168.56.102  192.168.56.0  1500

검사: "10.0.2.0" 서브넷의 MTU 일관성.

  노드                이름            IP 주소         서브넷           MTU
  ----------------  ------------  ------------  ------------  ----------------
  rac1              enp0s3        10.0.2.15     10.0.2.0      1500
  rac2              enp0s3        10.0.2.16     10.0.2.0      1500

  소스                              대상                              접속됨?
  ------------------------------  ------------------------------  ----------------
  rac1[enp0s8:192.168.56.101]     rac2[enp0s8:192.168.56.102]     예

  소스                              대상                              접속됨?
  ------------------------------  ------------------------------  ----------------
  rac1[enp0s3:10.0.2.15]          rac2[enp0s3:10.0.2.16]          예
  최대(MTU) 크기 패킷이 서브넷을 통과하는지 검사 확인 중...성공
  "192.168.56.0" 서브넷에 대한 서브넷 마스크 일관성 확인 중...성공
  "10.0.2.0" 서브넷에 대한 서브넷 마스크 일관성 확인 중...성공
노드 접속 확인 중...성공
멀티캐스트 또는 브로드캐스트 검사 확인 중...
멀티캐스트 그룹 "224.0.0.251"과(와) 멀티캐스트 통신을 위해 "192.168.56.0" 서브넷을 검사하는 중
멀티캐스트 또는 브로드캐스트 검사 확인 중...성공
ASMLib 설치 및 구성을 확인합니다. 확인 중...
  '/etc/init.d/oracleasm' 확인 중...성공
  '/dev/oracleasm' 확인 중...성공
  '/etc/sysconfig/oracleasm' 확인 중...성공

  노드 이름                                 상태
  ------------------------------------  ------------------------
  rac1                                  성공
  rac2                                  성공
ASMLib 설치 및 구성을 확인합니다. 확인 중...성공
NTP(네트워크 시간 프로토콜) 확인 중...성공
동일한 코어 파일 이름 패턴 확인 중...성공
사용자 마스크 확인 중...
  노드 이름         사용 가능                     필수                        설명
  ------------  ------------------------  ------------------------  ----------
  rac2          0022                      0022                      성공
  rac1          0022                      0022                      성공
사용자 마스크 확인 중...성공
사용자가 그룹에 없습니다. "root": oracle 확인 중...
  노드 이름         상태                        설명
  ------------  ------------------------  ------------------------
  rac2          성공                        존재하지 않음
  rac1          성공                        존재하지 않음
사용자가 그룹에 없습니다. "root": oracle 확인 중...성공
시간대 일관성 확인 중...성공
노드 사이의 시간 오프셋 확인 중...성공
resolv.conf 무결성 확인 중...
  노드 이름                                 상태
  ------------------------------------  ------------------------
  rac1                                  성공
  rac2                                  성공

"/etc/resolv.conf"에 지정된 각 이름 서버에서 "rac1" 이름에 대한 응답을 확인하는 중

  노드 이름         소스                        설명                        상태
  ------------  ------------------------  ------------------------  ----------
  rac1          127.0.0.1                 IPv4                      성공

"/etc/resolv.conf"에 지정된 각 이름 서버에서 "rac2" 이름에 대한 응답을 확인하는 중

  노드 이름         소스                        설명                        상태
  ------------  ------------------------  ------------------------  ----------
  rac2          127.0.0.1                 IPv4                      성공
resolv.conf 무결성 확인 중...성공
DNS/NIS 이름 서비스 확인 중...성공
도메인 소켓 확인 중...성공
/boot 마운트 확인 중...성공
"avahi-daemon" 데몬이 구성되어 실행 중이 아닙니다. 확인 중...
  노드 이름         구성됨                       상태
  ------------  ------------------------  ------------------------
  rac2          아니오                       성공
  rac1          아니오                       성공

  노드 이름         실행 중?                     상태
  ------------  ------------------------  ------------------------
  rac2          아니오                       성공
  rac1          아니오                       성공
"avahi-daemon" 데몬이 구성되어 실행 중이 아닙니다. 확인 중...성공
"proxyt" 데몬이 구성되어 실행 중이 아닙니다. 확인 중...
  노드 이름         구성됨                       상태
  ------------  ------------------------  ------------------------
  rac2          아니오                       성공
  rac1          아니오                       성공

  노드 이름         실행 중?                     상태
  ------------  ------------------------  ------------------------
  rac2          아니오                       성공
  rac1          아니오                       성공
"proxyt" 데몬이 구성되어 실행 중이 아닙니다. 확인 중...성공
루프백 네트워크 인터페이스 주소 확인 중...성공
사용자 동일성 확인 중...성공
RPM Package Manager 데이터베이스 확인 중...성공
/dev/shm이 임시 파일 시스템으로 마운트됨 확인 중...성공
/var 경로에 대한 파일 시스템 마운트 옵션 확인 중...성공
DefaultTasksMax 매개변수 확인 중...성공
zeroconf 검사 확인 중...성공
ASM 필터 드라이버 구성 확인 중...성공
Systemd 로그인 관리자 IPC 매개변수 확인 중...성공

모든 노드에서 클러스터 서비스 설정에 대한 사전 확인을 실패했습니다.


CVU 확인 요청 "stage -pre crsinst"을(를) 실행하는 동안 오류가 발생했습니다.

교체 크기 확인 중...실패
rac2: PRVF-7573 : "rac2" 노드에서 사용 가능한 교체 크기가 부족합니다. [필요한 값 = 7.7805GB
      (8158464.0KB), 발견된 값 = 4.8008GB (5033980.0KB)]

rac1: PRVF-7573 : "rac1" 노드에서 사용 가능한 교체 크기가 부족합니다. [필요한 값 = 7.7805GB
      (8158464.0KB), 발견된 값 = 4.8008GB (5033980.0KB)]

그룹 존재 여부: asmadmin 확인 중...실패
rac2: PRVG-10461 : "OSASM" 권한에 대해 선택된 "asmadmin" 그룹이 "rac2" 노드에 존재하지 않습니다.

rac1: PRVG-10461 : "OSASM" 권한에 대해 선택된 "asmadmin" 그룹이 "rac1" 노드에 존재하지 않습니다.

그룹 멤버쉽: asmadmin 확인 중...실패
rac2: PRVG-10460 : 사용자 "oracle"이(가) "rac2" 노드에서 "OSASM" 권한에 대해 선택된 "asmadmin"
      그룹에 속하지 않습니다.

rac1: PRVG-10460 : 사용자 "oracle"이(가) "rac1" 노드에서 "OSASM" 권한에 대해 선택된 "asmadmin"
      그룹에 속하지 않습니다.


수행된 CVU 작업:                   stage -pre crsinst
날짜:                           2023. 2. 3 오전 9:37:26
CVU 홈:                        /u01/app/19c/grid/
사용자:                          oracle
******************************************************************************************
다음 수정 가능 필요 조건에 대한 수정을 생성할 수 없습니다.
******************************************************************************************
검사: 그룹 멤버쉽: asmadmin
노드에서 실패함: rac1,rac2
ERROR:
PRVF-7730 : 그룹이 노드에서 로컬로 정의되지 않았기 때문에 "rac2" 노드에서 사용자 "oracle", 그룹 "asmadmin"에 대한 수정을 생성할 수 없습니다.
PRVF-7730 : 그룹이 노드에서 로컬로 정의되지 않았기 때문에 "rac1" 노드에서 사용자 "oracle", 그룹 "asmadmin"에 대한 수정을 생성할 수 없습니다.


******************************************************************************************
다음은 이 세션에서 수정하도록 선택된 수정 가능 필요 조건 목록입니다.
******************************************************************************************
------------                  --------            ---------      --------
검사를 실패했습니다.                   노드에서 실패함            재부팅 필요 여부      재로그인 필요?     
------------                  --------            ---------      --------
그룹 존재 여부: asmadmin            rac2,rac1           아니오            아니오


수정: 그룹 존재 여부: asmadmin

  노드 이름                                 상태
  ------------------------------------  ------------------------
  rac2                                  성공
  rac1                                  성공
결과:
적용 가능한 모든 노드에서 "그룹 존재 여부: asmadmin"이(가) 성공적으로 수정되었습니다.

적용 가능한 모든 노드에서 수정 작업이 성공적으로 완료되었습니다.

 


Grid Infrastructure 설치

GRID 설치 시작

grid_env
cd $GRID_HOME
./gridSetup.sh

 

root로 접속 후 su - oracle로 접속하면 에러가 발생할 수 있다.

 

oracle 유저로 접속 후 grid 설치 진행

grid_env
cd $GRID_HOME
./gridSetup.sh

 

소프트웨어 구성 옵션 선택

 

클러스터 구성 선택

 

클러스터 구성 정보 입력

클러스터 이름, SCAN 이름, SCAN 포트 번호를 입력

SCAN 이름은 /etc/hosts에 정의한 이름, 그리고 nslookup에서 테스트한 이름과 동일하게 도메인을 포함하여 입력한다.

 

 

클러스터 노드 정보 설정

추가 선택

 

rac2 노드 정보 입력

 

SSH 접속 설정

 

oracle 유저 비밀번호 입력 및 테스트 진행

클러스터 노드 간의 비밀번호 없는 SSH 환경 구성을 설정했으므로 테스트만 진행하고 넘어간다.

 

 

SSH 접속 설정 완료

SSH 접속 설정이 이미 완료되어있다고 나온다. 

확인을 누르고 다음으로 넘어간다.

 

네트워크 인터페이스 용도 지정

 

저장 영역 옵션 정보 선택

 

Grid 관리 저장소 옵션 생성 설정

 

ASM 디스크 그룹 생성

검색 경로를 변경하여 ASM 디스크를 찾는다.

 

/dev/oracleasm/disks/* 경로 변경

 

디스크 그룹 이름 변경 및 디스크 선택

변경된 경로에서 CRS1, CRS2, CRS3를 선택한 후 디스크 그룹 이름을 CRS로 설정한다.

 

ASM PASSWORD 입력 (oracle)

 

권장 비밀번호는 넘어간다.

 

실패 분리 지원 설정

 

관리 옵션 지정 설정

 

권한 부여된 운영체제 그룹 설정

모두 dba로 설정한다.

 

예 선택 후 계속 진행

 

설치 위치 지정

Oracle base 확인

 

 

인벤토리 생성

인벤토리에는 오라클 소프트웨어의 설치 정보가 저장된다.

 

루트 스크립트 실행 구성

설치 중 root 권한으로 스크립트 실행하는 부분에서 자동로 스크립트 실행할지 여부 지정
root 패스워드 입력

모든 노드 root 패스워드 동일해야 한다.

 

필요조건 검사 수행

 

swap이 설정되지 않아서 생기는 문제와 SCAN IP가 DNS에 설정되지 않아 생기는 문제이므로 모두 무시하고 설치를 진행한다.

 

 

Grid 설치

 

응답파일 저장

설치 진행 전에 응답파일이 필요하다면 따로 저장해둔다.

 

 

root 사용자의 비밀번호를 이용하여 자동으로 스크립트가 실행하는 것을 묻는 것이므로 예를 누른다.

 

SCAN IP가 DNS에 등록되어 있지 않아서 발생한 문제이므로 예를 누르고 진행한다.

 

다음 선택

 

 

설치 완료

 

Grid 설치 후 확인

crsctl stat res -t
더보기
[root@rac1 ~]# crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.chad
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.net1.network
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.ons
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.CRS.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rac2                     STABLE
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       rac1                     STABLE
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       rac1                     STABLE
ora.asm(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     Started,STABLE
      2        ONLINE  ONLINE       rac2                     Started,STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.cvu
      1        ONLINE  ONLINE       rac1                     STABLE
ora.qosmserver
      1        ONLINE  ONLINE       rac1                     STABLE
ora.rac1.vip
      1        ONLINE  ONLINE       rac1                     STABLE
ora.rac2.vip
      1        ONLINE  ONLINE       rac2                     STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       rac2                     STABLE
ora.scan2.vip
      1        ONLINE  ONLINE       rac1                     STABLE
ora.scan3.vip
      1        ONLINE  ONLINE       rac1                     STABLE
--------------------------------------------------------------------------------

 

CRS 시작 및 종료

crsctl start crs	#crs 시작
crsctl stop crs	#crs 종료
crsctl stop crs -f	#crs 강제 종료

 

 

참조

https://dataforum.io/display/ORCL/Oracle+Database+19c+Real+Application+Cluster

https://positivemh.tistory.com/522

RAC2 2번 노드 구성

RAC2 VM 생성

RAC1 복제로 RAC2를 생성할 것이다.

 

RAC1 공유 스토리지 제거

 

CRS1, CRS2, CRS3, DATA, FRA 스토리지 제거

 

제거된 상태에서 복제 진행

 

RAC1 복제

 

가상머신 이름 및 경로, MAC 주소 정책 설정

 

복제 방식 선택

 

가상 머신 스냅샷 선택 후 복제

 

RAC1 공유 스토리지 다시 추가

RAC node1의 공유 스토리지는 다시 추가한다.

 

RAC2 공유 스토리지 추가

RAC2의 공유 스토리지도 추가한다.

 

네트워크 MAC 주소 변경

네트워크는 NAT가 아닌 NAT 네트워크로 설정되어 있어야 한다.

 

변경 완료

 

호스트 전용 네트워크의 MAC 주소 변경

 

변경 완료

 

RAC2 VM 시작

 

네트워크 고정 IP 변경

 

 

RAC2 Putty 접속

 

호스트명 변경
2번 노드 hostname 변경

hostnamectl status
hostnamectl set-hostname rac2
[root@rac1 ~]# hostnamectl status
   Static hostname: rac1
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 71c7619c64ae64409d9c4eb5f030ee38
           Boot ID: 44c395682e324a4785ff59144aef9fad
    Virtualization: kvm
  Operating System: Oracle Linux Server 7.6
       CPE OS Name: cpe:/o:oracle:linux:7:6:server
            Kernel: Linux 4.14.35-1818.3.3.el7uek.x86_64
      Architecture: x86-64
[root@rac1 ~]# hostnamectl set-hostname rac2
[root@rac1 ~]# hostnamectl status
   Static hostname: rac2
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 71c7619c64ae64409d9c4eb5f030ee38
           Boot ID: 44c395682e324a4785ff59144aef9fad
    Virtualization: kvm
  Operating System: Oracle Linux Server 7.6
       CPE OS Name: cpe:/o:oracle:linux:7:6:server
            Kernel: Linux 4.14.35-1818.3.3.el7uek.x86_64
      Architecture: x86-64

 

사용자 환경 변수 변경

두 줄 수정

[root@rac2 ~]# vi ~oracle/.bash_profile
export ORACLE_HOSTNAME=rac2
export ORACLE_SID=racdb2
#위 두줄 수정

 

vi ~oracle/.bashrc 2번 노드의 alias 설정 변경

[root@rac2 ~]# vi ~oracle/.bashrc
alias grid_env='export ORACLE_HOME=$GRID_HOME;export ORACLE_SID=+ASM2;export ORACLE_HOME=$GRID_HOME;export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH'
alias db_env='export ORACLE_HOME=$DB_HOME;export ORACLE_SID=racdb2;export ORACLE_HOME=$DB_HOME;export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH'

 

 

참조

https://dataforum.io/display/ORCL/Oracle+Database+19c+Real+Application+Cluster

https://positivemh.tistory.com/522

공유 스토리지 구성

스토리지 구성

파일 이름 용량 용도
rac1.vdi 48GB RAC1 스토리지 영역
rac2.vdi 48GB RAC2 스토리지 영역
CRS1.vdi 1GB CRS 저장 영역
CRS2.vdi 1GB
CRS3.vdi 1GB
DATA.vdi 15GB DATA 영역
FRA.vdi 10GB Fast Recovery Area

 

가상 스토리지 파일 생성

공유 스토리지 가상 디스크 생성

 

VirtualBox [파일 - 가상미디어 관리자] 선택

 

만들기 선택

 

가상 하드디스크 VDI 만들기 선택

 

고정 크기 선택

 

위치 설정 및 크기 설정

 

스토리지 파일 공유 설정

 

같은 방식으로 CRS2, CRS3, DATA, FRA 를 생성한다.

파일 이름 용량 타입
CRS1.vdi 1GB Fixed / Shareable
CRS2.vdi 1GB Fixed / Shareable
CRS3.vdi 1GB Fixed / Shareable
DATA.vdi 15GB Fixed / Shareable
FRA.vdi 10GB Fixed / Shareable

 

공유 스토리지 생성 완료

 

VM에 스토리지 연결

RAC1 설정에 들어가 저장소를 선택 후 컨트롤러에서 스토리지를 추가한다.

 

CRS1, CRS2, CRS3, DATA, FRA 영역 추가

 

스토리지 추가 완료

 


ASM 환경 구성

ASM 환경 설정

Oracle ASM 설정 및 시작 (oracle, oinstall, y, y 입력)

[root@rac1 ~]# oracleasm configure -i
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
driver.  The following questions will determine whether the driver is
loaded on boot and what permissions it will have.  The current values
will be shown in brackets ('[]').  Hitting <ENTER> without typing an
answer will keep that current value.  Ctrl-C will abort.

Default user to own the driver interface []: oracle
Default group to own the driver interface []: oinstall
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done

 

/dev/oracleasm 디렉토리 생성

oracleasm/disks에 라벨링된 디스크가 저장

[root@rac1 ~]# oracleasm init
Creating /dev/oracleasm mount point: /dev/oracleasm
Loading module "oracleasm": oracleasm
Configuring "oracleasm" to use device physical block size
Mounting ASMlib driver filesystem: /dev/oracleasm

 

ASM 상태 확인

[root@rac1 ~]# oracleasm status
Checking if ASM is loaded: yes
Checking if /dev/oracleasm is mounted: yes
[root@rac1 ~]# oracleasm configure
ORACLEASM_ENABLED=true
ORACLEASM_UID=oracle
ORACLEASM_GID=oinstall
ORACLEASM_SCANBOOT=true
ORACLEASM_SCANORDER=""
ORACLEASM_SCANEXCLUDE=""
ORACLEASM_SCAN_DIRECTORIES=""
ORACLEASM_USE_LOGICAL_BLOCK_SIZE="false"

 

디스크 파티셔닝

현재 디스크 확인

[root@rac1 ~]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb  /dev/sdc  /dev/sdd  /dev/sde  /dev/sdf

 

스토리지 파티션 생성

ls /dev/sd*
fdisk /dev/sdb  # "n", "p", "1", "엔터", "엔터", "w" 입력
fdisk /dev/sdc  # "n", "p", "1", "엔터", "엔터", "w" 입력
fdisk /dev/sdd  # "n", "p", "1", "엔터", "엔터", "w" 입력
fdisk /dev/sde  # "n", "p", "1", "엔터", "엔터", "w" 입력
fdisk /dev/sdf  # "n", "p", "1", "엔터", "엔터", "w" 입력
ls /dev/sd*
더보기

fdisk /dev/sdb

fdisk /dev/sdc
fdisk /dev/sdd
fdisk /dev/sde
fdisk /dev/sdf

모두 아래와 같이 진행

[root@rac1 ~]# 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 0x06188bd3.

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-2097151, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151):
Using default value 2097151
Partition 1 of type Linux and of size 1023 MiB is set

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

[root@rac1 ~]# fdisk /dev/sdc
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 0x3ebe8212.

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-2097151, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151):
Using default value 2097151
Partition 1 of type Linux and of size 1023 MiB is set

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

 

디스크 파티셔닝 확인

[root@rac1 ~]# ls /dev/sd*
/dev/sda   /dev/sda2  /dev/sdb1  /dev/sdc1  /dev/sdd1  /dev/sde1  /dev/sdf1
/dev/sda1  /dev/sdb   /dev/sdc   /dev/sdd   /dev/sde   /dev/sdf

 

ASM 디스크 생성

VM에 마운트된 디스크를 각각 ASM Disk로 할당

oracleasm createdisk CRS1 /dev/sdb1
oracleasm createdisk CRS2 /dev/sdc1
oracleasm createdisk CRS3 /dev/sdd1
oracleasm createdisk DATA /dev/sde1
oracleasm createdisk FRA /dev/sdf1
oracleasm scandisks
oracleasm listdisks
더보기
[root@rac1 ~]# oracleasm createdisk CRS1 /dev/sdb1
Writing disk header: done
Instantiating disk: done
[root@rac1 ~]# oracleasm createdisk CRS2 /dev/sdc1
Writing disk header: done
Instantiating disk: done
[root@rac1 ~]# oracleasm createdisk CRS3 /dev/sdd1
Writing disk header: done
Instantiating disk: done
[root@rac1 ~]# oracleasm createdisk DATA /dev/sde1
Writing disk header: done
Instantiating disk: done
[root@rac1 ~]# oracleasm createdisk FRA /dev/sdf1
Writing disk header: done
Instantiating disk: done

[root@rac1 ~]# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...

[root@rac1 ~]# oracleasm listdisks
CRS1
CRS2
CRS3
DATA
FRA

 

 

참조

https://dataforum.io/display/ORCL/Oracle+Database+19c+Real+Application+Cluster

https://positivemh.tistory.com/522

RAC1 리눅스 환경 설정

Linux 설치 정보 확인

[root@rac1 ~]# uname -a
Linux rac1 4.14.35-1818.3.3.el7uek.x86_64 #2 SMP Mon Sep 24 14:45:01 PDT 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@rac1 ~]# cat /etc/os-release
NAME="Oracle Linux Server"
VERSION="7.6"
ID="ol"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="7.6"
PRETTY_NAME="Oracle Linux Server 7.6"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:oracle:linux:7:6:server"
HOME_URL="https://linux.oracle.com/"
BUG_REPORT_URL="https://bugzilla.oracle.com/"

ORACLE_BUGZILLA_PRODUCT="Oracle Linux 7"
ORACLE_BUGZILLA_PRODUCT_VERSION=7.6
ORACLE_SUPPORT_PRODUCT="Oracle Linux"
ORACLE_SUPPORT_PRODUCT_VERSION=7.6

 

불필요한 서비스 정리

### 방화벽 중지
systemctl stop firewalld
systemctl disable firewalld
### 블루투스 중지
systemctl stop bluetooth
systemctl disable bluetooth
### 시간 동기화 중지
systemctl stop chronyd
systemctl disable chronyd
mv /etc/chrony.conf /etc/chrony.conf.bak
### NTP 중지
systemctl stop ntpdate
systemctl disable ntpdate
### AVAHI 중지
systemctl stop avahi-daemon.socket
systemctl disable avahi-daemon.socket
systemctl stop avahi-daemon
systemctl disable avahi-daemon
### 가상 시스템 관리 중지
systemctl stop libvirtd
systemctl disable libvirtd

 

보안 설정

vi /etc/selinux/config 로 selinux 모드 변경

SELINUX=disabled

 

hosts 파일 수정

/etc/hosts 설정

[root@rac1 ~]# cat /etc/host
cat: /etc/host: 그런 파일이나 디렉터리가 없습니다
[root@rac1 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

### Public
10.0.2.15  rac1        rac1
10.0.2.16  rac2        rac2
### Private
192.168.56.101  rac1-priv   rac1-priv
192.168.56.102  rac2-priv   rac2-priv
### Virtual
10.0.2.150  rac1-vip    rac1-vip
10.0.2.160  rac2-vip    rac2-vip
### SCAN
10.0.2.20  rac-scan    rac-scan
10.0.2.21  rac-scan    rac-scan
10.0.2.22  rac-scan    rac-scan

 

dnsmasq 활성화

vi /etc/dnsmasq.conf 로 dnsmasq에 로컬 도메인 정보 추가

별도의 DNS 서비스 없이 SCAN 사용하기 위해 활성화한다.

[root@rac1 ~]# vi /etc/dnsmasq.conf
local=/localdomain/

 

resolv.conf 내용 확인 및 dnsmasq 활성화

cat /etc/resolv.conf
systemctl start dnsmasq
systemctl enable dnsmasq
nslookup rac-scan.localdomain   # 경우에 따라 재기동 필요
더보기
[root@rac1 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 127.0.0.1
[root@rac1 ~]# systemctl start dnsmasq
[root@rac1 ~]# systemctl enable dnsmasq
Created symlink from /etc/systemd/system/multi-user.target.wants/dnsmasq.service to /usr/lib/systemd/system/dnsmasq.service.
[root@rac1 ~]# nslookup rac-scan
Server:         127.0.0.1
Address:        127.0.0.1#53

Name:   rac-scan
Address: 10.0.2.21
Name:   rac-scan
Address: 10.0.2.20
Name:   rac-scan
Address: 10.0.2.22

[root@rac1 ~]# nslookup rac-scan
Server:         127.0.0.1
Address:        127.0.0.1#53

Name:   rac-scan
Address: 10.0.2.20
Name:   rac-scan
Address: 10.0.2.22
Name:   rac-scan
Address: 10.0.2.21

[root@rac1 ~]# nslookup rac-scan
Server:         127.0.0.1
Address:        127.0.0.1#53

Name:   rac-scan
Address: 10.0.2.22
Name:   rac-scan
Address: 10.0.2.21
Name:   rac-scan
Address: 10.0.2.20

 

필수 패키지 설치

패키지를 설치하기 위해 리눅스 실행중 ISO 파일을 삽입하고 CD를 실행한다.

 

해당 경로로 들어간다.

[root@rac1 ~]# cd /run/media/root/OL-7.6\ Server.x86_64/Packages/

 

다음 패키지 설치

rpm -Uvh ksh-*.x86_64.rpm
rpm -Uvh libaio-devel-*.x86_64.rpm
rpm -Uvh oracleasm-support-*.x86_64.rpm
rpm -Uvh kmod-oracleasm-*.x86_64.rpm

 

리눅스 필수 패키지 확인

설치가 안되어있으면 yum install -y [패키지명] 설치

참조) Oracle linux 7.6에서 yum 사용하기

2023.01.30 - [DB ORACLE 공부 기록] - Oracle Linux 7.6에서 yum repository 설정 (YUM 사용하기)

 

Oracle Linux 7.6에서 yum repository 설정 (YUM 사용하기)

OS CD 삽입 후 진행 cd에 있는 패키지를 담을 경로 생성 mkdir -p /localrepo cd 파일을 해당 디렉토리로 복사 cp -rv /run/media/root/OL-7.6\ Server.x86_64/Packages/ /localrepo/ 기존 Online Repository 설정 파일 이름 변경 [r

lemonandgrapefruit.tistory.com

rpm -q bc
rpm -q binutils
rpm -q compat-libcap1
rpm -q compat-libstdc++-33
rpm -q elfutils-libelf
rpm -q elfutils-libelf-devel
rpm -q fontconfig-devel
rpm -q glibc
rpm -q glibc-devel
rpm -q kmod-20
rpm -q kmod-libs-20
rpm -q ksh
rpm -q libaio
rpm -q libaio-devel
rpm -q libgcc
rpm -q libstdc++
rpm -q libstdc++-devel
rpm -q libX11
rpm -q libXau
rpm -q libxcb
rpm -q libXi
rpm -q libXtst
rpm -q libXrender
rpm -q libXrender-devel
rpm -q make
rpm -q net-tools
rpm -q nfs-utils
rpm -q policycoreutils
rpm -q policycoreutils-python
rpm -q smartmontools
rpm -q sysstat

 

패키지가 모두 설치되었으면 디스크 삽입을 제거한다.

 

Temp 파일시스템 할당

추가 후 저장

[root@rac1 ~]# vi /etc/fstab
tmpfs                   /dev/shm                tmpfs   size=4g         0 0

 

/dev/shm 영역 remount

[root@rac1 ~]# mount -o remount /dev/shm
[root@rac1 ~]# df -h | grep shm
tmpfs                4.0G     0  4.0G   0% /dev/shm

 

오라클 추가 패키지 설치 

preinstall 패키지가 설치되면 oracle 유저 및 oinstall, dba, oper, backupdba, dgdba, kmdba, racdba 그룹이 생성된다.

oracleasmlib 파일은 아래에서 다운

https://www.oracle.com/linux/downloads/linux-asmlib-rhel7-downloads.html

[root@rac1 ~]# yum install -y oracle-database-preinstall-18c.x86_64
[root@rac1 ~]# rpm -Uvh oracleasmlib-2.0.12-1.el7.x86_64.rpm

 

사용자 그룹 설정 변경

[root@rac1 ~]# usermod -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba oracle

 

oracle 계정 암호 변경

[root@rac1 ~]# passwd oracle
oracle 사용자의 비밀 번호 변경 중
새  암호: oracle
잘못된 암호: 암호는 8 개의 문자 보다 짧습니다
새  암호 재입력: oracle
passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.

 

설치 경로 생성

[root@rac1 ~]# mkdir -p /u01/app/oracle
[root@rac1 ~]# chown -R oracle:oinstall /u01
[root@rac1 ~]# chmod -R 775 /u01

 

사용자 환경 설정

oracle 계정 .bash_profile 수정

[root@rac1 ~]# vi ~oracle/.bash_profile
export TMP=/tmp
export TMPDIR=$TMP
export EDITOR=vi
export ORACLE_HOSTNAME=rac1
export ORACLE_UNQNAME=racdb
export ORACLE_BASE=/u01/app/oracle
export GRID_HOME=/u01/app/19c/grid
export DB_HOME=$ORACLE_BASE/product/19c/db_1
export ORACLE_HOME=$DB_HOME
export ORACLE_SID=racdb1                # node2  racdb2
export ORACLE_TERM=xterm
export BASE_PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_LANG=AMERICAN_KOREA.AL32UTF8
PS1='[$ORACLE_SID:$PWD]> '

 

.bashrc로 alias 설정

[root@rac1 ~]# vi ~oracle/.bashrc
alias grid_env='export ORACLE_HOME=$GRID_HOME;export ORACLE_SID=+ASM1;export ORACLE_HOME=$GRID_HOME;export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH'
alias db_env='export ORACLE_HOME=$DB_HOME;export ORACLE_SID=racdb1;export ORACLE_HOME=$DB_HOME;export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH'

 

root 계정 .bash_profile 수정

[root@rac1 ~]# vi ~/.bash_profile
export ORACLE_BASE=/u01/app/oracle
export GRID_HOME=/u01/app/19c/grid
export DB_HOME=$ORACLE_BASE/product/19c/db_1
export PATH=$PATH:$GRID_HOME/bin

 

 

참조
https://dataforum.io/display/ORCL/Oracle+Database+19c+Real+Application+Cluster
https://positivemh.tistory.com/522

RAC 설치 사전 준비사항

- VirtualBox

- Oracle Enterprise Linux 7.6

- Oracle Grid 19.3

- Oracle Database 19.3

 

Oracle Linux 다운로드 링크

https://yum.oracle.com/oracle-linux-isos.html

 

Oracle Grid, Oracle Database 다운로드 링크

https://www.oracle.com/kr/database/technologies/oracle19c-linux-downloads.html

 

서버 구성

VM Host Name Memory Net Adapter 1 Net Adapter 2 구성 방법
RAC1 rac1 8GB NAT 네트워크 호스트 전용 어댑터 리눅스 설치
RAC2 rac2 8GB NAT 네트워크 호스트 전용 어댑터 RAC1 복제

 

스토리지 구성

파일 이름 용량 용도
RAC1.vdi 48GB RAC1 스토리지 영역
RAC2.vdi 48GB RAC2 스토리지 영역
CRS1.vdi 1GB CRS 저장 영역
CRS2.vdi 1GB
CRS3.vdi 1GB
DATA.vdi 15GB DATA 영역
FRA.vdi 10GB Fast Recovery Area

 

네트워크 구성

VM Public IP Private IP Virtual IP Netmask Gateway DNS Server SCAN IP
RAC1 10.0.2.15 192.168.56.101 10.0.2.150 255.255.255.0 10.0.2.2 127.0.0.1 10.0.2.20
10.0.2.21
10.0.2.22
RAC2 10.0.2.16 192.168.56.102 10.0.2.160 255.255.255.0 10.0.2.2 127.0.0.1

 


RAC1 VM 설치

RAC1 VM 생성

VirtualBox에서 VM 새로 만들기를 눌러 생성한다.

 

VM 이름 및 운영체제 선택

 

메모리 크기 설정

8GB로 설정한다. (Grid 최소 설치 메모리)

 

하드 디스크 설정

 

하드디스크 파일 종류 설정

 

동적 할당으로 하드디스크 생성

 

하드디스크 위치 및 크기 설정

48GB로 하드디스크 크기를 설정한다.

 

RAC 하드웨어 설정

RAC1의 VM 설정에 들어간다.

 

프로세서 개수 설정

 

리눅스 설치 파일 삽입

 

오디오 설정 해제

 

네트워크 설정

어댑터 1 - NAT 네트워크 설정

어댑터 2 - 호스트 전용 어댑터 설정

+) NAT 네트워크로 설정하면 VM 내부 네트워크에서 Host PC 외부 네트워크까지 단방향 통신(외부 통신)이 가능하고 Host PC 내 VM 간의 통신이 가능하다. (NAT와 다른 점은 Host PC 내 통신이 가능)

가상머신 간의 통신이 필요한 RAC 설치이므로 NAT 네트워크를 이용해서 설치를 진행한다.

 

VM 시작

 

Install Oracle Linux 7.6 설치 선택

 

 

언어 선택

 

소프트웨어 선택

 

소프트웨어 세부 설정

기본환경 - 서버 GUI 사용

선택 환경 기능 - 하드웨어 모니터링 유틸리티, KDE, 성능도구, 호환성 라이브러리, 시스템 관리 도구

 

시스템 설치 대상 선택

 

로컬 표준 디스크로 설정

 

KDUMP 선택

 

KDUMP 비활성화

 

SECURITY POLICY 선택

 

끔으로 설정

 

네트워크 설정

 

호스트 이름 설정 및 네트워크 켜기

rac1으로 설정

 

설치 시작

 

root 암호 설정

 

사용자 생성

 

설치 진행

 

재부팅

 

재부팅 후 라이센스 동의

 

Oracle Linux 설치 완료

 

네트워크 설정

 

IPv4의 네트워크는 수동으로 설정 후 고정 IP를 넣는다.

 

IPv6는 무시로 설정

 

마찬가지로 설정한다.

 

Putty 접속

Host PC와 VM 간의 통신이므로 Private IP로 설정한 IP로 접속한다.

 

Linux 설치 정보 확인

[root@rac1 ~]# uname -a
Linux rac1 4.14.35-1818.3.3.el7uek.x86_64 #2 SMP Mon Sep 24 14:45:01 PDT 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@rac1 ~]# cat /etc/os-release
NAME="Oracle Linux Server"
VERSION="7.6"
ID="ol"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="7.6"
PRETTY_NAME="Oracle Linux Server 7.6"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:oracle:linux:7:6:server"
HOME_URL="https://linux.oracle.com/"
BUG_REPORT_URL="https://bugzilla.oracle.com/"

ORACLE_BUGZILLA_PRODUCT="Oracle Linux 7"
ORACLE_BUGZILLA_PRODUCT_VERSION=7.6
ORACLE_SUPPORT_PRODUCT="Oracle Linux"
ORACLE_SUPPORT_PRODUCT_VERSION=7.6

 

 

참조

https://dataforum.io/display/ORCL/Oracle+Database+19c+Real+Application+Cluster

https://positivemh.tistory.com/522

 

OS CD 삽입 후 진행

 

cd에 있는 패키지를 담을 경로 생성

mkdir -p /localrepo

 

cd 파일을 해당 디렉토리로 복사

cp -rv /run/media/root/OL-7.6\ Server.x86_64/Packages/ /localrepo/

 

기존 Online Repository 설정 파일 이름 변경

[root@rac1 ~]# cd /etc/yum.repos.d/
[root@rac1 yum.repos.d]# ls -alrt
total 32
drwxr-xr-x.   2 root root    54  1월 30 15:40 .
drwxr-xr-x. 145 root root  8192  1월 30 15:32 ..
-rw-r--r--.   1 root root 13093 11월  2  2018 public-yum-ol7.repo
[root@rac1 yum.repos.d]# mv public-yum-ol7.repo public-yum-ol7.repobak

 

새로운 로컬 repository 설정

[root@rac1 yum.repos.d]# vi /etc/yum.repos.d/local.repo 
[local]
name=localrepository
baseurl=file:///localrepo/
enabled=1
gpgcheck=0

 

Local Repository 업데이트

[root@rac1 yum.repos.d]# createrepo /localrepo/
Spawning worker 0 with 5241 pkgs
yum clean all
 
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

 

/localrepo 디렉토리 밑에 repodata 디렉토리가 생겼는지 확인

[root@rac1 yum.repos.d]# ls -alrt /localrepo/
합계 352
drwxr-xr-x.  4 root root     38  1월 30 15:41 .
dr-xr-xr-x. 18 root root   4096  1월 30 15:37 ..
drwxr-xr-x.  2 root root 274432  1월 30 15:39 Packages
drwxr-xr-x.  2 root root   4096  1월 30 15:41 repodata

 

repomd.xml 파일이 생성되었는지 확인

[root@rac1 yum.repos.d]# cd /localrepo/repodata/
[root@rac1 repodata]# ls
2229e465c089ad17a9c470a22502116def92d4cb4c82b33b6200a9384db7c763-primary.sqlite.bz2
35b5a30cc34c9d2db21706541b6885d8c6d047c2de39d4bda5b2c98b8afea27c-other.xml.gz
7739df8a74574ba6ca9d54f913cf91b96aaa80eb495eabf8575c5225b78e9404-primary.xml.gz
8d34ced6e2b49dcf62b34796c553434c8a95d9d5dfffce6fe26b06e5b410c9ec-filelists.sqlite.bz2
ce3b2889a285d2910c8e5a30387183c5188e9606d61ba62c865c12035ac1bbc8-filelists.xml.gz
fad50d91cc416a3498f898cc298d64fc34b345c5cea9a5877493452d5dd5feec-other.sqlite.bz2
repomd.xml

 

기존 yum data 삭제

[root@rac1 repodata]# yum clean all

 

repolist 불러오기

[root@rac1 repodata]# yum repolist

 

패키지 설치

yum install -y [패키지명]

 

참조: https://positivemh.tistory.com/470

계정의 Password 만료가 얼마 남지 않았다는 에러메시지를 확인

ERROR:
ORA-28002: the password will expire within 6 days

 

계정 확인

만료 기간이 얼마 남지 않은 계정을 확인 (EXPIRY_DATE 확인)

select * from dba_users where to_char(EXPIRY_DATE, 'YYYY') = '2023';

 

DBA_PROFILES 확인

PASSWORD_LIFE_TIME (password 만료 기간)이 180일로 설정되어 있는 것을 확인할 수 있다.

select * from DBA_PROFILES
where profile='DEFAULT'
and resource_name in ('PASSWORD_LIFE_TIME','PASSWORD_REUSE_TIME');

 

Password limit 변경  

PASSWORD_LIFE_TIME을 UNLIMITED로 변경

password 만료 기간이 180일을 UNLIMITED로 변경할 것이다.

*보안과 관련된 내용이므로, DB 관리에 따라 설정에 맞게 설정해주어야 함

SQL> ALTER PROFILE DEFAULT limit PASSWORD_LIFE_TIME UNLIMITED;

Profile altered.

SQL> commit;

Commit complete.

 

default profiles를 변경했다고 해도 패스워드 만료일이 얼마 남지 않았다고 에러가 뜨게 된다.

SQL> conn [계정명]/[계정 PW]
ERROR:
ORA-28002: the password will expire within 6 days


Connected.

 

계정 확인

이 부분은 DBA_USERS에서 EXPIRY_DATE가 남아있기 때문이다.

따라서 계정 비밀번호를 다시 변경해주면 EXPIR_DATE가 null로 변경되어 에러가 뜨지 않는 것을 확인할 수 있다.

select * from dba_users where to_char(EXPIRY_DATE, 'YYYY') = '2023';

 

계정 비밀번호 변경

SQL> alter user [계정명] identified by [계정 PW];

 

계정 확인

해당 계정 EXPIRY_DATE 확인하면 NULL을 확인할 수 있다.

select * from dba_users where USERNAME in ('[계정명]');

 

다시 계정을 접속하면 에러가 뜨지 않고 접속되는 것을 확인할 수 있다.

+ Recent posts