Noções básicas de Database Replay da Oracle 12c

O recurso de repetição 12c banco de dados Oracle evoluiu como uma solução para a necessidade de ser capaz de fazer o teste de aplicativos realista. Antes de o Database Replay, se você quiser testar qualquer tipo de mudanças contra o desempenho ou a carga de trabalho, você tinha que comprar uma ferramenta de terceiros ou fazer quantidades maciças de codificação de falsificar uma carga de trabalho.

Na maioria dos casos, nenhum método foi verdadeiramente representativa da sua carga de trabalho real. Além disso, fazer alterações em um ambiente de produção sem testá-los pode ser arriscado.

O Database Replay é mais uma ferramenta na sua vertente para cobrir todas as bases.

Em essência, o Database Replay permite gravar sua carga de trabalho em tempo real e, em seguida, reproduzi-lo. Além disso, você pode jogá-lo contra

  • outro banco de dados

  • Uma versão diferente da Oracle

  • Um sistema operacional diferente

O Database Replay captura a carga de trabalho abaixo do nível de SQL. A carga de trabalho é armazenado em arquivos binários. Você pode então transferir esses arquivos para um ambiente de teste, executar a carga de trabalho, analisar os problemas, corrigir problemas e testar novamente. A mesma carga de trabalho é repetitivo. Em conjunto com uma ferramenta como o Flashback Database, você pode repetidamente testar mudanças em rápida sucessão. Ele ajuda a reduzir as chances de algo quebra quando os ambientes são alteradas.

O Database Replay fornece um mecanismo para ajudar com esses tipos de situações:

  • ensaio

  • As alterações de configuração

  • Upgrades

  • rebaixamentos

  • mudanças no aplicativo

  • depuração

  • mudanças de armazenamento, rede e interconexão

  • mudanças de plataforma

  • mudanças OS

  • A conversão para Real Application Clusters (RAC)

Como usar o Database Replay no Oracle 12c

Veja como usar o Database Replay:

  1. Entrar e SQL * Plus como um usuário com o privilégio SYSDBA.

    Oracle requer um diretório no qual gravar os arquivos de replay.

  2. Crie um diretório para um local no sistema operacional com muito espaço:

    Você vê isso:

    Diretório criado.
  3. Inicie uma captura:

    Este exemplo usa o nome CAPTURE_DEMO.

    Idealmente, você reiniciar o banco de dados antes da captura começa de modo que você pode evitar a captura de todas as transações no meio. Claro, isso nem sempre é uma opção quando se trata de um sistema de produção.

    Você vê isso:

    Procedimento PL / SQL concluído com êxito.
  4. Executar a sua carga de trabalho.

    Se é apenas o comportamento normal do aplicativo, que partem para a quantidade de tempo que você deseja.

  5. Quando a carga de trabalho é completa ou o seu alvo o tempo passou, parar o processo de captura:

    Você vê isso:

    Procedimento PL / SQL concluído com êxito.

De acordo com a documentação do Oracle, a captura de uma carga de trabalho pode adicionar até 4,5 por cento do processamento sobrecarga para o sistema, bem como 64K de sobrecarga de memória para cada sessão. Futhermore, se o espaço acabar no diretório de captura, a captura será interrompida. Todos os dados capturados até aquele ponto, irá ser útil.

A idéia é que você irá usar a sua captura para # 147-repetição # 148- a carga de trabalho. Em nossa experiência, a carga de trabalho é geralmente repetido contra um banco de dados diferente, como um ambiente de teste. No entanto, isto nem sempre é o caso.

Se o seu ambiente de banco de dados é aquele em que as janelas de manutenção longos pode ocorrer (tal como ao longo de um fim de semana), você pode encontrar-se fazer estas coisas:

  • Permitindo Flashback Database

  • Criando um ponto de restauração na sexta-feira de manhã

  • Iniciar uma captura de carga de trabalho durante quatro horas a partir de 08:00 ao meio-dia

  • Restringindo o sistema e criar um outro ponto de restauração após os empregados ir para casa na sexta-feira à noite

  • Restaurar o banco de dados para o ponto de restauração manhã sexta-feira

  • A implantação de banco de dados ou aplicativo altera

  • Repetindo sua carga de trabalho para testar as alterações

  • Piscar de volta a carga de trabalho a sexta-feira à noite

  • A implantação de banco de dados ou aplicativos alterações entrem em vigor quando os trabalhadores voltar ontem de manhã

Como reproduzir a carga de trabalho no Oracle 12c

Siga estes passos para reproduzir a carga de trabalho:

  1. Crie um diretório para os arquivos de captura de repetição:

    Você vê isso:

    Diretório criado.

    Este exemplo assume a reprodução está ocorrendo em outro banco de dados. Se é sobre o mesmo banco de dados, não há necessidade de criar um diretório e mover os arquivos de captura, porque eles já estará no local correto.

  2. Mova os arquivos do diretório de captura no sistema de origem para o diretório no sistema de replay.

  3. Comece o processo de repetição no banco de dados:

    Você vê isso:

    Procedimento PL / SQL concluído com êxito.
  4. Inicializar uma sessão de repetição chamado REPLAY_DEMO:

    Você vê isso:

    Procedimento PL / SQL concluído com êxito.
  5. Diga Oracle para preparar os arquivos de repetição:

    Você vê isso:

    Procedimento PL / SQL concluído com êxito.

    Começar clientes de reprodução, que são processos que executar e administrar a carga de trabalho. Estes processos são lançados a partir da linha de comando do sistema operacional.

  6. O exemplo a seguir inicia um cliente de repetição com a Oracle como a senha:

    Você vê isso:

    Workload Repetição Cliente: Release 12.1.0.1.0 - Produção em Qui 16 ago 22:24:44 2013Copyright (c) 1982, 2013, Oracle e / ou suas afiliadas. Todos reserved.Wait direitos para a reprodução para iniciar (22:24:44)
  7. Diga o banco de dados para iniciar a reprodução:

    Você vê isso:

    Procedimento PL / SQL concluído com êxito.
  8. Verificar o status enquanto o replay é executado:

    Basicamente, você está consultando a tabela DBA_WORKLOAD_REPLAYS. Você vê isso (ou algo parecido):

ID NOME STATUSDURATION_SECS ---------- -------------------- ----------- ------ ------- 10 REPLAY_DEMO EM CURSO 369

Quando tudo estiver pronto, você deve limpar os metadados replay.

  1. Capturar informações ID no sistema de origem:

    Que você pode ver algo como isto:

    ID NOME ---------- ----------------------------------- 4 CAPTURE_DEMO
  2. Excluir as informações de captura:

    Você vê isso:

    Procedimento PL / SQL concluído com êxito.
  3. Encontre o ID de repetição no sistema de replay:

    Que você pode ver algo como isto:

    NOME ID ---------- ----------------------------------- 10 REPLAY_DEMO
  4. Apagar a informação de repetição:

menu