Índice:
- Veja como usar a Repetição de banco de dados:
- Siga estas etapas para reproduzir a carga de trabalho :
Vídeo: Aula 03 - Oracle SQL 2024
O recurso de repetição de banco de dados Oracle 12c evoluiu como uma solução para a necessidade de fazer testes de aplicativos realistas. Antes da Repetição do Banco de Dados, se você quisesse testar qualquer tipo de alteração contra desempenho ou carga de trabalho, você precisava comprar uma ferramenta de terceiros ou fazer enormes quantidades de codificação para falsificar uma carga de trabalho.
Na maioria dos casos, nenhum dos métodos era verdadeiramente representativo da sua carga de trabalho real. Além disso, fazer mudanças em um ambiente de produção sem testá-los pode ser arriscado.
Database Replay é mais uma ferramenta em seu galpão para cobrir todas as bases.
Em essência, o Database Replay permite gravar sua carga de trabalho em tempo real e depois reproduzi-la. Além disso, você pode jogar contra
-
Outro banco de dados
-
Uma versão diferente do Oracle
-
Um sistema operacional diferente
O Database Replay captura a carga de trabalho abaixo do nível SQL. A carga de trabalho é armazenada em arquivos binários. Você pode então transferir esses arquivos para um ambiente de teste, executar a carga de trabalho, analisar problemas, solucionar problemas e testar novamente. A mesma carga de trabalho é repetível. Em conjunto com uma ferramenta como o Flashback Database, você pode testar repetidamente as mudanças em sucessão rápida. Isso ajuda a reduzir as chances de algo quebrando quando os ambientes são alterados.
A Replay do banco de dados fornece um mecanismo para ajudar com esses tipos de situações:
-
Teste
-
Alterações de configuração
-
Atualizações
-
Downgrades
-
Alterações de aplicativos
-
Depuração > Mudanças de armazenamento, rede e interconexão
-
Alterações de plataforma
-
Alterações de SO
-
Conversão para Clusters de Aplicações Real (RAC)
-
Veja como usar a Repetição de banco de dados:
Faça login no SQL * Plus como usuário com o privilégio SYSDBA.
-
Oracle requer um diretório no qual escrever os arquivos de repetição.
Crie um diretório para um local no sistema operacional com muito espaço:
-
Você vê isso:
Diretório criado.
Iniciar uma captura:
-
Este exemplo usa o nome CAPTURE_DEMO.
Idealmente, você reinicia o banco de dados antes da captura começar, de modo que você possa evitar capturar qualquer transação no meio. Claro, fazê-lo nem sempre é uma opção ao lidar com um sistema de produção.
Você vê isso:
procedimento PL / SQL concluído com sucesso.
Execute sua carga de trabalho.
-
Se é apenas o comportamento normal do aplicativo, deixe-o funcionar pela quantidade de tempo que deseja.
Quando a carga de trabalho estiver concluída ou o seu alvo de tempo for passado, pare o processo de captura:
-
Você vê isso:
procedimento PL / SQL concluído com sucesso.
De acordo com a documentação da Oracle, capturar uma carga de trabalho pode adicionar até 4.5 por cento do processamento de sobrecarga para o sistema, bem como 64K de sobrecarga de memória para cada sessão. Além disso, se o espaço acabar no diretório de captura, a captura irá parar. Todos os dados capturados até esse ponto ainda serão úteis.
A idéia é que você usará sua captura para "reproduzir" a carga de trabalho. Na nossa experiência, a carga de trabalho geralmente é reproduzida em um banco de dados diferente, como um ambiente de teste. No entanto, nem sempre é esse o caso.
Se o seu ambiente de banco de dados for aquele em que uma longa janela de manutenção possa ocorrer (por exemplo, durante um fim de semana), você pode encontrar-se fazendo essas coisas:
Ativando o banco de dados do Flashback
-
Criando um ponto de restauração na manhã de sexta-feira
-
Iniciando uma captura de carga de trabalho por quatro horas a partir de 8 a. m. ao meio-dia
-
Restringindo o sistema e criando outro ponto de restauração depois que os funcionários vão para casa na sexta-feira à noite
-
Restaurando o banco de dados para o ponto de restauração Sexta-feira de manhã
-
Implantando alterações de banco de dados ou aplicativos
-
Reproduzindo sua carga de trabalho para testar o muda
-
Desliga a carga de trabalho para a noite de sexta-feira
-
Implementando alterações no banco de dados ou aplicativos para produzir efeitos quando os trabalhadores retornam Segunda-feira de manhã
-
Como reproduzir a carga de trabalho no Oracle 12c
Siga estas etapas para reproduzir a carga de trabalho:
Crie um diretório para os arquivos de captura de repetição:
-
Você vê isso:
Diretório criado.
Este exemplo pressupõe que a repetição esteja ocorrendo em outro banco de dados. Se estiver no mesmo banco de dados, não há necessidade de criar um diretório e mover os arquivos de captura porque eles já estarão no local correto.
Mova os arquivos do diretório de captura no sistema de origem para o diretório no sistema de repetição.
-
Comece o processo de repetição no banco de dados:
-
Você vê isso:
procedimento PL / SQL concluído com sucesso.
Inicialize uma sessão de repetição chamada REPLAY_DEMO:
-
Você vê isso:
procedimento PL / SQL concluído com sucesso.
Diga à Oracle para preparar os arquivos de repetição:
-
Você vê isso:
procedimento PL / SQL concluído com sucesso.
Inicie
clientes de repetição, que são processos que executam e gerenciam a carga de trabalho. Esses processos são lançados a partir da linha de comando do sistema operacional. O exemplo a seguir inicia um cliente de repetição com o oracle como a senha:
-
Você vê isso:
Workload Replay Client: Versão 12. 1. 0. 1. 0 - Produção em sex. 16 de agosto 22: 24: 44 2013 Copyright (c) 1982, 2013, Oracle e / ou suas afiliadas. Todos os direitos reservados. Aguarde a repetição para começar (22: 24: 44)
Diga ao banco de dados para iniciar a repetição:
-
Você vê isso:
procedimento PL / SQL concluído com sucesso.
Verifique o status enquanto a repetição é executada:
-
Basicamente, você está consultando a tabela DBA_WORKLOAD_REPLAYS. Você vê isso (ou algo assim):
ID NOME STATUS DURATION_SECS ---------- -------------------- --- -------- ------------- 10 REPLAY_DEMO IN PROGRESS 369
Quando tudo estiver pronto, você deve limpar os metadados de repetição.
Informações de identificação de captura no sistema fonte:
-
Você pode ver algo como isto:
ID NAME ---------- -------------- --------------------- 4 CAPTURE_DEMO
Excluir as informações de captura:
-
Você vê isso:
procedimento PL / SQL concluído com sucesso.
Encontre o id de repetição no sistema de repetição:
-
Você pode ver algo como isto:
ID NAME ---------- ------------- ---------------------- 10 REPLAY_DEMO
Excluir a informação de repetição: