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
eCREATE 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 comandoALTER 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
eUSER_RESUMABLE
, você pode ativar o recurso de alocação de espaço retomável com o parâmetroNAME
. - 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
eDELETE
; 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 comandoALTER TABLE ... SHRINK SPACE
executa apenas a etapa da compactação, e a HWM permanece no lugar até você executar o comandoALTER TABLE
novamente sem a palavra-chaveCOMPACT
. - 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
eDELETE_PLAN
para criar, atualizar e excluir planos de recursos. - Para criar uma área pendente, use a procedure
CREATE_PENDING_AREA
do pacoteDBMS_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 pacoteDBMS_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 comDBMS_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.