Gerenciamento de Tablespaces e Segmentos no Oracle: Configuração do Enterprise Manager e Análise de Encadeamento de Linhas

Configuração e Operação do Oracle Enterprise Manager (EM)

O Oracle Enterprise Manager (EM) Database Control é uma ferramenta fundamental para a administração gráfica de bancos de dados Oracle. Após a instalação do software, é necessário realizar a configuração inicial do repositório e do console para monitoramento e gerenciamento.

Recriação do Repositório do EM

Para resolver problemas de configuração ou iniciar um novo ambiente, é comum remover e recriar o repositório do EM utilizando o utilitário de linha de comando emca.

Removendo a configuração existente e o repositório:

[oracle@srv-oracle-01 ~]$ emca -deconfig dbcontrol db -repos drop

STARTED EMCA at Oct 24, 2023 10:15:00 AM
EM Configuration Assistant, Version 11.2.0.4.0 Production
Copyright (c) 2003, 2011, Oracle.  All rights reserved.

Enter the following information:
Database SID: prod_db
Listener port number: 1522
Password for SYS user: 
Password for SYSMAN user: 

----------------------------------------------------------------------
WARNING : While repository is dropped the database will be put in quiesce mode.
----------------------------------------------------------------------
Do you wish to continue? [yes(Y)/no(N)]: y
...
INFO: Repository successfully dropped
Enterprise Manager configuration completed successfully

Criando o novo repositório e iniciando o console automaticamente:

[oracle@srv-oracle-01 ~]$ emca -config dbcontrol db -repos create

STARTED EMCA at Oct 24, 2023 10:20:00 AM
EM Configuration Assistant, Version 11.2.0.4.0 Production
Copyright (c) 2003, 2011, Oracle.  All rights reserved.

Enter the following information:
Database SID: prod_db
Listener port number: 1522
Listener ORACLE_HOME [ /u01/app/oracle/product/11.2.0/db_1 ]: 
Password for SYS user:  
Password for DBSNMP user:  
Password for SYSMAN user:  
...
Do you wish to continue? [yes(Y)/no(N)]: y
...
INFO: Database Control started successfully
INFO: >>>>>>>>>>> The Database Control URL is https://srv-oracle-01:5500/em <<<<<<<<<<<
...
WARNING: Management Repository has been placed in secure mode wherein Enterprise Manager data will be encrypted. The encryption key has been placed in the file: /u01/app/oracle/product/11.2.0/db_1/srv-oracle-01_prod_db/sysman/config/emkey.ora. Ensure this file is backed up.
***********************************************************
Enterprise Manager configuration completed successfully

Controle de Status e Portas

O utilitário emctl é utilizado para gerenciar o ciclo de vida do Database Control.

Verificando o status do serviço:

[oracle@srv-oracle-01 ~]$ emctl status dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.2.0.4.0 
Copyright (c) 1996, 2013 Oracle Corporation.  All rights reserved.
https://srv-oracle-01:5500/em/console/aboutApplication
Oracle Enterprise Manager 11g is running. 
------------------------------------------------------------------
Logs are generated in directory /u01/app/oracle/product/11.2.0/db_1/srv-oracle-01_prod_db/sysman/log

Iniciando e parando o console:

[oracle@srv-oracle-01 ~]$ emctl start dbconsole
[oracle@srv-oracle-01 ~]$ emctl stop dbconsole

Para identificar as portas utilizadas, consulte o arquivo portlist.ini no diretório de instalação:

[oracle@srv-oracle-01 install]$ cat portlist.ini
Enterprise Manager Console HTTP Port (prod_db) = 5500
Enterprise Manager Agent Port (prod_db) = 3940

Administração de Tablespaces e Segmentos

Através do EM ou via linha de comando (SQL*Plus), é possível realizar operações estruturais no banco de dados, gerenciando o armazenamento físico.

Operações Básicas com Tablespaces

  • Criação de Tablespace: Tablespaces permanentes são o padrão para armazenamento de dados. A interface do EM permite gerar o script DDL correspondente de forma visual.
  • Adição de Datafiles: É possível expandir a capacidade de uma tablespace adicionando novos arquivos de dados ao segmento.
  • Tablespaces TEMP e UNDO: Para o tablespace temporário (TEMP), recomenda-se desativar a extensão automática e dimensioná-lo adequadamente (ex: 20GB). Para o tablespace de undo, a extensão automática deve ser mantida ativa para evitar falhas de transações longas.

Configuração para Blocos de 32K

Para criar uma tablespace com tamanho de bloco de 32KB, é necessário alocar memória no buffer cache específico para esse tamanho, pois o padrão do banco geralmente é 8KB:

SQL> SHOW PARAMETER db_32k_cache_size

NAME                     TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_32k_cache_size        big integer 0

SQL> ALTER SYSTEM SET db_32k_cache_size = 256M SCOPE=BOTH;

System altered.

Consultas de Segmentos e Extents

Após criar uma tabela em uma tablespace específica, podemos investigar sua estrutura física através do dicionário de dados.

Verificando os extents alocados para um segmento:

SELECT owner, segment_name, extent_id, bytes, blocks
FROM dba_extents 
WHERE segment_name = 'REGISTROS_CLIENTES';

Consultando os detalhes do segmento e listando tipos existentes:

SELECT segment_name, segment_type, tablespace_name, bytes
FROM dba_segments 
WHERE segment_name = 'REGISTROS_CLIENTES';

SELECT DISTINCT segment_type FROM dba_segments;

Tablespaces Padrão e Usuários

Se uma tablespace não for explicitamente definida na criação de um objeto, o Oracle utilizará a tablespace padrão do usuário ou do banco de dados.

Consultando as propriedades padrão do banco de dados:

SELECT property_name, property_value 
FROM database_properties 
WHERE property_name LIKE '%DEFAULT%';

Verificando a tablespace padrão atribuída a um usuário específico:

SELECT username, default_tablespace, temporary_tablespace 
FROM dba_users 
WHERE username = 'APP_USER';

Dicionário de Dados e Gerenciamento de Espaço

As visões fet$ (Free Extent Table) e uet$ (Used Extent Table) são usadas internamente pelo Oracle para gerenciar espaço em tablespaces gerenciadas por dicionário (Dictionary Managed Tablespaces), um modelo legado que não é mais recomendado para novas criações.

SELECT * FROM fet$;
SELECT * FROM uet$;

Em tablespaces gerenciadas localmente (Local Managed), o controel de espaço livre utiliza bitmap, e parâmetros como PCT_FREE, PCT_USED e FREELISTS perdem sua relevância para o gerenciamento de blocos, sendo aplicáveis apenas para controle de concorrência em certos cenários de segmentação manual.

Análise de Encadeamento (Row Chaining) e Migração de Linhas (Row Migration)

O encadeamento de linhas ocorre quando uma linha é muito grande para caber em um único bloco de dados, sendo armazenada em uma cadeia de blocos. A migração de linhas ocorre quando uma linha, originalmente pequena, é atualizada e não cabe mais em seu bloco original, sendo movida para um novo bloco com um "ponteiro" deixado no local original.

Para monitorar essas ocorrências e o tamanho médio das linhas, consulte a visão dba_tables:

SELECT table_name, chain_cnt, avg_row_len, blocks, num_rows
FROM dba_tables 
WHERE table_name = 'DADOS_TRANSACIONAIS';

Interpretação dos resultados:

  • chain_cnt: Indica o número total de ocorrências de encadeamento e migração de linhas na tabela.
  • avg_row_len: Representa o comprimento médio da linha em bytes. Se este valor for significativamente menor que o tamanho do bloco da tablespace, a probabilidade de encadeamento por tamanho excessivo é baixa. Valores muito próximos ou superiores ao tamanho do bloco indicam alto risco de row chaining.

Tags: oracle-database Enterprise-Manager Tablespaces Row-Chaining database-administration

Publicado em 7-8 22:18