Grid infrastructure 18c ตอน 1

รอบนี้จะมาติดตั้ง Oracle grid infrastructure 18c กัน

สิ่งที่ต้องเตรียม

  • Vmware 2 เครื่อง โดยแต่ละเครื่องมีคุณสมบัติดังนี้ (ปรับลดตามความเหมาะสมได้)
    • 2 CPU 64 core
    • 128 GB Memory
    • HDD 2 ลูก
      • 300GB
      • 1TB
    • Shared Storage ครั้งนี้เลือกใช้ iSCSI 6 ลูกลูกละ 1TB
    • Network Card 3 ใบ
    • IP address โดย 4 IP วงเดียวกัน 3 IP สำหรับชื่อเรียกใน DNS วงเดียวกันกับ 4 IP แรก 2 IP คนละวง
      • rac1 1 IP สำหรับการ์ดใบแรก เป็น IP ประจำเครื่อง หรือเรียก Public IP (ens192)
      • rac2 1 IP สำหรับการ์ดใบแรก เป็น IP ประจำเครื่อง หรือเรียก Public IP (ens192)
      • rac1-vip 1 IP เป็น virtual IP ไม่ต้องใส่ในการ์ดแลน วงเดียวกันกับ IP ประจำเครื่อง เรียก Virtual IP
      • rac2-vip 1 IP เป็น virtual IP ไม่ต้องใส่ในการ์ดแลน วงเดียวกันกับ IP ประจำเครื่อง เรียก Virtual IP
      • rac-scan 3 IP ต้องจดชื่อนี้ใน DNS ด้วยโดยจดเป็น round robin วงเดียวกันกับ IP ประจำเครื่อง เรียก Scan name
      • rac1-priv 1 IP สำหรับการ์ดใบที่สอง เป็น IP สำหรับคุยกันเองใน cluster คนละวงกับ IP ประจำเครื่อง เรียก Private IP (ens224) วงเดียวกับ rac2-priv
      • rac2-priv 1 IP สำหรับการ์ดใบที่สอง เป็น IP สำหรับคุยกันเองใน cluster คนละวงกับ IP ประจำเครื่อง เรียก Private IP (ens224) วงเดียวกับ rac1-priv
      • rac1-storage 1 IP สำหรับเชื่อมต่อ iSCSI ติดต่อผู้ดูแล iSCSI (ens256)***
      • rac2-storage 1 IP สำหรับเชื่อมต่อ iSCSI ติดต่อผู้ดูแล iSCSI (ens256)***
  • Download Software
  • Oracle Enterprise Linux 7.9
    • เลือกติดตั้งดังรูปได้แก่
      • Date & Time เลือก Timezone ที่ถูกต้อง Asia/Bangkok
      • Keyboard English (US), Thai
      • Software Selection เลิอกเป็น Server with GUI
      • KDUMP เลือก Disabled
      • Security Policy เลือก ปิด เป็น No profile selectd
      • ตั้งค่า network ตามที่เขียนข้างบน
  • ขั้นตอนแบ่งดิสก์
  • เริ่มการจัดการ iSCSI ในขั้นตอนนี้
Device Selection
  • กด Add a disk
Add iSCSI
  • กด Add iSCSI Target…
  • ใส่ IP Address ของ iSCSI และ iSCSI Initiator Name ที่ได้จาก iSCSI Admin
ADD iSCSI STORAGE TARGET
  • กด Start Discovery
  • ทำเครื่องหมายถูกหน้าดิสก์ที่ขึ้นมาทั้งหมด
ADD iSCSI STORAGE TARGET
  • กด Log In จะได้
Installation Destination
  • กดเลือกทั้งหมดแล้วกด Done จะได้
INSTALLATION DESTINATION
  • เลือกเฉพาะ disk ขนาด 300GB และเลือก I will configure partitioning กด Done
INSTALLATION DESTINATION
  • ตอนแบ่ง Partition เลือกเป็น LVM
    • /boot 1GB file
    • /boot/efi 200MB (default) เนื่องจากเลือก boot แบบ efi
    • / 282.8 GB file system ext4
    • swap 16GB
Manual Portioning
  • กด Done ได้ดังรูป
  • กด Accept Changes
  • กด Begin Installation
  • ขั้นตอนสร้าง User สร้างตามรูป
Configuration 
  • คลิก Advanced…
  • คลิกถูกในช่องสี่เหลี่ยมทั้งสองช่อง พิมพ์ 54321 ทั้งสองช่อง
  • ในช่อง Add user to the following groups: เปลี่ยนเป็นดังนี้
wheel,oinstall(54321),oper(54322),dba(54323),backupdba(54324),dgdba(54325)
,kmdba(54326),asmdba(54327), asmoper(54328),asmadmin(54329),racdba(54330)
  • รอจนติดตั้งเสร็จ reboot ทำแบบเดียวกันที่ rac2
  • เริ่มการตั้งค่าที่ rac1
  • ล็อคอินด้วยผู้ใช้ oracle เปิด terminal แล้วพิมพ์คำสั่งต่อไปนี้ จะขึ้นให้ใส่ password ให้ใส่ password ของ oracle
sudo -i
  • แก้ไขไฟล์ host ด้วยคำสั่ง
vi /etc/hosts
  • แก้ไขให้อยู่ดังรูป
<IP-address>  <fully-qualified-machine-name>  <machine-name>
  • ปิด selinux แก้ไขแฟ้ม /etc/selinux/config
vi /etc/selinux/config
  • เปลี่ยน SELINUX=enforcing เป็น SELINUX=permissive
  • บันทึกแล้วออกมารันคำสั่ง
 setenforce Permissive
  • ปิด firewall ด้วยคำสั่ง
systemctl stop firewalld
systemctl disable firewalld
  • เปิดการทำงานของ NTP
systemctl enable chronyd
systemctl restart chronyd
chronyc -a 'burst 4/4'
chronyc -a makestep
  • ติดตั้งซอฟท์แวร์ที่จำเป็นสำหรับ Oracle 18c
yum install oracle-database-preinstall-18c -y
yum install binutils -y
yum install compat-libstdc++-33 -y
yum install compat-libstdc++-33.i686 -y
yum install gcc -y
yum install gcc-c++ -y
yum install glibc -y
yum install glibc.i686 -y
yum install glibc-devel -y
yum install glibc-devel.i686 -y
yum install ksh -y
yum install libgcc -y
yum install libgcc.i686 -y
yum install libstdc++ -y
yum install libstdc++.i686 -y
yum install libstdc++-devel -y
yum install libstdc++-devel.i686 -y
yum install libaio -y
yum install libaio.i686 -y
yum install libaio-devel -y
yum install libaio-devel.i686 -y
yum install libXext -y
yum install libXext.i686 -y
yum install libXtst -y
yum install libXtst.i686 -y
yum install libX11 -y
yum install libX11.i686 -y
yum install libXau -y
yum install libXau.i686 -y
yum install libxcb -y
yum install libxcb.i686 -y
yum install libXi -y
yum install libXi.i686 -y
yum install make -y
yum install sysstat -y
yum install unixODBC -y
yum install unixODBC-devel -y
yum install zlib-devel -y
yum install zlib-devel.i686 -y
  • ปรับปรุงรุ่นของ software
yum update -y
  • ยกเลิก virbr0 interface
systemctl stop libvirtd.service
systemctl disable libvirtd.service
  • จัดการกับ disk ลูก 1TB
fdisk /dev/sdb
  • กด n แล้ว enter แล้วกด enter 4 ครั้ง
  • กด t แล้ว enter แล้วเลือก 31 กด enter
  • กด w enter
  • สร้าง sdb1 ให้เป็น LVM Physical volume
pvcreate /dev/sdb1
  • สร้าง LVM volume group ชื่อ vg_u01
vgcreate vg_u01 /dev/sdb1
  • สร้าง LVM logical volume group ชื่อ lv_u01 ใน volume group ที่ชื่อ vg_u01 โดยให้มีขนาดทั้งหมดที่มีอยู่ใน vg_u01
lvcreate -n lv_u01 -l 100%FREE vg_u01
  • format LVM logical volume group lv_u01 เป็นแบบ ext4 มี Label ว่า u01
mkfs.ext4 -L u01 /dev/vg_u01/lv_u01
  • สร้าง /u01
mkdir /u01
  • แก้ไขแฟ้ม /etc/fstab เพิ่มบรรทัดต่อไปนี้ต่อท้าย
LABEL=u01               /u01                    ext4    defaults        1 1
  • สั่งให้ mount /u01 ด้วยคำสั่ง
mount -a
  • ตรวจสอบว่า mount ได้หรือไม่
df -h
  • ได้ผลประมาณว่า
  • จบการจัดการ disk 1TB
  • ต่อมาสร้างโฟลเดอร์ ที่จำเป็นสำหรับ grid infrastructure และ oracle database
mkdir -p /u01/app/18.0.0.0/grid
mkdir -p /u01/app/oracle/product/18.0.0.0/db_1
chown -R oracle:oinstall /u01/app
chmod -R 775 /u01/app
  • พิมพ์ logout เพื่อออกจาก user root แล้วกลับเป็น user oracle
  • สร้างโฟลเดอร์ /home/oracle/scripts
mkdir -p /home/oracle/scripts
  • สร้างแฟ้ม /home/oracle/scripts/setEnv.sh มีข้อความว่า โดย rac1.x.x.x คือชื่อเต็มของ rac1 หรือ rac2 ตามเครื่องที่ทำ ORACLE_SID ก็ต้องเป็น regist1 สำหรับ rac1 และ regist2 สำหรับ rac2
cat > /home/oracle/scripts/setEnv.sh <<EOF
# Oracle Settings
export TMP=/tmp
export TMPDIR=\$TMP
export ORACLE_HOSTNAME=rac1.x.x.x  #เปลี่ยน   
export ORACLE_UNQNAME=regist   #เปลี่ยน
export ORACLE_BASE=/u01/app/oracle
export GRID_HOME=/u01/app/18.0.0.0/grid
export DB_HOME=\$ORACLE_BASE/product/18.0.0.0/db_1
export ORACLE_HOME=\$DB_HOME
export ORACLE_SID=regist1 #เปลี่ยน
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_env='. /home/oracle/scripts/grid_env'
alias db_env='. /home/oracle/scripts/db_env'
EOF
  • เพิ่ม script /home/oracle/scripts/setEnv.sh ให้ทำงานทุกครั้งที่ Login
cat >> /home/oracle/.bashrc <<EOF
. /home/oracle/scripts/setEnv.sh
EOF
  • สร้างแฟ้ม /home/oracle/scripts/grid_env และแฟ้ม /home/oracle/scripts/db_env ด้วยคำสั่ง
cat > /home/oracle/scripts/grid_env <<EOF
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
EOF

cat > /home/oracle/scripts/db_env <<EOF
export ORACLE_SID=regist1
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
EOF
  • reboot ด้วยคำสั่งต่อไปนี้ หากขึ้นให้ใส่ password ให้กรอก password ของ oracle
sudo reboot
  • ทำซ้ำที่ rac2 อีกเครื่อง