در قسمت قبل ماشین های مجازی را ساختیم:
نصب Oracle RAC 19c روی virtualbox با Oracle Linux 9 (قسمت اول: ساخت ماشینها و دیسکهای Shared)
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 دانلود کنید. با نصب این پکیجها، می توانید اوراکل 26 هم نصب کنید.
cd /root
dnf install -y oracle-database-preinstall-19c-1.0-1.el9.x86_64.rpm oracleasm-support-3.1.1-5.el9.x86_64.rpm oracleasmlib-3.1.1-1.el9.x86_64.rpm fontconfig freetype dejavu-sans-fonts
دقت کن حجم زیادی از 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 دیده میشود).
ما سه گروه دیگر را باید بسازیم.
groupadd -g 54327 asmdba
groupadd -g 54328 asmoper
groupadd -g 54329 asmadmin
این گروه ها مخصوص کاربری هستند که مدیریت زیرساخت یا همان grid infrastructure را به عهده دارد. من نصب هر دو را با یک کاربر ، یعنی همان کاربر oracle انجام می دهم. دلیل عمده هم این است که مدیریت زیرساخت و دیتابیس اصلی هر دو با من است. کاربر oracle را تغییر می دهیم تا عضو این گروه ها هم باشد.
usermod -u 54321 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,asmdba,asmoper,asmadmin,racdba oracle
در صورتی که علاقه به موضوع گروه بندی ها دارید، مقاله ای به این منظور برای backupdba از لینک زیر قابل مشاهده هست.
با زدن دستور زیر پسوردی برای کاربر oracle انتخاب می کنیم:
passwd oracle
مجوز صاحب پوشه u01 را نیز به اوراکل می دهیم:
chown oracle:oinstall /u01/ -R
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 را ببینی
قبل از شروع نصب 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.56.51 node1.vahiddb.com node1
192.168.56.52 node2.vahiddb.com node2
192.168.56.53 node3.vahiddb.com node3
# VIPs
192.168.56.54 node1-vip.vahiddb.com node1-vip
192.168.56.55 node2-vip.vahiddb.com node2-vip
192.168.56.56 node3-vip.vahiddb.com node3-vip
# SCAN (3 entries required)
192.168.56.57 scan.vahiddb.com scan
192.168.56.58 scan.vahiddb.com scan
192.168.56.59 scan.vahiddb.com scan
# GNS (Not mandatory for this lab but recommended)
192.168.56.60 gns.vahiddb.com gns
# Private Interconnect
10.10.0.1 node1-priv
10.10.0.2 node2-priv
10.10.0.3 node3-priv
9.4) تنظیم کارت شبکه Private با nmtui
در صورتی که در قسمت قبل آدرس کارت شبکه دوم که به عنوان private عمل خواهد کرد را ندادید، می توانید به اینصورت اینکار را انجام دهید.
روی rac1:
nmtui
-
Edit a connection → کارت شبکه دوم (مثلاً ens192)
-
آدرس IP را تنظیم کنید:
IP Address: 10.1.1.31/24
Gateway: (خالی بگذارید)
DNS: (خالی بگذارید)
-
گزینه Automatic DNS را خاموش کنید
-
اتصال را فعال کنید (Activate)
برای rac2 نیز این کار را انجام دهید و آدرس 32 را به آن بدهید. دقت کنید که کارتهای با وظیفه مشابه باید هم نام باشند.
در قسمت بعد به سراغ کانفیگ دیسکهای share می رویم. برای این موضوع دو گزینه دارید:
کانفیگ با oracleasm
گزینه asm filter drive هم وجود دارد که در این داکیومنت آورده نشده است.