سلام! برای اضافه کردن دیسک به دیتابیس اوراکل از طریق udev ، مراحل زیر را میتوانید دنبال کنید. همچنین توضیحاتی در مورد فایلهای پیکربندی و فیلدهای مهم آنها ارائه خواهم داد.
قبل از ادامه از دوست عزیزم حسن رضائی برای تهیه این مطلب تشکر میکنم.
1. آمادهسازی دیسک جدید
ابتدا دیسک جدید را به سرور متصل کنید و از طریق دستور fdisk
یا lsblk
مطمئن شوید که دیسک شناسایی شده است.
[root@vahiddb ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot/efi
├─sda2 8:2 0 40G 0 part /u01
├─sda3 8:3 0 20G 0 part /
├─sda4 8:4 0 15G 0 part /var
├─sda5 8:5 0 5G 0 part /home
├─sda6 8:6 0 4G 0 part [SWAP]
└─sda7 8:7 0 15G 0 part /tmp
sdb 8:16 0 20G 0 disk
sr0 11:0 1 13.2G 0 rom
2. ایجاد پارتیشن بر روی دیسک
با استفاده از fdisk
یا parted
یک پارتیشن جدید ایجاد کنید.
[root@vahiddb ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.32.1).
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 0xcf143bac.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-41943039, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-41943039, default 41943039):
Created a new partition 1 of type 'Linux' and of size 20 GiB.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
3. پیدا کردن شناسه یکتای دیسک
برای پیدا کردن شناسه یکتای دیسک، میتوانید از دستور scsi_id
به صورت دستی استفاده کنید:
[root@vahiddb ~]# sudo /usr/lib/udev/scsi_id -g -u -d /dev/sdb
1ATA_VBOX_HARDDISK_VBa32d0c6e-5f61b0e2
این مقدار را باید در جایی نگه داریم تا در تنظمیات آتی استفاده کنیم.
اضافه کردن قوانین UDEV
فایل قوانین udev را باز کنید یا یک فایل جدید ایجاد کنید.
[root@vahiddb ~]# vi /etc/udev/rules.d/99-oracle-disk.rules
[root@vahiddb ~]# cat /etc/udev/rules.d/99-oracle-disk.rules
PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/sdb1", RESULT=="1ATA_VBOX_HARDDISK_VBa32d0c6e-5f61b0e2", NAME="DATA01", OWNER="oracle", GROUP="asmadmin", MODE="0660"
توضیحات فیلدها:
- PROGRAM: برنامهای که باید اجرا شود تا شناسه یکتای دیسک را استخراج کند. در اینجا از
scsi_id
استفاده میشود. - RESULT: نتیجه اجرای برنامه
scsi_id
که شامل شناسه یکتای دیسک است. این مقدار باید با شناسه دیسک شما مطابقت داشته باشد. - NAME: نامی که میخواهید به دیسک بدهید (مثلاً
oracle-disk1
). - OWNER: مالک فایل دستگاه (مثلاً
oracle
). - GROUP: گروه مالک فایل دستگاه (مثلاً
dba
). - MODE: سطح دسترسی فایل دستگاه (مثلاً
0660
).
اعمال تنظیمات UDEV
برای اعمال تنظیمات جدید udev، دستور زیر را اجرا کنید:
udevadm control --reload-rules
udevadm trigger
چک نهایی:
بعد از انجام این کارها، باید مشخصات دیسک، بصورت زیر عوض شده باشد:
[root@vahiddb ~]# ll /dev/sdb
brw-rw----. 1 oracle asmadmin 8, 16 Aug 4 04:30 /dev/sdb