Oracle 12c New Features – Grid Infrastructure Management Repository (GIMR – MGMTDB Database)

MGMTDB database, oracle 12c ile birlikte tanışmış olduğumuz databaselerden bir tanesi, oracle 12c RAC kurulumu ile bilirkte geliyor. Oracle 12.1.0.1 versiyonunda opsiyonel olan ve aşağıdaki ekranda YES seçilmesi sonrasında otomatik olan kurulunan MGMTDB database oracle 12.1.0.2 versiyonu ile birlikte zorunlu hale gelmiş olup, 12c RAC kurulumunda artık bu ekran gelmemektedir.

gmt

Management database, CHM (Cluster Health Monitor) ve diğer verileri, istatistiki verileri depolamak için merkezi ve veritabanı olarak tanımlanabilir.

Bu yazıda anlatacağım tüm testlerimi Oracle 12.1.0.2 versiyonu ile yaptım. Dolayısıyla bir karşılaştırma veya kıyaslama yapacaklar için bilgi olarak belirtmek istedim.

Kurulum sonrasındaki durum ;

[oragrid@Redhat702 ~]$ ps -ef|grep smon|grep -v grep
oragrid 1404 1 0 Jul21 ? 00:00:03 asm_smon_+ASM2
oragrid 2359 1 0 Jul21 ? 00:00:04 mdb_smon_-MGMTDB
oracle 2522 1 0 Jul21 ? 00:00:05 ora_smon_raccon12
root 9465 1 1 Jul15 ? 01:53:27 /u01/gi/oragrid/grid/12.1.0.2/bin/osysmond.bin
[oragrid@Redhat702 ~]$

Management instance sadece bir node üzerinde aktif olarak çalışmaktadır. Referance kısmında belirtmiş olduğum 1568402.1 id’ li dökümanda magament database ile ilgili temel bilgilere ulaşabilirsiniz. Ben özetle kısa bir bilgi vermeye çalışacağım merak edenler metalink üzerinden ilgili dökümana erişebilirler.

Mgmtdb database oracle 12c ile birlikte gelen ve cluster tarafında yönetilen bir single instance olduğunu söyleyebiliriz. Herhangi bir şekilde backup alınmasına ve tune edilmesine gerek yoktur. Cluster tarafından manage edildiği için herhangi bir şekilde üzerinde çalışan node’ un down olması durumunda otomatik olarak diğer node’ dan start edilir.

Management database shared storage üzerindeki OCR/Voting diskleri kullanır. Cluster resource’ larına baktığımız da aşağıdaki resourcelar GIMR’ ye ait olan resourcelardır.

Operating system üzerindeki processlerini aşağıdaki şekilde baktığınız da görebilirsiniz ;

[oracle@Redhat701 ~]$ ps -ef| grep MGMTLSNR
oragrid 15684 1 0 11:15 ? 00:00:00 /u01/gi/oragrid/grid/12.1.0.2/bin/tnslsnr MGMTLSNR -no_crs_notify -inherit

[oracle@Redhat701 ~]$ ps -ef| grep pmon_-MGMTDB | grep -v grep
oragrid 18768 1 0 11:19 ? 00:00:01 mdb_pmon_-MGMTDB

GIMR database’ ini start etmek için;

srvctl start mgmtdb

stop etmek için ;

srvctl stop mgmtdb

statusunu check etmek için ;

srvctl status mgmtdb
Database is enabled
Instance -MGMTDB is running on node Redhat701

Database’ inin configurasyonlarını görmek için ;

Mgmmntdb’ nin hangi sunucu üzerinden çalıştığını sorgulamak için ;

[oragrid@Redhat701 ~]$ oclumon manage -get MASTER
Master = Redhat701

[oragrid@Redhat701 ~]$ oclumon manage -get alllogger -details
Logger = Redhat701
Nodes = Redhat701,Redhat702

Stop – start sonrasında cluster, database’in hangi node’ dan açacağına karar verecektir. Burdaki bir diğer önemli nokta database’ in ismi “-“ ile başladığından dolayı trace file’ leri açarken dosya isimlerinin başına “./” eklenmesidir. Deneyelim;

[oragrid@Redhat701 trace]$ pwd
/u01/app/oragrid/diag/rdbms/_mgmtdb/-MGMTDB/trace
[oragrid@Redhat701 trace]$ ls -lrt
-rw-r—– 1 oragrid oinstall 89 Jul 6 10:45 -MGMTDB_vktm_420.trm
-rw-r—– 1 oragrid oinstall 1223 Jul 6 10:45 -MGMTDB_vktm_420.trc
-rw-r—– 1 oragrid oinstall 71 Jul 6 10:45 -MGMTDB_vkrm_446.trm
-rw-r—– 1 oragrid oinstall 1093 Jul 6 10:45 -MGMTDB_vkrm_446.trc
-rw-r—– 1 oragrid oinstall 216 Jul 6 10:45 -MGMTDB_ora_389.trm
-rw-r—– 1 oragrid oinstall 5002 Jul 6 10:45 -MGMTDB_ora_389.trc
-rw-r—– 1 oragrid oinstall 71 Jul 6 10:45 -MGMTDB_lgwr_458.trm
-rw-r—– 1 oragrid oinstall 972 Jul 6 10:45 -MGMTDB_lgwr_458.trc
-rw-r—– 1 oragrid oinstall 118 Jul 6 10:45 -MGMTDB_ckpt_462.trm
-rw-r—– 1 oragrid oinstall 1150 Jul 6 10:45 -MGMTDB_ckpt_462.trc

Herhangi birini açmaya çalışalım ;

[oragrid@Redhat701 trace]$ more -MGMTDB_lg00_961.trc
more: unknown option “-M”
usage: more [-dflpcsu] [+linenum | +/pattern] name1 name2 …

hatasını alırız. Hata almamak için ;

[oragrid@Redhat701 trace]$ more ./-MGMTDB_lg00_961.trc
Trace file /u01/app/oragrid/diag/rdbms/_mgmtdb/-MGMTDB/trace/-MGMTDB_lg00_961.trc
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 – 64bit Production
With the Partitioning, Automatic Storage Management and Advanced Analytics options
ORACLE_HOME = /u01/gi/oragrid/grid/12.1.0.2

Sonuçta repository de olsa bir database’ den bahsettiğimiz için bu database’ inde bir takım file’ leri olacaktır. Bunlarda default olarak OCR/Voting disklerin bulunduğu lokasyon ile aynı lokasyonda tutulmaktadır. Kontrol etmek adına öncelikle ocr file’ lerimizin nerde olduğuna bakalım ;

Ocr file’ lerimzi +DATA01_0000 altındaymış şimdi mgmtdbdb’ nin file’ leri nerde ona bakalım;

[oragrid@Redhat701 ~]$ oclumon manage -get reppath

CHM Repository Path = +DATA01_0000/_MGMTDB/FD9B43BF6A646F8CE043B6A9E80A2815/DATAFILE/sysmgmtdata.269.884343075

Aynı diskgroup içerisinde olduğunu burdan da görebilirsiniz.

Cluster Health Monitor ile ilgilide kısa bir bilgi verelim, default olarak Grid infrastructure içerisinde store edilen ve cluster içerisindeki node başına 1 gb’ lık bir alana gereksinim duymaktadır. Default olarak gelen bu değerler (path ve lokasyon) sonrasında oclumon tool’ u yardımıyla update edilebilmektedir. CHM operating system tarafında da bir takım loglar topladığı için burada toplanan loglanan retentitonınıda ihtiyaca göre set etmek gerekmektedir. Buradaki size kullananılan node başına ve saklanması planlanan saat başına farklılık gösterecektir. Bu size’ ın nasıl hesaplanması gerektiği ile ilgili metalinkde 1921105.1 id’ li dökümana bakabilirsiniz. Ben komutların klasik olarak nasıl kullanılabileceğini göstermek adına sadece birkaç örnek paylaşıyor olacağım.

Şu anki repository’ nin retentition’ ını görmek için ;

[oragrid@Redhat701 ~]$ oclumon manage -get repsize

CHM Repository Size = 136320 seconds

Retentition’ ını deiştirmek için (288000 olarak değiştiriyorum – 80 saat)

[oragrid@Redhat701 ~]$ oclumon manage -repos checkretentiontime 288000
The Cluster Health Monitor repository is too small for the desired retention. Please first resize the repository to 4329 MB

Değiştirmek istediğimde bu değişikliği yapmadan önce respository’ in size’ ını değiştirmek (artırmak) gerektiğini belirtiyor. Yapalım ;

[oragrid@Redhat701 ~]$ oclumon manage -repos changerepossize 4329
The Cluster Health Monitor repository was successfully resized.The new retention is 288060 seconds.

[oragrid@Redhat701 ~]$ oclumon manage -repos checkretentiontime 288000
The Cluster Health Monitor repository can support the desired retention for 2 hosts
[oragrid@Redhat701 ~]$

Repository’ in size’ ınıda 4329’ a çektiğimiz de retentitionında bizim belirttiğimiz değere denk geldiğini gördük.

Cluster Health Monitor servisi iki kısımdan oluşur;

• System Monitor Service, her bir node üzerinde çalışan bir servistir. Bu servis operating system metriclerini toplayarak cluster logger servisine gönderir.

[oragrid@Redhat701 ~]$ ps -ef | grep osysmond
root 9528 1 0 Jul15 ? 02:19:20 /u01/gi/oragrid/grid/12.1.0.2/bin/osysmond.bin

[oragrid@Redhat701 ~]$ ps -ef | grep olog
root 17379 1 0 Jul21 ? 00:48:45 /u01/gi/oragrid/grid/12.1.0.2/bin/ologgerd -M -d /u01/gi/oragrid/grid/12.1.0.2/crf/db/Redhat701

• Cluster logger service, sadece tek bir node üzerinde çalışan bir servistir. Cluster logger servisi eğer master olarak çalıştığı node üzerinde down olması durumunda cluster servisi tarafından seçilen bir diğer node üzerinden çalışmaya devam eder. Cluster logger servisi, CHM içerisindeki operating system metriclerini yönetir.

[oragrid@Redhat702 ~]$ ps -ef|grep osysmond
root 9465 1 1 Jul15 ? 02:53:08 /u01/gi/oragrid/grid/12.1.0.2/bin/osysmond.bin

[oragrid@Redhat702 ~]$ ps -ef|grep olog
oragrid 7810 7725 0 13:22 pts/0 00:00:00 grep olog

Yukarıda da belirttiğim üzere Oclumon tool’ u ile CHM’ i yönetebiliriz.

Oclumon tool’ u ile ilgili sık kullanılan komutlardan biriside oclumon dumpnodeview komutu diye düşünüyorum. Bo komutun kullanımı ve neyi gösterdiği ile ilgilide çok ufak bir bilgi vermek istiyorum. Node’ lar üzerindeki günlük bilgileri, logları monitor etmek için bu komutu kullanabiliriz. CHM ile node ‘ lar üzerinden her saniye de bir belirlenen metricler doğrultusunda log toplanmaktadır. Komutun kullanımı ile ilgili;

Syntax ;
oclumon dumpnodeview [[-allnodes] | [-n node1 node2] [-last “duration”] |
[-s “time_stamp” -e “time_stamp”] [-v] [-warning]] [-h]

Tüm node’ lardaki logları anlık olarak izlemek istersek (aşağıdaki komut ile tüm node ‘lar daki loglar 5 sn aralıklarla sırası ile ekrana yansıyacaktır) ;

[oragrid@Redhat702 ~]$ oclumon dumpnodeview -allnodes

Sadece tek bir node’ daki logları gözlemlemek istersek ;

Herhangi bir node’ da veya tüm node’ larda belirli bir zaman aralığını görmek istersek ;

Reference ;
FAQ: 12c Grid Infrastructure Management Repository (GIMR) (Doc ID 1568402.1)
_mgmtdb Service Registered with All Local Listeners in a Grid Infrastructure Environment (Doc ID 1945558.1)
How to Move/Recreate GI Management Repository to Different Shared Storage (Diskgroup, CFS or NFS etc) (Doc ID 1589394.1)
Managing the Cluster Health Monitor Repository (Doc ID 1921105.1)

Be Sociable, Share!

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


− bir = 2