Oracle ACFS
- sqlplus
- asmcmd
- asmca
- enterprise manager
SQLPLUS Example: [grid@rac1 ~]$ sqlplus / as sysasm SQL> ALTER DISKGROUP DATA ADD VOLUME ACFSVOL3 SIZE 10G; Diskgroup altered. SELECT volume_name, volume_device FROM V$ASM_VOLUME WHERE volume_name ='ACFSVOL3';
VOLUME_NAME VOLUME_DEVICE ----------------- -------------------------------------- ACFSVOL3 /dev/asm/acfsvol3-123 ASMCMD Example: [grid@rac1 ~]$ asmcmd volcreate -G data -s 10G ACFSVOL3 [grid@rac1 ~]$ asmcmd volinfo -G data ACFSVOL3 Diskgroup Name: DATA Volume Name: ACFSVOL3 Volume Device: /dev/asm/acfsvol3-123
State: ENABLED ...
۲- خوب تا الان یک volume در ASM diskgroup +DATA به حجم 10G ایجاد کردیم. حالا وقت این است که یک فایل سیستم برروی volume ایجاد کنیم که در اینجا ما یک ACFS برروی volume ایجاد خواهیم کرد. دقت کنید که از این پس volume با استفاده از ADVM به صورت یک block device به OS با آدرس /dev/asm/acfsvol3-123 ارایه شده است.
[grid@rac1 ~]$ /sbin/mkfs -t acfs /dev/asm/volume1-123 mkfs.acfs: version = 11.2.0.4.0.0 mkfs.acfs: on-disk version = 39.0 mkfs.acfs: volume = /dev/asm/volume1-123 mkfs.acfs: volume size = 10737418240 mkfs.acfs: Format complete.
۳- در مرحله فوق اگر دقت کرده باشبد ما با کاربر grid فایل سیستم ابجاد کردیم. دقت کنید که بعد از ساخت block device مالک آن چه کسی هست ؟! در اینحا مالک asmadmin میباشد پس مالک یا کاربر root میتواند filesystem ایجاد کند که با با استفاده از مالک چنین کاری انجام دادیم. حالا وقت آن است که یک mount point ایجاد کرده و block device فرمت شده را بر روی یک مسیر mount کنیم.
[root@rac1 ~]$ /bin/mount -t acfs /dev/asm/volume1-123 /u01/app/acfsmounts/myacfs
۴- در مرحله فوق ما عملیات mount را انجام دادیم. دقت کنید تنها با کاربر root این امکان وجود دارد که عملیات mount را انجام بدید. این مرحله را روی تمام node های کلاستر باید تک تک انجام بدید. ولی یک کار ساده تر وجود دارد که خود clusterware شروع میکند به mount کردن block device برروی mount point ها بر روی تمام نود ها. دقت کنید که این مرحله یک مرحله optional هست. اسم این مرحله acfs registery می باشد.
[grid@rac1 ~]$ /sbin/acfsutil registry -a /dev/asm/volume1-123 /u01/app/acfsmounts/myacfs acfsutil registry: mount point /u01/app/acfsmounts/myacfs successfully added to Oracle Registry
دقت کنید در مرحله فوق oracle clusterware عملیات mounting و مانیتور کردن آن را به صورت automatic انجام میدهد. چگونگی کار به این صورت است که clusterware آن را به صورت یک resource در OCR ثبت میکند، پس به صورت خودکار در هنگام بالا آمدن شروع به mount کردن block device ها در mount point ها میکند، و در هنگام پایین آمدن کلاستر، clusterware با رعایت ترتیب وابستگی ها شروع به dismount کردن block device ها میکند. پس این گونه هست که از ACFS میتوان به عنوان shared oracle db home استفاده کرد. لازم به ذکر است، در حالت نصب standalone, چنین چیزی بی معنی است چون OCR وجود ندارد و حتما block device ها باید به صورت دستی mount گردد.
[root@rac1 ~]$ /u01/app/11.2.0.4/grid/bin/crsctl stat res ora.registry.acfs NAME=ora.registry.acfs TYPE=ora.registry.acfs.type TARGET=ONLINE , ONLINE , ONLINE STATE=ONLINE on rac1, ONLINE on rac2, ONLINE on rac3
اگر مسیر تمام mount point ها و block device ها را ندانیم مشکلی نیست با دستور زیر با کاریر root میتوانی تمام آنها را mount کنیم:
[root@rac1 ~]$ /bin/umount -t acfs -a [root@rac1 ~]$ /sbin/mount.acfs -o all
دوستان عزیز امیدوارم مطلب کاربردی بوده باشد.
شاد و پیروز باشید.