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