รอบนี้จะมาติดตั้ง 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
- Grid Infrastructure 18c
- Oracle Database 18c
- โหลดได้ที่ https://edelivery.oracle.com
- 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 ในขั้นตอนนี้
- กด Add a disk
- กด Add iSCSI Target…
- ใส่ IP Address ของ iSCSI และ iSCSI Initiator Name ที่ได้จาก iSCSI Admin
- กด Start Discovery
- ทำเครื่องหมายถูกหน้าดิสก์ที่ขึ้นมาทั้งหมด
- กด Log In จะได้
- กดเลือกทั้งหมดแล้วกด Done จะได้
- เลือกเฉพาะ disk ขนาด 300GB และเลือก I will configure partitioning กด Done
- ตอนแบ่ง Partition เลือกเป็น LVM
- /boot 1GB file
- /boot/efi 200MB (default) เนื่องจากเลือก boot แบบ efi
- / 282.8 GB file system ext4
- swap 16GB
- กด Done ได้ดังรูป
- กด Accept Changes
- กด Begin Installation
- ขั้นตอนสร้าง User สร้างตามรูป
- คลิก 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 อีกเครื่อง