MGMTDB é uma nova instância de banco de dados usada para armazenar dados do Cluster Health Monitor (CHM).
No Oracle 11g essas informações eram armazenadas em um banco Berkeley DB (arquivos .bdb), em $GRID_HOME/crf/db/hostname, mas a partir do banco de dados Oracle 12c ele é configurado como um Oracle Single Instance.
No Oracle 12.1.0.1 o Grid Infrastructure Management Repository (GIMR) é opcional.
No Oracle 12.1.0.2 é obrigatório e não pode ser desativado com exceção do 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
Abaixo aviso de alerta recebido do Grid Control da tablespace SYSMGMTDATA com 91% de ocupação:
The variables included in the oraEMNGAlert trap.
oraEMNGEventTargetName = -MGMTDB_exadb015.PDB_CLUSTER
oraEMNGEventMessage = The SYSMGMTDATA tablespace has 91.314453125 occupied.
oraEMNGEventSeverityCode = CRITICAL
oraEMNGEventReportedTime = May 31, 2020 7:31:27 PM BRT
oraEMNGEventCategories = Capacity
oraEMNGEventType = Metric Alert
oraEMNGEventTargetType = Pluggable Database
oraEMNGEventHostName = exadb015
oraEMNGEventTargetVersion = 12.1.0.2.0
oraEMNGEventUserDefinedTgtProp = Operating System=Linux, Platform=x86_64,
oraEMNGEventRuleName = Tablespace, Tablespace
Verifique o repositório CHM atual:
# oclumon manage -get reppath CRS-9001-Erro Interno CRS-9010-Erro manage: dados obrigatórios não fornecidos
O erro ocorre porque o recurso está offline:
# crsctl stat res ora.crf -init NAME=ora.crf TYPE=ora.crf.type TARGET=ONLINE STATE=OFFLINE
Habilite manualmente o recurso ora.crf:
# cd /u01/app/12.1.0.2/grid/bin/ # ./crsctl modify res ora.crf -attr ENABLED=1 -init
Inicie o recurso ora.crf com o comando abaixo:
# crsctl start res ora.crf -init CRS-2672: Attempting to start 'ora.crf' on 'exadb015' CRS-2676: Start of 'ora.crf' on 'exadb015' succeeded
Recurso 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 --------------------------------------------------------------------------------
Exibe o estado da configuração atual:
# 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
Verifique o repositório 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
Redimensione o datafile. Aumentei o tamanho de 2048M para 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.
Outras maneiras de resolver o problema de espaço na tablespace SYSMGMTDATA no banco de dados GIMR:
– Mova o repositório GIMR para um outro Shared Storage (Diskgroup, CFS ou NFS etc) conforme Doc ID 1589394.1.
– Trunque as tabelas de propriedade do CHM conforme Doc ID 2177879.1.
Normalmente as duas tabelas abaixo podem ser truncadas:
sql> truncate table CHM.CHMOS_PROCESS_INT_TBL; sql> truncate table CHM.CHMOS_DEVICE_INT_TBL;
Os arquivos de trace da instância MGMTDB podem ser encontrados por padrão em:
$DIAG_HOME/_mgmtdb/-MGMTDB/trace