Como usar consulta de flashback em 12c oráculo

Você sempre quis uma máquina do tempo? Tal coisa não existe. Ou não? O tempo de 12c a Oracle conhecido como máquina Flashback

permite que você voltar, avançar, e se recuperar de situações com facilidade. Flashback pode parecer intimidante, mas o recurso é simples.

Um recurso chamado Flashback Query é um dos mais simples e mais fácil de usar variações da tecnologia Oracle Flashback. Simplificando, ele permite que você consultar uma tabela em um ponto no passado. Isto significa que, apesar de todas as atualizações, inserções e exclusões que pode ter acontecido, você vê a mesa, tal como existia no momento em que você escolher.

Aqui está uma demonstração rápida com o esquema de exemplo, HR:

  1. Entrar e SQL * Plus como o usuário HR.

  2. Olhe para os dados na sua tabela de departamentos.

    Video: Reflexões sobre o uso das respostas que os oráculos dão a quem os consulta

  3. Restringir a consulta para ambos minimizar a saída e fazer a demonstração mais evidente. Digite o seguinte:

    Você deve ver algo como isto:

    DEPARTMENT_ID department_name ------------- ------------------------------ 120 Treasury130 Corporativo Tax140 Controle e linhas Credit150 Acionista Services160 Benefits170 Manufacturing180 Construction190 Contracting200 Operations210 TI Support220 NOC230 TI Helpdesk240 Governo Sales250 Retail Sales260 Recruiting270 Payroll16 selecionado.
  4. Modificar a mesa removendo as linhas seleccionadas na saída anterior. Para remover as linhas, tipo

    Você deve ver o seguinte:

    16 linhas excluídas.
  5. Confirmar as alterações, digitando

    Video: Por que consultar o Oráculo antes do trabalho espiritual

    Você deve ver o seguinte:

    Video: Access: Consulta a campo de fechas

    Commit completa.
  6. Executar a consulta original novamente.



    Você deve ver o seguinte:

    nenhuma linha selecionada

    O próximo passo é onde você usar a magia de Flashback Query. Pense no tempo antes da exclusão ocorreu. Neste exemplo de caso, foi há cinco minutos.

  7. Digitar algo semelhante ao seguinte para ver os dados, tal como existia há cinco minutos:

Você vê as linhas que existiam no Passo 2. A chave é a partir de cláusula TIMESTAMP. Para o alvo do timestamp, você pode ver que o exemplo usa matemática sobre a função SYSDATE. SYSDATE representa o tempo atual, no momento.

Video: God of War Ascension: Câmara do Oráculo / Amuleto de Ouroboros

Subtraindo-1 a partir de SYSDATE significa ontem. O exemplo que se subtrai a fracção 1/288, o que significa que cinco minutos, a partir de SYSDATE. Para obter essa fração, o exemplo usa a seguinte fórmula:

24 (horas em um dia) × 60 minutos (em horas) e = 1440 (minutos) em um dia

Então, 5 sobre 1440 é igual a 1 sobre 288.

Você também pode usar um timestamp explícito, em vez de uma função SYSDATE. Por exemplo:

selecionar department_id, department_namefrom departmentsAS do timestamp TO_DATE (`16 -AUG 2013 20:04:00` , `DD-MON-AAAA HH24: MI: SS`) onde manager_id é nulo

Aqui está um truque. Suponha que você acidentalmente apagou as linhas e quer inseri-los de volta para sua mesa. Você pode usar o Flashback Query para fazer uma coisa dessas. Este vai ser Muito de mais rápido do que fazer uma recuperação RMAN para um ponto no tempo.

Para inserir suas linhas excluídas de volta para sua mesa, tipo

lt; inserir departmentsselect * de departmentsAS do timestamp TO_DATE (`16 -AUG-2013 20:04:00` , `HH24 DD-seg-AAAA: MI: SS`) onde manager_id é nulo gt;

Você deve ver o seguinte:

16 linhas criadas.

Consultar a tabela e, quando estiver satisfeito, confirmar as alterações.

Você só pode flash back, tanto quanto a sua definição para o undo_retention parâmetro de instância. Por padrão, esse parâmetro é definido como 15 minutos (900 segundos). Se o tempo que você deseja voltar para é ainda mais do que o seu undo_retention, você pode não ser capaz de ver os seus dados e receberá um erro em seu lugar.

Antes de tomar a dica anterior e definir o seu undo_retention para refletir a pena de um mês de tempo, considere que isso fará com que a sua tabela de undo a crescer porque tem que armazenar imagens de seus dados antigos. Você deve equilibrar cuidadosamente a undo_retention realista de ajuste com o consumo de espaço.


Publicações relacionadas