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.