oracle

Gerenciar a alocação de espaço retomável

  • A alocação de espaço retomável suspende, em vez de encerrar, as grandes operações no banco de dados que exigem mais espaço em disco do que disponível no momento.
  • Assim que a condição do esgotamento do espaço for corrigida, a operação no banco de dados prosseguirá automaticamente a partir do ponto em que ela foi suspensa.
  • Condições, como esgotamento do espaço em disco ou quota excedida, podem acionar a alocação de espaço retomável.
  • Existem quatro categorias gerais de comandos que podem ser retomáveis:
    • 1 – instruções SELECT
    • 2 – comandos DML
    • 3 – operações do SQL*Loader
    • 4 – instruções DDL que alocam espaço em disco
  • Todos os comandos DDL que alocam espaço em disco para segmentos novos ou já existentes sáo retomáveis, como CREATE TABLE, CREATE INDEX e CREATE MATERIALIZED VIEW.
  • É possível ativar a alocação de espaço retomável no nível de instância por meio do parâmetro de inicialização RESUMABLE_TIMEOUT ou com o comando ALTER SESSION.
  • Definir o parâmetro RESUMABLE_TIMEOUT com 0 desativa a alocação de espaço retomável.
  • O valor padrão para o tempo de espera retomável é de 7200 segundos (2 horas).
  • Para facilitar a identificação da instrução retomável nas views do dicionário de dados DBA_RESUMABLE e USER_RESUMABLE, você pode ativar o recurso de alocação de espaço retomável com o parâmetro NAME.
  • O DBA ou um usuário pode registrar um trigger para o evento AFTER SUSPEND, acionado imediatamente após a suspensão de uma instrução retomável qualificada.

Descrever os conceitos de tablespaces e bancos de dados transportáveis

  • Ao transportar entre plataformas, as plataformas de origem e de destino devem constar na lista de plataformas suportadas pelo Oracle.
  • A compatibilidade de recursos do Oracle Database é controlada pelo parâmetro de inicialização COMPATIBLE.
  • Quando você criar um conjunto de tablespaces transportáves, o Oracle determinará o nível de compatibilidade mínimo do banco de dados de destino e armazenará esse valor nos metadados do conjunto de tablespaces transportáveis.
  • Deve ser executado um processo de conversão das colunas de dados transportadas entre plataformas com diferentes formatos de ordenação de bytes.
  • Para determinar os formatos de ordenação de bytes de todas as plataformas suportadas, você pode consultar a view dinâmica de desempenho V$TRANSPORTABLE_PLATFORM.
  • Ao transportar um tablespace, o tablespace de origem deve ser somente leitura durante o processo de cópia, e alterado para somente gravação após a importação para o banco de dados de destino.
  • Use o expdp, impdp e o pacote PL/SQL DBMS_FILE_TRANSFER para copiar os metadados e os datafiles do tablespace de um banco de dados para outro.

Recuperar o espaço perdido com tabelas e índices, usando a funcionalidade de compressão de segmentos

  • A compressão de segmentos disponibiliza espaço livre no segmento para outros segmentos no banco de dados
  • A compressão de segmentos pode melhorar as futuras operações DML sobre o segmento, porque será necessário recuperar menos blocos para essas operações após a compressão do segmento.
  • A compressão de segmentos é parecida com a redefinição de tabelas, no sentido de que o espaço em uma tabela é recuperado, mas pode ser executada localmente, sem as exigências adicionais de espaço ocorridas na redefinição de tabelas online.
  • A compressão de segmentos tem duas fases: compactar as linhas de dados e mover a marca d’água superior (HWM).
  • O reposicionamento da HWM é opcional ou pode ser retardado para reduzir o impacto sobre as operações DML concorrentes no segmento.
  • Uma operação de compressão é executada internamente como uma série de operações INSERT e DELETE; durante uma compressão, nenhum trigger DML é executado.
  • A compressão de segmentos não pode ser utilizada em tabelas agrupadas, tabelas com colunas LONG, tabelas de mapeamento de IOTs, tabelas com views baseadas em ROWID ou views materializadas on-commit, e tabelas contendo índices baseados em funções.
  • O Supervisor de Segmento Oracle, executado manualmente ou em uma programação que faz parte do job do Supervisor Automático de Segmento, pode identificar os candidatos à compressão de segmentos.
  • O Supervisor Automático de Segmento pode recomendar segmentos (tabelas ou índices) que são candidatos à compressão de segmentos.
  • Não é possível especificar os objetos e tablespaces a serem analisados pelo Supervisor Automático de Segmento; você pode alterar o horário de execução e a quantidade de recursos por ele consumidos durante a execução.
  • A cláusula COMPACT do comando ALTER TABLE ... SHRINK SPACE executa apenas a etapa da compactação, e a HWM permanece no lugar até você executar o comando ALTER TABLE novamente sem a palavra-chave COMPACT.
  • Para fazer a compressão de um segmento, também é necessário ativar a movimentaç~so de linhas na tabela ou no índice.
  • Para iniciar o Supervisor de Segmento sobre uma tabela específica ou sobre um tablespace inteiro, use o pacote PL/SQL DBMS_ADVISOR.
  • Os resultados do Supervisor de Segmento são disponibilizados na view do dicionário de dados DBA_ADVISOR_FINDINGS.

Noções básicas sobre o Resource Manager

  • Não é recomendável usar o sistema operacional para gerenciar os recursos, uma vez que a mudança de contexto dentro do sistema operacional entre processos do banco de dados pode ocasionar uma sobrecarga excessiva e desnecessária.
  • As três construções básicas do Gerenciador de Recursos são: grupos de consumidores de recursos, planos (e subplanos) de recursos e diretivas de planos de recursos.
  • Grupos de consumidores de recursos identificam os grupos de usuários ou sessões que têm necessidades de recursos semelhantes.
  • Um plano de recursos atribui vários recursos, com porcentagens específicas ou prioridades relativas, a um grupo de recursos.
  • Dentro do plano de recursos, encontram-se as diretivas de plano de recursos que associam grupos de consumidores a um plano de recursos, e especificam como os recursos são divididos entre os gruposde consumidores ou subplanos.
  • O Gerenciador de Recursos pode alocar recursos com base no uso da CPU, grau de paralelismo, número de sessões ativas, espaço de undo, limite de tempo da CPU e limite de tempo de inatividade.
  • O Gerenciador de Recursos pode alternar automaticamente uma sessão ou processo d eum grupo de consumidores para outro com base em critérios como o uso de uma quantidade específica de tempo da CPU ou espaço de undo.

Criar e usar componentes do Resource Manager

  •  O pacote PL/SQL DBMS_RESOURCE_MANAGER tem tudo o que você necessita para exibir, criar, manter e utilizar os componentes do Gerenciador de Recursos.
  • O Oracle oferece um plano padrão, denominado DEFAULT_PLAN, quando você cria um banco de dados.
  • Um subplano é idêntico a um plano de recursos, exceto pelo fato de que ele também pode alocar recursos dentro de um plano já existente.
  • Somente um plano de recursos pode estar ativo de cada vez.
  • Para descobrir o plano ativo, consulte o parâmetro de inicialização RESOURCE_MANAGER_PLAN.
  • Você pode utilizar os pacotes PL/SQL CREATE_PLAN, UPDATE_PLAN e DELETE_PLAN para criar, atualizar e excluir planos de recursos.
  • Para criar uma área pendente, use a procedure CREATE_PENDING_AREA do pacote DBMS_RESOURCE_MANAGER.
  • Use o DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP para criar um novo grupo de consumidores.
  • Para atribuir diretivas a um plano usando PL/SQL, use a procedure CREATE_PLAN_DIRECTIVE do pacote DBMS_RESOURCE_MANAGER.
  • Para criar uma área pendente para sua sessão do Gerenciador de Recursos, use DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA().
  • Pra criar um novo plano do Gerenciador de Recursos, use DBMS_RESOURCE_MANAGER.CREATE_PLAN.
  • Para criar diretivas de plano dentro de um plano, use DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE, especificando o nome do plano e o grupo afetado pela diretiva, juntamente com os limites de uso da CPU, do paralelismo e do espaço de UNDO.
  • Você deve validar a área pendente com DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA() antes de enviar a área pendente com DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA().
  • A view do dicionário de dados DBA_RSRC_PLAN mostra todos os planos contidos no banco de dados, alem do status e da permanência de cada um.
  • A principal view dinâmica de desempenho para monitorar o Gerenciador de Recursos é a V$RSRC_CONSUMER_GROUP.

Referência Bibliográfica Este post, assim como todos os posts sobre Certificação OCP deste blog, são trechos do livro “OCP Oracle Database 11g – Administração II (Guia do Exame 1Z0-053)”, da editora Bookman – www.bookman.com.br Recomendo este livro a todos que pretendem estudar para o exame. Meus posts são apenas algumas dicas para quem já está estudando por outros materiais, e por isso exige uma base de conhecimento anterior em cada um dos capitulos. Para uma referência completa de estudos é recomendado a compra do livro correspondente, bem como a documentação oficial da Oracle.

Milton Bastos é DBA Oracle e Desenvolvedor PL/SQL, dividido entre Apucarana/PR e Curitiba/PR. Certificações: OCA (Oracle 11g DBA Certified Associate), Oracle Database 11g Data Warehousing Certified Implementation Specialist, Oracle Database 11g Sales Specialist Assessment, Oracle Database Appliance PreSales Specialist Assessment, Oracle Database Appliance Sales Specialist Assessment