Flashback Data Archive
Por Alex Zaballa ,
Postado em Junho 2016
Revisado por Marcelo Pivovar - Solution Architect
Este é mais um artigo da série que irei escrever enquanto me preparo para o exame de atualização do OCM para a versão 12c. Estes artigos serão criados antes da prova e serão baseados apenas nos tópicos do exame.
Indice de artigos do tema Data and Performance Management:
- Modificando Materialized Views
- Transportable Database / Tablespaces
- Criando Tabelas Particionadas no Oracle Database 12c
- Flashback Data Archive
- Resource Manager utilizando o SQL*Plus
- Tune SQL statements
- Perform real application testing
- Criando SQL Plan baselines utilizando o OEM Total Cloud Control 12c
Neste artigo, falarei sobre o Flashback Data Archive (FDA), que surgiu no Oracle Database 11g como complemento da tecnologia de flashback introduzida nas versões anteriores.
- A tecnologia de Flashback oferece uma solução para recuperação de erros humanos e lógicos, e é baseado nos dados de undo ou em flashback logs.
- O FDA adiciona a capacidade de armazenar informações do banco de dados por um longo tempo, para fins de arquivamento ou restauração.
No Oracle Database 12c, foram adicionadas algumas melhorias nessa tecnologia, tais como:
- User context tracking
- Database Hardening
- Export/Import Table History
Flashback Data Archive
O Flashback Data Archive é uma feature do Oracle Database 11g que provê uma estrutura para o armazenamento de informações históricas.
As informações nas tabelas serão retidas de acordo com a política de retenção definida no Flashback Data Archive, que pode ser de dias, meses ou mesmo anos.
Criando uma tablespace dedicada para os testes com o FDA:
Criando um usuário e atribuindo as permissões necessárias para uso do FDA:
Criando um Flashback Archive com retenção de 1 ano:
Atribuindo privilégios ao usuário TESTE_FDA:
Criando as tabelas e atribuindo ao Flashback Archive criado:
Verificando o mapeamento entre as tabelas originais e as tabelas que mantém o histórico:
Registro inserido em 01/01/2016:
Entre 01/01/2016 e 01/05/2016 foram feitas diversas operações na tabela e hoje ela se encontra da seguinte forma:
Agora vamos consultar como estavam os dados no dia 01/01/2016:
User context tracking
No Oracle Database 12c, o conteúdo de informações vindas de chamadas para SYS_CONTEXT e USERENV, podem ser armazenadas juntamente com as modificações dos dados, permitindo que seja realizada auditoria e controle de uma forma mais fácil.
Alterando o contexto:
Modificando os dados da tabela:
Verificando as modificações feitas na tabela, incluindo as informações dos usuários:
Database Hardening
No Oracle Database 12c, foi incluído um novo recurso chamado database hardening, que simplifica o gerenciamento do FDA através da criação de grupos de tabelas, que são conhecidos como aplicações.
O gerenciamento é realizado utilizando a package DBMS_FLASHBACK_ARCHIVE;
Este recurso permite que com apenas um comando, sejam modificadas todas as tabelas associadas a uma “aplicação”, inclusive bloqueando as operações DML.
Criando uma “aplicação”:
Atribuindo as tabelas que fazem parte da “aplicação”:
Habilitando o FDA para a “aplicação”:
Verificando o status do FDA:
Export/Import Table History
No Oracle Database 12c, foi incluído um novo recurso que permite importar e exportar o histórico de alterações nas tabelas.
Neste exemplo, iremos exportar o histórico de atualizações de uma tabela para outro banco.
Banco de Origem
Verificando o mapeamento entre a tabela original e a tabela que mantém o histórico:
Verificando o número de registros:
Banco de destino
Criando uma tablespace dedicada para os testes com o FDA:
Criando um usuário e atribuindo as permissões necessárias para uso do FDA:
Criando um Flashback Archive com retenção de 1 ano:
Atribuindo privilégios ao usuário TESTE_FDA2:
Criando a tabela e copiando os dados do banco de destino:
Habilitando o Flashback Archive:
Criando a tabela temporária que irá conter os dados históricos da tabela:
Copiando os dados históricos do banco de destino:
Importando os dados históricos para o FDA:
Verificando o mapeamento entre a tabela original e a tabela que mantém o histórico:
Verificando o número de registros:
Alex Zaballa, formado em Análise de Sistemas, é especialista em Banco de Dados Oracle com sólidos conhecimentos em Servidores de Aplicação e Sistemas Operacionais; trabalha com Oracle há 16 anos, é Oracle ACE Director, certificado OCM Database 11G/Cloud e conta com mais de 200 outras certificações em produtos da Oracle.
Este artigo foi revisto pela equipe de produtos Oracle e está em conformidade com as normas e práticas para o uso de produtos Oracle.