1. اتصال با SSH به هر دو نود
پس از آمادهسازی اولیه سیستمعامل، با SSH به هر دو نود متصل میشویم تا تنظیمات نصب را انجام دهیم.
2. Mount کردن ISO در سیستمعامل
برای اینکه بتوانیم پکیجهای پیشنیاز اوراکل را نصب کنیم، ابتدا باید DVD نصب سیستمعامل را mount کنیم:
mkdir /cdrom
mount /dev/cdrom /cdrom
اگر mount با موفقیت انجام شود خروجی مشابه زیر مشاهده خواهید کرد:
mount: /cdrom: WARNING: source write-protected, mounted read-only.
نکته: اگر DVD در ماشین Mount نشده بود، از virtualbox مسیر ISO را دوباره انتخاب و گزینه Connected را فعال کنید.

دیسک را انتخاب میکنیم. یادمان باشد پس از اتمام کار، حتماً eject کنیم تا پس از بالا آمدن مجدد از دیسک نصب بالا نیاید.
3. ساخت Local YUM Repository
برای جلوگیری از وابستگی به اینترنت، یک Local Repository از DVD میسازیم.
ابتدا وارد مسیر repo ها شده و از فایلهای موجود بکاپ میگیریم:
cd /etc/yum.repos.d
mkdir backup
mv ./* backup/
اگر خطا مشابه زیر دیدید، طبیعی است چون پوشه backup دارد جابجا میشود:
mv: cannot move './backup' to a subdirectory of itself, 'backup/backup'
4. ایجاد Repository برای BaseOS و AppStream
فایل جدید repo ایجاد میکنیم:
vi /etc/yum.repos.d/media.repo
و محتوای زیر را داخل آن قرار میدهیم:
[dvd-BaseOS]
name=DVD for RHEL - BaseOS
baseurl=file:///cdrom/BaseOS
enabled=1
gpgcheck=0
[dvd-AppStream]
name=DVD for RHEL - AppStream
baseurl=file:///cdrom/AppStream
enabled=1
gpgcheck=0
5. خاموش کردن Firewall و SELinux (فعلاً)
هدف ما ساخت Lab است، بعداً مرحله امنیت کامل را مفصل آموزش میدهیم.
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config
6) انتقال و نصب بستهی oracle-database-preinstall-19c
6.1) انتقال فایل RPM با MobaXterm (SFTP)
از پنل SFTP در MobaXterm فایل های
oracle-database-preinstall-19c-1.0-1.el9.x86_64.rpm
oracleasmlib-3.1.1-1.el9.x86_64.rpm
oracleasm-support-3.1.1-3.el9.x86_64.rpm
در صورتی که هر کدام از این سه فایل را احتیاج داشتید، از طریق تلگرام اطلاع دهید که برایتان ارسال شود.
را به مسیر خانگی روت (مثلاً /root) روی rac1 و rac2 کپی کنید.
6.2) اطمینان از فعال بودن ریپوهای DVD
cd /etc/yum.repos.d
chmod 644 media.repo
dnf clean all
dnf repolist enabled
خروجی مورد انتظار:
dvd-BaseOS
dvd-AppStream
6.3) نصب بستهی پیشنیاز اوراکل
به مسیری که فایلها رو منتقل کردیم می رویم. من به root منتقل کرده ام. این پکیج رو می تونید از کانال تلگرام به آدرس https://t.me/vahiddb_dba دانلود کنید.
cd /root
dnf install -y oracle-database-preinstall-19c-1.0-1.el9.x86_64.rpm
دقت کن حجم زیادی از Dependencies از همان DVD نصب میشود
6.4) بعد از نصب، چه چیزهایی خودکار تنظیم میشود؟
کاربر و گروهها (اگر وجود نداشتند ایجاد میشوند):
getent group oinstall dba
id oracle
Limitها (فایل پالیسی preinstall):
cat /etc/security/limits.d/oracle-database-preinstall-19c.conf
کرنل پارامترها (فایل sysctl مخصوص preinstall):
cat /etc/sysctl.d/99-oracle-database-preinstall-19c-sysctl.conf
/sbin/sysctl -p /etc/sysctl.d/99-oracle-database-preinstall-19c-sysctl.conf
ابزارهای پایهی لازم مثل ksh, net-tools, xauth, unzip, sysstat و… نصب میشوند (در خروجی dnf دیده میشود).
اگر پسوردی برای کاربر oracle نیاز داری، الآن بساز
passwd oracle
7) ریبوت هر دو سرور و آمادهسازی پارتیشنها (Shared Disks)
7.1) وضعیت اولیهی دیسکها (نمونه روی rac1)
lsblk
7.2) پارتیشنبندی هر دیسک با fdisk (روی rac1)
هر دیسک دقیقا یک پارتیشن Primary (شماره 1) بگیرد؛ نوع همان پیشفرض Linux باشد. دقت کنید که فقط روی یک node اینکار انجام شود و node دیگر باید حاصل اینکار را با دستور partprobe فقط refresh کند.
sdb 10G
sdc 50G
sdd 20G
sde 15G
هر بار دستور رو که زدیم و prompt ظاهر شد n رو می زنیم و تا انتها همان پیش فرضها رو قبول می کنیم. زمانی که به انتها رسید، با زدن W ذخیره می کنیم و بیرون می آییم و دستور بعدی رو می زنیم تا تمام 4 دیسکی که دادیم پارتیشن بشه.
مثال
[root@rac1 ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.37.4).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x207e60d3.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p):
Using default response p.
Partition number (1-4, default 1):
First sector (2048-20971519, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-20971519, default 20971519):
Created a new partition 1 of type 'Linux' and of size 10 GiB.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
پس از اتمام:
lsblk
خروجی نمونه:
7.3) اعمال جدول پارتیشن روی نود دوم (rac2)
ابتدا وضعیت:
lsblk
سپس برای خواندن مجدد جدولها:
partprobe
lsblk
حالا باید /dev/sda1 … /dev/sdd1 را ببینی
8) ایجاد گروههای ASM و همگنسازی کاربر oracle
preinstall کاربر
oracleرا ساخته؛ گروههای ASM را اضافه و کاربر را در همهٔ گروههای لازم عضو کن. اینکار بر روی هر دو node انجام شود
groupadd -g 54327 asmdba
groupadd -g 54328 asmoper
groupadd -g 54329 asmadmin
usermod -u 54321 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,asmdba,asmoper,asmadmin,racdba oracle
نکته: همین تغییرات را روی rac2 هم اعمال کن تا UID/GID روی هر دو نود یکسان باشد.
9) تنظیم Hostname و فایل /etc/hosts برای Oracle RAC
قبل از شروع نصب Grid Infrastructure، باید نام میزبانها (Hostname) و رکوردهای شبکه را تنظیم کنیم تا همه سرویسهای RAC شامل SCAN، VIP و Private interconnect قابل resolve باشند.
9.1) تنظیم Hostname دائمی
روی rac1:
hostnamectl set-hostname rac1.vahiddb.com
روی rac2:
hostnamectl set-hostname rac2.vahiddb.com
9.2) تنظیم فایل /etc/hosts (Lab Mode یا Backup در کنار DNS)
حتی با وجود DNS بهتر است /etc/hosts را نیز درست کنیم تا اگر DNS down شد، Grid دچار مشکل نشود.
روی هر دو نود فایل زیر را قرار دهید:
# Public Network
192.168.188.31 rac1.vahiddb.com rac1
192.168.188.32 rac2.vahiddb.com rac2
# VIPs
192.168.188.33 rac1-vip.vahiddb.com rac1-vip
192.168.188.34 rac2-vip.vahiddb.com rac2-vip
# SCAN (3 entries required)
192.168.188.35 racscan.vahiddb.com racscan
192.168.188.36 racscan.vahiddb.com racscan
192.168.188.37 racscan.vahiddb.com racscan
# GNS (Not mandatory for this lab but recommended)
192.168.188.38 racgns.vahiddb.com racgns
# Private Interconnect
10.1.1.31 rac1-priv
10.1.1.32 rac2-priv
9.4) تنظیم کارت شبکه Private با nmtui
برای ارتباط interconnect کلاستر RAC (شبکه خصوصی)، باید کارت شبکه دوم را پیکربندی کنیم.
روی rac1:
nmtui
-
Edit a connection → کارت شبکه دوم (مثلاً ens192)
-
آدرس IP را تنظیم کنید:
IP Address: 10.1.1.31/24
Gateway: (خالی بگذارید)
DNS: (خالی بگذارید)
-
گزینه Automatic DNS را خاموش کنید
-
اتصال را فعال کنید (Activate)
برای rac2 نیز این کار را انجام دهید و آدرس 32 را به آن بدهید. دقت کنید که کارتهای با وظیفه مشابه باید هم نام باشند.