نصب Oracle RAC 19c روی virtualbox با Oracle Linux 9 (قسمت دوم: آماده‌سازی سیستم‌عامل برای نصب Oracle RAC)

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 را به آن بدهید. دقت کنید که کارتهای با وظیفه مشابه باید هم نام باشند.