참고자료
– Doc ID 2052802.1 (standalone silent로 구성 관련)
– https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/about-the-oracle-inventory-directory-and-installation.html (경로별 권한)
– https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/optimal-flexible-architecture-file-path-examples.html (경로별 권한)
– https://dataforum.io/display/ORCL/Oracle+Database+19c+Real+Application+Clusters#OracleDatabase19cRealApplicationClusters-VM%EA%B5%AC%EC%84%B1 (RAC 구성 관련)
– https://dataforum.io/display/ORCL/Oracle+Database+19c+Restart (Restart 구성 관련)
– https://dataforum.io/display/ORCL/Silent+Install+%3A+Oracle+Database+19c+Restart (Restart silent 구성 관련)
– https://positivemh.tistory.com/357 (asmca 관련)
VM 구성
CPU : 2core
RAM : 8192m
storage : data.vdi 30G 1개 미리 할당
항상 설치하던대로 vm 구성.
서버 설정
rpm
공식 requirements대로
/etc/hosts
ip대로 알잘딱. 고정ip를 쓰든, 변동을 그때그때 반영하든.
/etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted
/etc/sysctl.conf
kernel.sem=250 32000 100 128
kernel.shmall=1048576
kernel.shmmax=4294967295
kernel.shmmni=4096
fs.file-max=6815744
fs.aio-max-nr=1048576
net.ipv4.ip_local_port_range=9000 65500
net.ipv4.conf.all.rp_filter=2
net.ipv4.conf.default.rp_filter=2
net.core.rmem_default=262144
net.core.rmem_max=4294304
net.core.wmem_default=262144
net.core.wmem_max=1048576
/etc/security/limits.conf
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
grid soft nofile 1024
grid hard nofile 65536
grid soft nproc 2047
grid hard nproc 16384
grid soft stack 10240
grid hard stack 32768
[미사용 서비스 정리]
RAC 구성할 때에는 했는데 이번에 하는건 standalone이니깐 안하고 진행해봄.
계정
groupadd -g 54321 dba
useradd -g dba -u 54321 oracle
passwd oracle
useradd -g dba -u 54322 grid
passwd grid
디렉터리
공식문서 OFA(Oracle Flexible Architecture)
출처 : https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/about-the-oracle-inventory-directory-and-installation.html
/u01/app/oraInventory, owned by grid:oinstall
/u01/app/oracle, owned by oracle:oinstall
/u01/app/oracle/product/19.0.0/dbhome_1/, owned by oracle:oinistall
/u01/app/grid, owned by grid:oinstall
/u01/app/19.0.0/grid, owned by root
mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
mkdir -p /u01/app/oraInventory
mkdir -p /u01/app/grid
mkdir -p /u01/app/19.0.0/grid
mkdir -p /oraCD
chown -R oracle:dba /u01
chown -R grid:dba /u01/app/oraInventory
chown -R grid:dba /u01/app/grid
chown -R grid:dba /u01/app/19.0.0/grid
chown -R oracle:dba /oraCD
chmod -R 775 /u01
chmod -R 775 /oraCD
# GI 설치 전에는 grid:dba로 해놓고 설치가 끝난 뒤에는 root:root 로 바꿔줘야 된다.
출처 : https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/optimal-flexible-architecture-file-path-examples.html
chown -R root:root /u01/app/19.0.0/grid

WinSCP로 /oraCD에 파일들 넘기기
udev
fdisk -l
lsblk -f
/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sdb
1ATA_VBOX_HARDDISK_VBb13b7f44-2a3b7e8a
vi /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="sd?", ENV{ID_SERIAL}=="VBOX_HARDDISK_VBb13b7f44-2a3b7e8a", SYMLINK+="oracleasm/disks/DATA", OWNER="grid", GROUP="dba", MODE="0660"
udevadm control --reload-rules
udevadm trigger
ll /dev/oracleasm/disks
ll /dev/sd*

.bash_profile
만약 OL8 이상에서 설치할 경우 아래에서 두번째 줄 CV_ASSUME_DISTID 부분을 넣어야 오류없이 잘 됨.
# root
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export GRID_HOME=/u01/app/19.0.0/grid
export ORACLE_SID=ol7sa
export GRID_SID=+ASM1
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/JRE
export TMP=/tmp
export TMPDIR=$TMP
#export CV_ASSUME_DISTID=OEL7.6
#export DISPLAY=192.168.0.110:0.0
# grid
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/19.0.0/grid
export GRID_HOME=/u01/app/19.0.0/grid
export ORACLE_SID=ol7sa
export GRID_SID=+ASM1
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/JRE
export TMP=/tmp
export TMPDIR=$TMP
#export CV_ASSUME_DISTID=OEL7.6
#export DISPLAY=192.168.0.110:0.0
# oracle
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export GRID_HOME=/u01/app/19.0.0/grid
export ORACLE_SID=ol7sa
export GRID_SID=+ASM1
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/JRE
export TMP=/tmp
export TMPDIR=$TMP
#export CV_ASSUME_DISTID=OEL7.6
#export DISPLAY=192.168.0.110:0.0
Grid Infrastructure
unzip GRID_HOME
su - grid
cd $GRID_HOME
unzip /oraCD/<GRID_HOME.zip>
unzip OPatch engine
mv OPatch OPatch_old
opatch version
opatch lsinventory
opatch lspatches
unzip RU
vi gridsetup.rsp
INVENTORY_LOCATION=/u01/app/oraInventory
oracle.install.option=HA_CONFIG
ORACLE_BASE=/u01/app/grid
oracle.install.asm.OSDBA=dba
oracle.install.asm.OSOPER=dba
oracle.install.asm.OSASM=dba
oracle.install.crs.config.autoConfigureClusterNodeVIP=false
oracle.install.asm.diskGroup.name=DATA
oracle.install.asm.diskGroup.redundancy=EXTERNAL
oracle.install.asm.SYSASMPassword=oracle
oracle.install.asm.diskGroup.disks=/dev/oracleasm/disks/DATA
oracle.install.asm.diskGroup.diskDiscoveryString=/dev/oracleasm/disks/*
oracle.install.asm.monitorPassword=oracle
./gridsetup.sh
./gridsetup.sh -applyRU 38298204 -silent -responseFile /u01/app/grid/install/response/gridsetup.rsp
설치 중에 /tmp밑에 log 찾아서 tail -f 걸기.
# 완료 후에 root 스크립트 수행
/u01/app/oraInventory/orainstRoot.sh
/u01/app/19.0.0/grid/root.sh













crsctl stat res -t 로 잘 됐나 확인.

asmca
asmca -silent -createDiskGroup -diskGroupName DATA -diskList /dev/oracleasm/disks/DATA -redundancy external
으아악 -silent로 하다가 cluster에 asm이 안 올라가서 asmca가 안되고 다른 서비스도 안 올라오고 망가졌다. 로그를 까봐도 별 내용이 없고;; 그래서 그냥 deinstall 갈겨버리고 공손한 자세로 GUI 띄워서 다시 하는 중…


만약 추가해야되는 디스크가 있다면 빨간부분 처리해서 OK 누르기.