MGMTDB to nowa instancja bazy danych, która służy do przechowywania danych Cluster Health Monitor (CHM).
W Oracle 11g ta informacja była przechowywana w bazie danych Berkley (pliki .bdb), w $GRID_HOME/crf/db/hostname, ale począwszy od bazy danych Oracle 12c jest skonfigurowana jako Oracle Single Instance.
W Oracle 12.1.0.1 Grid Infrastructure Management Repository (GIMR) jest opcjonalne.
W Oracle 12.1.0.2 jest to obowiązkowe i nie można go wyłączyć, z wyjątkiem Exadata.
# ps -ef |grep mdb_pmon oracle 4961 4124 0 11:05 pts/2 00:00:00 grep --color=auto mdb_pmon grid 40414 1 0 2018 ? 01:04:31 mdb_pmon_-MGMTDB
Poniżej ostrzeżenie o alercie otrzymanym od kontroli siatki obszaru tabel SYSMGMTDATA z 91% zajętości:
Zmienne zawarte w pułapce oraEMNGAlert.
oraEMNGEventTargetName =-MGMTDB_exadb015.PDB_CLUSTER
oraEMNGEventMessage =Obszar tabel SYSMGMTDATA ma 91.314453125 zajęty .
oraEMNGEventSeverityCode =KRYTYCZNY
oraEMNGEventReportedTime =31 maja 2020 r. 19:31:27 BRT
oraEMNGEventCategories =Pojemność
oraEMNGEventType =Alert danych
oraEMNGEventTargetType =Wtyczkowa baza danych
oraEMNGEventHostName =exadb015
oraEMNGEventTargetVersion =12.1.0.2.0
oraEMNGEventUserDefinedTgtProp =system operacyjny=Linux, platforma=x86_64,
oraEMNGEventRuleName =przestrzeń tabel, przestrzeń tabel
Sprawdź aktualne repozytorium CHM:
# oclumon manage -get reppath CRS-9001-internal error CRS-9010-Error manage: mandatory data not supplied
Błąd występuje, ponieważ zasób jest w trybie offline:
# crsctl stat res ora.crf -init NAME=ora.crf TYPE=ora.crf.type TARGET=ONLINE STATE=OFFLINE
Włącz zasób ora.crf:
# cd /u01/app/12.1.0.2/grid/bin/ # ./crsctl modify res ora.crf -attr ENABLED=1 -init
Uruchom ręcznie zasób ora.crf za pomocą poniższego polecenia:
# crsctl start res ora.crf -init CRS-2672: Attempting to start 'ora.crf' on 'exadb015' CRS-2676: Start of 'ora.crf' on 'exadb015' succeeded
Zasób jest online:
# crsctl stat res ora.crf -init NAME=ora.crf TYPE=ora.crf.type TARGET=ONLINE STATE=ONLINE on exadb015 # crsctl stat res ora.mgmtdb -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.mgmtdb 1 ONLINE ONLINE exadb015 Open,STABLE --------------------------------------------------------------------------------
Wyświetla stan bieżącej konfiguracji:
# srvctl config mgmtdb Database unique name: _mgmtdb Database name: Oracle home: <CRS home> Oracle user: grid Spfile: +DG_OCRVOTING/_MGMTDB/PARAMETERFILE/spfile.268.886174866 Password file: Domain: Start options: open Stop options: immediate Database role: PRIMARY Management policy: AUTOMATIC Type: Management PDB name: pdb_cluster PDB service: pdb_cluster Cluster name: pdb-cluster Database instance: -MGMTDB
Sprawdź aktualne repozytorium CHM:
# oclumon manage -get reppath CHM Repository Path = +DG_OCRVOTING/_MGMTDB/FD9B43BF6A646F8CE043B6A9E80A2815/DATAFILE/SYSMGMTDATA.269.886174975 # asmcmd ls -ls +DG_OCRVOTING/_MGMTDB/FD9B43BF6A646F8CE043B6A9E80A2815/DATAFILE/SYSMGMTDATA.269.886174975 Type Redund Striped Time Sys Block_Size Blocks Bytes Space Name DATAFILE HIGH COARSE JUN 01 12:00:00 Y 8192 262145 2147491840 6467616768 SYSMGMTDATA.269.886174975
Zmień rozmiar pliku danych. Zwiększyłem rozmiar z 2048M do 3072M:
$ export ORACLE_SID=-MGMTDB $ sqlplus / as sysdba SQL*Plus: Release 12.1.0.2.0 Production on Mon Jun 1 13:32:46 2020 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, Automatic Storage Management and Advanced Analytics options sql> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 PDB_CLUSTER READ WRITE NO sql> alter session set container=PDB_CLUSTER; Session altered. sql> select TABLESPACE_NAME,FILE_NAME,AUTOEXTENSIBLE,BYTES/1024/1024 MB, MAXBLOCKS/1024/1024 from dba_data_files where TABLESPACE_NAME='SYSMGMTDATA'; TABLESPACE_NAME FILE_NAME AUT MB MAXBLOCKS/1024/1024 --------------- --------- ---- ------ -------------------- SYSMGMTDATA +DG_OCRVOTING/_MGMTDB/FD9B43BF6A646F8CE043B6A9E80A2815/DATAFILE/sysmgmtdata.269.886174975 NO 2048 0 sql> alter database datafile '+DG_OCRVOTING/_MGMTDB/FD9B43BF6A646F8CE043B6A9E80A2815/DATAFILE/sysmgmtdata.269.886174975' resize 3072m; Database altered.
Inne sposoby rozwiązania problemu miejsca w przestrzeni tabel SYSMGMTDATA w bazie danych GIMR:
– Przenieś repozytorium GIMR do innej udostępnionej pamięci masowej (grupa dysków, CFS lub NFS itp.) zgodnie z dokumentem ID 1589394.1.
– Przytnij duże tabele należące do CHM zgodnie z dokumentem ID 2177879.1.
Zwykle dwie poniższe tabele można skrócić:
sql> truncate table CHM.CHMOS_PROCESS_INT_TBL; sql> truncate table CHM.CHMOS_DEVICE_INT_TBL;
Pliki śledzenia instancji MGMTDB można znaleźć domyślnie w:
$DIAG_HOME/_mgmtdb/-MGMTDB/trace