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

در قسمت قبل ماشین های مجازی را ساختیم:

نصب 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 از لینک زیر قابل مشاهده هست.

https://vahiddb.com/fa/oracle/database-administration/using-operating-system-groups-for-segregating-database-permissions-in-oracle-database-fa

 

با زدن دستور زیر  پسوردی برای کاربر 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 را ببینی

 

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.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

کانفیگ با udev

گزینه asm filter drive هم وجود دارد که در این داکیومنت آورده نشده است.