Tablespace SYSMGMTDATA cheia no Grid Infrastructure Management Repository (MGMTDB)

Tablespace SYSMGMTDATA cheia no Grid Infrastructure Management Repository (MGMTDB)

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