GIMR یا همان Grid Infrastructure Management Repository در اوراکل 12c ارائه شد و هدف اوراکل از ارائه GIMR، ثبت وقایع و رخدادهای مربوط به کلاستر می باشد به طور دقیق تر، GIMR قرار است Cluster Health Monitor را در دیتابیسش ثبت کند. این دیتابیس حدودا 20 جدول دارد که لیست جداول آن را می توان به روش زیر مشاهده کرد:
[grid@RAC1 ~]$ export ORACLE_SID=-MGMTDB [grid@RAC1 ~]$ sqlplus "/as sysdba" SQL> alter session set container=GIMR_DSCREP_10; Session altered. SQL> select table_name from dba_tables where owner='CHM' order by table_name; TABLE_NAME -------------------------------------------------------------------------------- CATCHMUTILPLS_PARTITION_TMP_TBL CHMOS_ACTIVE_CONFIG_INT_TBL CHMOS_ADVM_INT_TBL … 16 rows selected.
به طور نمونه، با استفاده از جدول CHMOS_SYSTEM_SAMPLE_INT_TBL می توان اطلاعاتی را در مورد DISK IO بدست آورد:
select to_char(begintime, 'YYYY/MM/DD HH24:mi:ss', 'NLS_CALENDAR=persian') begintime, round(DISK_BYTESREADPERSEC / 1024 / 1024) as MB_READ_SEC, round(DISK_BYTESWRITTENPERSEC / 1024 / 1024) as MB_WRITE_SEC, round(DISK_NUMIOSPERSEC) as IO_PER_SEC from CHM.CHMOS_SYSTEM_SAMPLE_INT_TBL order by IO_PER_SEC ; BEGINTIME MB_READ_SEC MB_WRITE_SEC IO_PER_SEC ------------------- ----------- ------------ ---------- 1400/11/03 09:53:20 14 147 856 1400/11/01 06:58:45 815 0 858 1400/11/01 06:39:55 314 2 858 1400/11/04 09:33:00 23 3 858
تا قبل از اوراکل 12c، این وقایع در فایلهایی با پسوند bdb. ذخیره می شدند:
[grid@HostName ~]$ cd $ORACLE_HOME/crf/db/HostName [grid@HostName HostName]$ ll *.bdb -rw-r----- 1 root root 8192 Mar 2 10:29 crfalert.bdb -rw-r----- 1 root root 131072 Mar 2 10:29 crfclust.bdb -rw-r----- 1 root root 8192 Mar 2 10:29 crfconn.bdb -rw-r----- 1 root root 8192 Mar 2 10:29 crfcpu.bdb -rw-r----- 1 root root 8192 Mar 2 10:29 crfhosts.bdb -rw-r----- 1 root root 8192 Mar 2 10:29 crfloclts.bdb -rw-r----- 1 root root 8192 Mar 2 10:29 crfts.bdb
در نسخه 12.1.0.1 این امکان به وجود آمد تا در زمان نصب کلاستر، GIMR Database را انتخاب کرد(انتخاب این گزینه اختیاری بود.) اما در نسخه 12.1.0.2، استفاده از این قابلیت، اجباری شد و در زمان نصب GI باید دیسک گروهی که قرار است فایلهای دیتابیس GIMR در ان ایجاد شوند را مشخص نمود و این اجبار در اوراکل نسخه 18cR3 هم باقی ماند.
توجه: در همه نسخه های ذکر شده، بعد از نصب کلاستر می توان GIMR را حذف نمود و یا نصب مجدد کرد.
18cR5 نسخه ای بود که اوراکل مجددا تصمیم گرفت همانند نسخه 12.1.0.1، نصب یا عدم نصب این قابلیت را به عهده DBA بگذارد البته این امکان با نصب GI 18cR5 به صورت Gold Image فراهم خواهد شد:
در ورژن 19c هم تغییر خاصی در این زمینه ایجاد نشد و امکان صرف نظر کردن از این قابلیت وجود دارد.
در نسخه 21c هم الزامی برای ایجاد GIMR Database وجود ندارد و حتی روال پیش فرض مانع از نصب دیتابیس GIMR خواهد شد چرا که گزینه پیش فرض در این زمینه، Do not use a GIMR database است.
اما اگر اصرار به استفاده از دیتابیس GIMR در این نسخه از اوراکل را دارید، باید برای ایجاد این دیتابیس از نرم افزار اوراکل(RAC Database Home) استفاده کنید و امکان ایجاد GIMR database از طریق Grid Infrastructure Home در نسخه 21c وجود ندارد. روال ایجاد دیتابیس GIMR را در ادامه مشاهده می کنید.
برای ایجاد GIMR database باید در مرحله GIMR Option گزینه Use a Local GIMR database انتخاب شود:
در قدم بعدی می توان دیسک گروه مجزایی را برای دیتابیس GIMR در نظر گرفت البته اجباری در این زمینه وجود ندارد ولی توصیه اوراکل در مجزا کردن دیسک گروه دیتابیس GIMR است:
همانطور که قبلا هم توضیح داده شد، برخلاف نسخه های ماقبل 21c، با پایان یافتن نصب GI، دیتابیس GIMR ایجاد نمی شود و مطابق با توضیحات در کادر، برای ایجاد دیتابیس اوراکل باید به سراغ RAC Database Home رفت.
بنابرین در صورت استفاده از Grid Infrastructure Home برای ایجاد GIMR database، با خطای زیر مواجه خواهیم شد:
[grid@RAC2 ~]$ /grid21c/home/bin/mgmtca createGIMRContainer -storageDiskLocation +MGMT MGTCA-1236 : Command failed, this is not a configured Database Home.
پس به ناچار باید Oracle Database Home را نصب کنیم که در ادامه نکاتی را در این زمینه می بینید.
نصب Oracle Database Home توسط کاربر grid
در اتفاقی نادر، باید Oracle Database Home را توسط کاربر grid نصب کنیم(برای ایجاد دیتابیسGIMR)! برای این کار، دایرکتوری زیر را در تمامی نودها ایجاد می کنیم:
[root@RAC2 ~]# mkdir /grid21c/GIMR [root@RAC2 ~]# chown -R grid.oinstall /grid21c/GIMR/
بعد از ایجاد دایرکتوری، فایل zip مربوط به اوراکل 21c را صرفا در یکی از نودها unzip می کنیم:
[grid@RAC2 ~]$ unzip /source/LINUX.X64_213000_db_home.zip -d /grid21c/GIMR
و در نهایت برای نصب نرم افزار اوراکل، runInstaller را اجرا می کنیم:
[grid@RAC2 ~]$ cd /grid21c/GIMR/ [grid@RAC2 GIMR]$ ./runInstaller
بعد از نصب نرم افزار اوراکل از طریق یوزر grid باید دستور زیر را از طریق Oracle Database Home اجرا کنیم:
[grid@RAC2 ~]$ /grid21c/GIMR/bin/mgmtca createGIMRContainer -storageDiskLocation +MGMT
از مسیر زیر می توان لاگ مربوط به این دستور را مشاهده کرد:
[root@RAC2 ~]# tail -f -n 1000 /grid21c/base/cfgtoollogs/dbca/_mgmtdb/_mgmtdb0.log [ 2022-01-26 10:48:39.602 IRST ] Prepare for db operation DBCA_PROGRESS : 10% [ 2022-01-26 10:48:48.036 IRST ] Registering database with Oracle Grid Infrastructure DBCA_PROGRESS : 14% [ 2022-01-26 10:48:49.123 IRST ] Copying database files DBCA_PROGRESS : 43% [ 2022-01-26 10:49:56.794 IRST ] Creating and starting Oracle instance DBCA_PROGRESS : 62% [ 2022-01-26 10:55:36.452 IRST ] Completing Database Creation DBCA_PROGRESS : 71% [ 2022-01-26 10:58:40.486 IRST ] Executing Post Configuration Actions DBCA_PROGRESS : 100% [ 2022-01-26 10:58:40.489 IRST ] Database creation complete. For details check the logfiles at: /grid21c/base/cfgtoollogs/dbca/_mgmtdb. Database Information: Global Database Name:_mgmtdb System Identifier(SID):-MGMTDB
با اجرای دستور فوق، دیتابیس GIMR ایجاد خواهد شد:
[grid@RAC2 ~]$ srvctl config mgmtdb Database unique name: _mgmtdb Database name: Oracle home: /grid21c/GIMR Oracle user: grid Spfile: +MGMT/_MGMTDB/PARAMETERFILE/spfile.284.1094986549 Password file: +MGMT/_MGMTDB/PASSWORD/pwd_mgmtdb.271.1094986131 Start options: open Stop options: immediate Database role: PRIMARY Management policy: AUTOMATIC Type: Management PDB name: GIMR_DSCREP_10 PDB service: GIMR_DSCREP_10 Cluster name: RAC-cluster Database instance: -MGMTDB
توجه!! از طریق ORACLE HOME مربوط به GIMR Database نمی توان دیتابیس دیگری را ایجاد کرد.
[grid@RAC2 ~]$ /grid21c/GIMR/bin/dbca [DBT-10010] Database cannot be created in the current oracle home (/grid21c/GIMR).
پ.ن: دیتابیس GIMR، یک single instance database استو صرفا بر روی یکی از نودهای کلاستر اجرا خواهد شد و اگر نودی که MGMTDB در آن در حال اجرا است، down شود، به صورت خودکار MGMTDB هم به نود دیگر حاضر در کلاستر failover خواهد شد.
[grid@RAC1 ~]$ srvctl status mgmtdb Database is enabled Instance -MGMTDB is running on node rac2