oracle grid 19c, oracle database 설치

oracle grid 환경에서 oracle database 설치하기.

* 작업환경

각각 VMware VM.

OS: Oracle Linux 8.9
HDD(OS): 100GB
ASM DATA DISK: 50GB x 3( /dev/sdb, /dev/sdc, /dev/sdd 각 50GB)
MEM: 16GB
swap: 16GB

 

1. OS 기본설정 및 사전 준비사항

* selinux 해제

# getenforce
Enforcing
# setenforce 0
# getenforce
Permissive

영구 적용을 위해 /etc/selinux/config에 아래 항목을 수정한다.

# vi /etc/selinux/config
...
#SELINUX=enforcing
SELINUX=peremissive
...

* 리눅스 방화벽 해제.

# systemctl stop firewalld
# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

* oracleasm 커널모듈 설치

# dnf install kmod-oracleasm

* 현재 커널 및 기본 부팅커널 조정

# uname -a
Linux localhost.localdomain 5.15.0-101.103.2.1.el8uek.x86_64 #2 SMP Mon May 1 20:11:30 PDT 2023 x86_64 x86_64 x86_64 GNU/Linux

oracleasm 모듈을 커널에 로드한다. 5.x 버전 커널에서는 아래처럼 로드되지 않는다.

# modprobe oracleasm
# lsmod | grep -I oracleasm

oracleasm 모듈은 현재 부팅 커널을 지원하지 않으므로, 매번 부팅시 커널을 선택하지 않으려면 기본 커널을 4.x 버전대로 설정하는것이 좋다.

# uname -a
Linux localhost.localdomain 4.18.0-513.24.1.el8_9.x86_64 #1 SMP Wed Apr 10 08:10:12 PDT 2024 x86_64 x86_64 x86_64 GNU/Linux

커널 변경후에는 아래처럼 모듈이 잘 로드된다.

# modprobe oracleasm
# lsmod | grep -i oracleasm
oracleasm              69632  0

* 오라클 계정생성, 커널파라메터 변경을 해주는 preinstall 패키지를 설치한다.

# dnf install oracle-database-preinstall-19c

패키지 설치가 끝나면 아래 그룹을 만들고 oracle계정에 추가해둔다.

# groupadd -g 54327 asmdba
# groupadd -g 54328 asmoper
# groupadd -g 54329 asmadmin
# usermod -aG asmdba,asmoper,asmadmin oracle

oracle계정에 비밀번호를 설정한다.

# passwd oracle
Changing password for user oracle.
New password:
BAD PASSWORD: The password contains the user name in some form
Retype new password:
passwd: all authentication tokens updated successfully.

* oracleasm 관련 패키지를 설치한다. dnf로 설치되지 않기때문에, 다운로드 받고 설치한다.

# curl -O https://download.oracle.com/otn_software/asmlib/oracleasmlib-2.0.17-1.el8.x86_64.rpm
# curl -O https://yum.oracle.com/repo/OracleLinux/OL8/addons/x86_64/getPackage/oracleasm-support-2.1.12-1.el8.x86_64.rpm

# dnf install oracleasmlib-2.0.17-1.el8.x86_64.rpm  oracleasm-support-2.1.12-1.el8.x86_64.rpm

* /etc/hosts 파일 설정.

# public ip
172.30.124.221  fox1    fox1.localdomain
172.30.124.222  fox2    fox2.localdomain

# virtual ip
172.30.124.231  fox1    fox1-vip.localdomain
172.30.124.232  fox2    fox2-vip.localdomain

# SCAN ip
172.30.124.241  fox-scan        fox-scan.localdomain
172.30.124.242  fox-scan        fox-scan.localdomain
172.30.124.243  fox-scan        fox-scan.localdomain

# ASM & Private ip
192.168.100.2   fox1-mgmt       fox1-mgmt.localdomain
192.168.100.3   fox2-mgmt       fox2-mgmt.localdomain

 

2. oracle 계정의 환경변수 설정.

오라클 계정으로 전환.

# su - oracle

그리드 환경 변수 설정.

[oracle@fox1 ~]$$ vi .grid.env
export ORACLE_SID=+ASM1
export ORACLE_HOME=$GRID_HOME
export PATH=$ORACLE_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
[oracle@fox2 ~]$$ vi .grid.env
export ORACLE_SID=+ASM2
export ORACLE_HOME=$GRID_HOME
export PATH=$ORACLE_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

데이터베이스 환경 변수 설정

$ vi .db.env
export ORACLE_SID=orcl
export ORACLE_HOME=$DB_HOME
export PATH=$ORACLE_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

계정 환경변수 설정

$ vi .bash_profile

export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/u01/app/oracle
export GRID_HOME=/u01/app/19c/grid
export DB_HOME=$ORACLE_BASE/product/19c/db_home
export ORACLE_HOME=$DB_HOME
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export BASE_PATH=/usr/sbin:$PATH
export PATH=$ORACLE_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

alias grid='. /home/oracle/.grid.env'
alias db='. /home/oracle/.db.env'

3. dns 설정.
bind 패키지를 설치한다.

# dnf install bind

해당 부분 추가한다.

# vi /etc/named.conf
options {
        listen-on port 53 { 127.0.0.1; 172.30.124.221; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        secroots-file   "/var/named/data/named.secroots";
        recursing-file  "/var/named/data/named.recursing";
        allow-query     { localhost; 172.30.124.0/24; };

...

zone "localdomain." IN {
        type master;
        file "localdomain.zone";
        allow-update { none ; };
};

zone "124.30.172.in-addr-arpa." IN {
        type master;
        file "124.30.172.in-addr.arpa";
        allow-update { none; };
};
# cd /var/named
# vi localdomain.zone
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum

@               IN      NS      fox1.localdomain.
localhost       IN      A       127.0.0.1
fox1            IN      A       172.30.124.221
fox2            IN      A       172.30.124.222
fox1-vip        IN      A       172.30.124.231
fox2-vip        IN      A       172.30.124.232
fox1-mgmt       IN      A       192.168.100.2
fox2-mgmt       IN      A       192.168.100.3
fox-scan        IN      A       172.30.124.241
fox-scan        IN      A       172.30.124.242
fox-scan        IN      A       172.30.124.243
# vi 124.30.172.in-arpa
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum


@               IN      NS      fox1.localdomain.
@               IN      PTR     localdomain.

fox-scan        IN      A       172.30.124.241
fox-scan        IN      A       172.30.124.242
fox-scan        IN      A       172.30.124.243

221             IN      PTR     fox1.localdomain.
241             IN      PTR     fox-scan.localdomain.
242             IN      PTR     fox-scan.localdomain.
243             IN      PTR     fox-scan.localdomain.
# chgrp named localdomain.zone
# chgrp named 124.30.172.in-arpa

bind 서비스를 부팅시 시작되도록 설정하고, 서비스를 실행한다.

# systemctl enable named
Created symlink /etc/systemd/system/multi-user.target.wants/named.service → /usr/lib/systemd/system/named.service.
[root@localhost named]# systemctl start named

resolv.conf를 직접 편집하는경우, 재부팅하면 설정이 유지되지 않는다.
설정을 유지하기위해서는 nmcli 명령으로 dns 관련 설정을 등록하는것이 좋다.

아래는 public ip 주소가 설정된 NIC에 dns 설정을 추가하는 명령이다.

# nmcli con mod ens33 ipv4.dns-options "timeout:1 attempts:2"
# nmcli con mod ens33 ipv4.dns-search "localdomain"
# nmcli con mod ens33 ipv4.dns "172.30.124.221"

설정을 적용하려면 NetworkManager 서비스를 재시작해야 한다.

# cat /etc/resolv.conf
# Generated by NetworkManager
search localdomain
nameserver 172.30.124.221
options timeout:1
options attempts:2

 

4. 설치디렉토리 만들기

오라클 계정의 환경변수에 등록한 디렉토리를 만들고 소유권을 바꾼다.

설치를 진행할 노드에서는,

[root@fox1 ~]# mkdir -p /u01/app/19c/grid
[root@fox1 ~]# mkdir -p /u01/app/oracle
[root@fox1 ~]# mkdir -p /u01/app/oracle/product/19c/db_home
[root@fox1 ~]# chown -R oracle:dba /u01

나머지 노드

[root@fox2 ~]# mkdir /u01
[root@fox2 ~]# chown -R oracle:dba /u01

 

5. oracle ASM 공유 디스크 설정.

현재 디스크 확인

# parted -l | grep -i sd
Error: /dev/sdb: unrecognised disk label
Error: /dev/sdc: unrecognised disk label
Error: /dev/sdd: unrecognised disk label
Disk /dev/sda: 107GB
Disk /dev/sdb: 53.7GB
Disk /dev/sdc: 53.7GB
Disk /dev/sdd: 53.7GB

sdb만 확인해보면,

[root@fox1 ~]# parted /dev/sdb print
Error: /dev/sdb: unrecognised disk label
Model: VMware Virtual disk (scsi)
Disk /dev/sdb: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:

sdb, sdc, sdd에 레이블 만들고, 파티션을 만든다.

[root@fox1 ~]# parted /dev/sdb mklabel gpt
Information: You may need to update /etc/fstab.

[root@fox1 ~]# parted /dev/sdc mklabel gpt
Information: You may need to update /etc/fstab.

[root@fox1 ~]# parted /dev/sdd mklabel gpt
Information: You may need to update /etc/fstab.

[root@fox1 ~]# parted /dev/sdb mkpart xfs 0% 100%
Information: You may need to update /etc/fstab.

[root@fox1 ~]# parted /dev/sdc mkpart xfs 0% 100%
Information: You may need to update /etc/fstab.

[root@fox1 ~]# parted /dev/sdd mkpart xfs 0% 100%
Information: You may need to update /etc/fstab.

파티션 확인하면 아래처럼 파티션이 만들어졌다.

[root@fox1 ~]# parted /dev/sdb print
Model: VMware Virtual disk (scsi)
Disk /dev/sdb: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  53.7GB  53.7GB               xfs

asm 디스크를 설정하기위해 아래 명령을 내린다.

# 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  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 []: dba
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
# 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
[root@fox1 ~]# oracleasm createdisk ASMDISK_01 /dev/sdb1
Writing disk header: done
Instantiating disk: done
[root@fox1 ~]# oracleasm createdisk ASMDISK_02 /dev/sdc1
Writing disk header: done
Instantiating disk: done
[root@fox1 ~]# oracleasm createdisk ASMDISK_03 /dev/sdd1
Writing disk header: done
Instantiating disk: done

다른 노드에서 asmdisk 확인.

[root@fox2 ~]# oracleasm listdisks
[root@fox2 ~]# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
Instantiating disk "ASMDISK_01"
Instantiating disk "ASMDISK_02"
Instantiating disk "ASMDISK_03"
[root@fox2 ~]# oracleasm listdisks
ASMDISK_01
ASMDISK_02
ASMDISK_03

6. oracle grid 설치( oracle 계정으로 로그인 )

다운로드한 파일을 GRID_HOME에 복사 또는 이동한다.

[oracle@fox1 ~]$ grid
[oracle@fox1 ~]$
[oracle@fox1 ~]$ cp LINUX.X64_193000_grid_home.zip $GRID_HOME/

GRID_HOME으로 이동하여 압축을 해제한다.

[oracle@fox1 ~]$ cd $GRID_HOME
[oracle@fox1 grid]$ ls
LINUX.X64_193000_grid_home.zip
[oracle@fox1 grid]$ pwd
/u01/app/19c/grid
[oracle@fox1 grid]$ unzip LINUX.X64_193000_grid_home.zip

root 계정으로 cvuqdisk 패키지를 설치한다. cvuqdisk 패키지는 $GRID_HOME/cv/rpm 디렉토리에서 찾을 수 있다.

[oracle@fox1 ~]$ su -

[root@fox1 ~]# dnf install /u01/app/19c/grid/cv/rpm/cvuqdisk-1.0.10-1.rpm

다른 노드에도 복사하여 설치한다.

[root@fox1 ~]# scp /u01/app/19c/grid/cv/rpm/cvuqdisk-1.0.10-1.rpm root@fox2:/root
[root@fox1 ~]# ssh root@fox2 dnf -y install /root/cvuqdisk-1.0.10-1.rpm
[root@fox1 oracle]# exit

oracle 계정으로 grid 설치를 시작한다.

[oracle@fox1 grid]$ ./gridSetup.sh

새 클러스터르 ㄹ위한 오라클 그리스 구성 선택.

standalone 클러스터 선택

자동으로 만들어지는데, SCAN 이름은 hosts파일이나, DNS에 등록된 이름으로 변경.

클러스터에  DNS에 설정된 이름으로 변경하기 위해 edit 버튼을 누른다.

dns 서버에 등록된 호스트네임으로 변경(안해도 됨)

나머지 노드를 ADD 버튼을 눌러 등록한다.

다른 노드와 통신하기 위해 oracle계정의 비밀번호를 입력한다.

setup버튼을  누르면 서로 다른 노드간 ssh 접속을 설정해 준다.

test버튼을 누르면 아래처럼 문제가 발생한다.

설치도중 INS-060006 오류 발생하면 각 노드에서 아래 작업 진행한다.

# cp -p /usr/bin/scp /usr/bin/scp-orig
# echo "/usr/bin/scp-orig -T \$*" > /usr/bin/scp
# cat /usr/bin/scp
/usr/bin/scp-orig -T $*

자세한 내용은 참고문서를 확인하면 된다.

위 작업 진행후 다시 테스트하면  아래와 같은 화면을 볼 수 있다.

private IP주소를  ASM 용도와 함께 사용하도록 선택한다.

ASM 스토리지를 사용하도록 선택한다.

ASM 디스크 그룹 은 기본값이 DATA로 설정된다. 원한다면 다른 이름으로 변경한다.

change  discovery path를 누르고, /dev/asmdisk/disks를 입력하면, ASM 디스크가 검색된다.

사용할 ASM디스크를 선택한다.   redundency는  장애시 복구할 미러레벨을 의미하며 필요한 디스크 개수를 확인해야 한다. external은  장애시 데이터가 보호되지 않는다.(테스트 수준의 작업이어서 선택했다) 자세한 내용은 참고문서를 확인 하면 된다.

grid 관리에에 사용할 비밀번호를 입력한다.

IPMI는 사용하지 않도록 선택했다.

Enterprise Manager는 사용하지 않도록 선택하지 않았다.

ASM 관리 그룹을 설정한다.

oracle base 디렉토리를 선택한다.

선택한 디렉토리가 비어있지 않다는 메시지를 보여준다. 그냥 진행한다.

oracle inventory 디렉토리를 지정한다.

root 권한이 필요한 스크립트 실행을 위한 root 계정의 비밀번호를 입력한다. 입력하지 않으면 수동으로 실행해야 한다.

설치에 필요한 사항을 체크하는데, 이상 없다. DNS, NTP 설정관련 내용이 가장 많다.  두 가지 경우는 무시하고 진행해도 크게 문제되지 않는다.  현재 버전의 리눅스는 ntpd 대신 chronyd 를 ntp로 사용한다. chronyd를 사용하도록 설정했다면, 무시해도 문제되지 않는다.

install 버튼을 눌러 설치를 진행한다.

설치도중 클러스터 확인 유틸리티가  ntp 서버를 인식하지 못해서 아래와 같은 fail 메시지를 내보낸다.

설치로그의 마지막 부분을 확인하여 아래처럼 ntp관련 오류라면 무시하고 설치를 진행해도 된다.

INFO:  [Apr 17, 2024 2:18:37 PM] CTSS is in Observer state. Switching over to clock synchronization checks using NTP
INFO:  [Apr 17, 2024 2:18:38 PM]   Verifying Network Time Protocol (NTP) ...
INFO:  [Apr 17, 2024 2:18:38 PM]     Verifying '/etc/ntp.conf' ...WARNING (PRVG-1019)
INFO:  [Apr 17, 2024 2:18:38 PM]     Verifying '/var/run/ntpd.pid' ...WARNING (PRVG-1019)
INFO:  [Apr 17, 2024 2:18:38 PM]     Verifying Daemon 'ntpd' ...FAILED (PRVG-1024, PRVF-7590)
INFO:  [Apr 17, 2024 2:18:38 PM]   Verifying Network Time Protocol (NTP) ...FAILED (PRVG-1019, PRVG-1024, PRVF-7590)
INFO:  [Apr 17, 2024 2:18:38 PM] Verifying Clock Synchronization ...FAILED (PRVG-1019, PRVG-1024, PRVF-7590)
INFO:  [Apr 17, 2024 2:18:40 PM] Verifying VIP Subnet configuration check ...PASSED
INFO:  [Apr 17, 2024 2:18:40 PM] Verifying Network configuration consistency checks ...PASSED
INFO:  [Apr 17, 2024 2:18:40 PM] Verifying File system mount options for path GI_HOME ...PASSED
INFO:  [Apr 17, 2024 2:18:41 PM] Verifying Access control attributes for /var/tmp/.oracle ...PASSED
INFO:  [Apr 17, 2024 2:18:41 PM] Post-check for cluster services setup was unsuccessful.
INFO:  [Apr 17, 2024 2:18:41 PM] Checks did not pass for the following nodes:
INFO:  [Apr 17, 2024 2:18:41 PM] fox2,fox1
INFO:  [Apr 17, 2024 2:18:41 PM] Failures were encountered during execution of CVU verification request "stage -post crsinst".
INFO:  [Apr 17, 2024 2:18:41 PM] Verifying Clock Synchronization ...FAILED
INFO:  [Apr 17, 2024 2:18:41 PM]   Verifying Network Time Protocol (NTP) ...FAILED
INFO:  [Apr 17, 2024 2:18:41 PM]     Verifying '/etc/ntp.conf' ...WARNING
INFO:  [Apr 17, 2024 2:18:41 PM]     PRVG-1019 : The NTP configuration file "/etc/ntp.conf" does not exist on
INFO:  [Apr 17, 2024 2:18:41 PM]     nodes "fox2,fox1"
INFO:  [Apr 17, 2024 2:18:41 PM]     Verifying '/var/run/ntpd.pid' ...WARNING
INFO:  [Apr 17, 2024 2:18:41 PM]     PRVG-1019 : The NTP configuration file "/var/run/ntpd.pid" does not exist
INFO:  [Apr 17, 2024 2:18:41 PM]     on nodes "fox2,fox1"
INFO:  [Apr 17, 2024 2:18:41 PM]     Verifying Daemon 'ntpd' ...FAILED
INFO:  [Apr 17, 2024 2:18:41 PM]     PRVG-1024 : The NTP daemon or Service was not running on any of the cluster
INFO:  [Apr 17, 2024 2:18:41 PM]     nodes.
INFO:  [Apr 17, 2024 2:18:41 PM]     fox2: PRVF-7590 : "ntpd" is not running on node "fox2"
INFO:  [Apr 17, 2024 2:18:41 PM]     fox2: Liveness check failed for "ntpd"
INFO:  [Apr 17, 2024 2:18:41 PM]     fox1: PRVF-7590 : "ntpd" is not running on node "fox1"
INFO:  [Apr 17, 2024 2:18:41 PM]     fox1: Liveness check failed for "ntpd"
INFO:  [Apr 17, 2024 2:18:41 PM] CVU operation performed:      stage -post crsinst
INFO:  [Apr 17, 2024 2:18:41 PM] Date:                         Apr 17, 2024 2:17:59 PM
INFO:  [Apr 17, 2024 2:18:41 PM] CVU home:                     /u01/app/19c/grid/
INFO:  [Apr 17, 2024 2:18:41 PM] User:                         oracle
INFO:  [Apr 17, 2024 2:18:41 PM] Completed Plugin named: cvu
INFO:  [Apr 17, 2024 2:18:41 PM] Setup completed with overall status as Failed
[oracle@fox1 grid]$

설치가 완료 되었다.

설치후 클러스터 상태 확인

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

 

7. 오라클 소프트웨어 설치.

데이터베이스 환경변수 설정하고, 파일을 ORACLE_HOME에 복사 또는 이동한다.

[oracle@fox1 ~]$ db
[oracle@fox1 ~]$ cp LINUX.X64_193000_db_home.zip $ORACLE_HOME/

ORACLE_HOME으로 이동한 후 파일을 압축해제한다.

[oracle@fox1 ~]$ cd $ORACLE_HOME
[oracle@fox1 db_home]$ unzip LINUX.X64_193000_db_home.zip

runInstaller를 실행하여 설치를 시작한다.

[oracle@fox1 db_home]$ ./runInstaller

오라클 소프트웨어만 설치한다.

RAC 데이터베이스를 선택

설치할 노드를 선택한다.

설치할 버전 선택.

oracle base 디렉토리 선택

각각의 권한에 따른 그룹 선택

root 권한이 필요한 스크립트를 실행 할 수 있도록 root 계정의 비밀번호를 입력한다.

설치전 요구조건을 만족하지 못한 사항을 보여준다. ntp 관련 문제이므로 무시하고 설치를 진행한다.

설치 진행중에 root 권한이 필요한 스크립트 실행에 대해 물어본다.

설치 완료.

 

8. 데이터베이스 만들기

dbca 명령을 실행하여 데이타베이스를 만든다.

[oracle@fox1 db_home]$ dbca

create database 선택

Advanced configuration 선택

RAC 데이터베이스가 선택되어 있다.

설치할 노드 선택

SID 설정

데이터 저장소 설정.

recovery 설정. archive 모드를 사용하려면, specify fast recovery area를 선택해주어야 한다. 설정하지 않고 진행.

SGA외 항목 수정가능하나 기본값을 사용했음.

데이터베이스 문자셋만 한글 지원하도록 설정.

EM설정 안함.

데이터베이스 관리자 계정 비밀번호 설정.

옵션 설정.

사전 요구사항 검사.

설정 요약 화면

데이터베이스 생성 진행

데이터베이스 생성 완료.

완료후 확인.

오라클환경(.db.env)에서 아래 처럼 접속하면 idle instance로 접속이되어 사용할 수 없다.

[oracle@fox1 orcl]$ sqlplus /nolog

SQL*Plus: Release 19.0.0.0.0 - Production on Wed Apr 17 15:20:34 2024
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

SQL> conn /as sysdba
Connected to an idle instance.

SQL> startup
ORA-39511: Start of CRS resource for instance '223' failed with error:[CRS-5702: Resource 'ora.orcl.db' is already running on 'fox1'
CRS-0223: Resource 'ora.orcl.db' has placement error.
clsr_start_resource:260 status:223
clsrapi_start_db:start_asmdbs status:223
]
SQL>

아래처럼, 서비스이름을 사용하여 접속하면 된다. xxxxx는 데이터베이스 생성시 입력한 관리자 비밀번호이다.
참고로 SID 환경변수를 현재 노드의 SID로 변경(노드에 따라 orcl1, orcl2로 다름)하면 위의 방법으로 접속이 가능하기는 하다.

fox-scan대신 scan IP 주소 3개중 아무거나 사용해도 된다.

$ sqlplus sys/xxxxx@fox-scan/orcl as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on 화 4월 23 16:21:44 2024
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.


다음에 접속됨:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

그리드환경(.grid.env)을 적용하고 접속하면, 그리드 관련 사항을 sqlplus 명령으로 확인 할 수 있다.
하지만, 데이터베이스 작업은 할 수 없다.

[oracle@fox1 db_home]$ grid

[oracle@fox1 orcl]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Wed Apr 17 15:26:52 2024
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 INST_NUMBER, INST_NAME from v$active_instances;

INST_NUMBER
-----------
INST_NAME
--------------------------------------------------------------------------------
          1
fox1:+ASM1

          2
fox2:+ASM2

 

 

 

* 참고 문서

INS-06006: ssh 접속 실패에 대한 참고문서:

INS-41116: 리눅스 방화벽 실행중이라면 정지.
# systemctl stop firewalld

ASM disk group 에대한 참고문서:
https://docs.oracle.com/en/database/oracle/oracle-database/12.2/ostmg/mirroring-diskgroup-redundancy.html#GUID-76B31808-7017-4299-8CC2-EDD9FFEC4B37

답글 남기기

Your email address will not be published.