Flashback Database

Esse recurso permite recuperar o banco, fazendo que o mesmo
possa ser voltado num ponto específico do tempo. Esse recurso pode ser útil
para situações de corrupção de dados lógicas ou perda de dados feita por algum
usuário. Meio rápido para recuperação de dados.

A estrutura do Flashback Database envolve alguns novos
recursos componentes: Logs de FlashBack Database e RVWR (Processo de segundo
plano).

a)  Logs de Fashback Database: é um arquivo de log com a imagem anterior dos blocos do banco de dados Oracle. Esses logs devem ser criados na área de recuperação de flashback, ou seja, essa área deve ser configurada para esse armazenamento;

b)  RVWR: quando o Flashback Database está ativado, o processo de segundo plano RVWR é iniciado sendo responsável por gravar nos logs os dados do Flashback Database.

OBS: Para utilizar o Flashback Database o banco deve estar em modo ARCHIVELOG e uma área de recuperação deve ser configurada.

Verificando se o database com o flashback ativado:

SQL> select current_scn, flashback_on from v$database ;

CURRENT_SCN FLASHBACK_ON
———– ——————
846839 NO

Como ativar o Flashback
Database:
1-) Shutdown immediate ;

2-) startup mount exclusive ;

3-) alter system set db_flashback_retention_target=2880 scope=both ;

4-) alter system set db_recvery_file_dest_size=1G scope=both;

5-) alter system set db_recovery_file_dest=’c:\flashback\’  scope=both ;
#diretório deve estar criado em C:\

4-) alter database flashback on ;

5-) alter database open ;

OBS: 2880 minutos equivalem a 2 dias

O parâmetro db_flashback_retention_target é apenas um alvo do intervalo de tempo que as informações devem ser armazenadas. Isso dependerá também do tamanho da área de
disco que armazenará os logs do flashback.

V$database: Coluna Flashback_on, que mostra se o recurso está ativado.
V$flashback_database_log: Permite monitorar o RETENTION_TARGET, isso pode ajudar a estimar a quantidade de espaço necessário exigida na área de recuperação.

Colunas importantes:
a)      Flashback_scn: menor SCN permitido

b)      Flashback_size: especifica o tamanho atual em bytes do dados de flashback

c)       Estimated_flashback_size: usa dados de flashback registrados anteriormente a fim de fornecer uma estimativa do espaço em disco necessário na área de recuperação flash

d)      Oldest_flashback_snc e oldest_flashback_time exibem o menor valor aproximado de SCN e o horário até o qual é possível fazer flashback do banco de dados CURRENT_SCN em V$DATABASE;

Exemplo:
select * from v$flashback_database_log ;

V$flashback_database_stat: Manutenção dos dados de logs.

Estima a quantidade total de espaço para recuperações futuras

Exemplo:
SQL> select Begin_time, end_time, flashback_data, dB_data, redo_data,
estimated_flashback_size from v$flashback_database_stat ;

Desvantagens:
Esse recurso não poderá ser utilizado:
a)      Se o arquivo de controle foi restaurado ou recriado

b)      O objeto que você precisa consultar teve sua tablespace excluída

c)       Ocorreu uma recuperação com o comando RESETLOGS

Vamos a prática: 1º parte

SQL> alter session set nls_date_format=’dd-mm-yyyy hh24:mi:ss’ ;

SQL> select sydate from dual ;

SQL> create table hello_world (id number(4), name varchar2(30)) ;

SQL> insert into hello_world values (1, ‘Katia’) ;

SQL> insert into hello_world values(2, ‘Bianca’);

SQL> insert into hello_world values(3, ‘Suelen’);

SQL> insert into hello_world values(4,’Edilene’) ;

SQL> commit ;

2º parte:

SQL> select sysdate from dual ;             # guardar essa data

SQL> drop table hello_world ;

SQL> flashback table “HELLO_WORLD” to before drop ;

3º parte:

SQL> select sysdate from dual ;

SQL> shutdown immediate ;

SQL> startup mount exclusive ;

SQL> flashback database to timestamp to_timestamp(‘dd-mm-yyyy hh24:mi:ss’,
‘DD-MM-YYYY HH24:MI:SS’) ;

SQL> alter database open resetlogs ;

Verificar se existe a tabela HELLO_WORLD

Habilitando a Lixeira

SQL> show parameter recycle

NAME                                             TYPE        VALUE
———————————— ———– —————————-
recyclebin                                        string      on

Esse parâmetro vem habilitado como default.

A lixeira pode ser utilizada quando:

a)       Você criou uma tabela chamada EMPLOYEES no tablespace
b)      Você eliminou a tabela EMPLOYEES
c)       As extensões ocupadas por EMPLOYEES agora são consideradas espaço livre
d)      EMPLOYEES é renomeada e inserida na lixeira

O comando flashback table <table_name> to before drop ;
O espaço (após DROP) não é liberado na tablespace.

Ignorando a Lixeira:

Drop tablespace
<tablespace_name> including contents ;

Os objetos não são colocados na lixeira. Quando você executa o mesmo comando
sem a cláusula INCLUDING CONTENTS, o tablespace precisa estar vazio para a
execução bem sucedida do comando.

Drop user  <username> cascade ;

# O usuário e todos os objetos pertencentes a ele são eliminados não permitindo
recuperação.

Eliminar a tabela com o comando:

DROP TABLE <table_name> purge ;

OBS: A view DBA_TABLES a coluna DROPPED que é definida como YES no caso de tabelas que foram eliminadas.

Exemplo:

1-)  Criar uma tabela

2-) Dropar uma tabela

3-) select * from <tabela> as of timestamp systimestamp – interval ‘5’ minute;

4-) Insert into <tabela> select * from<tabela> as of timestamp systimestamp
-interval ‘5’ minute;

Para expurgar:

Purge recyclebin ou user_recyclebin  (que são sinônimos). ou
Purge dba_recyclebin ;

Sobre oradeep

José Eduardo Fiamengui Júnior Graduação: Tecnologia em Informática pela Universidade Estadual de Campinas (Unicamp) Pós-Graduação: Administração em Banco de Dados Oracle pelo Instituto Brasileiro de Tecnologia Avançada (IBTA) Mba em Gestão Estratégica em TI pela FGV OCE Certified ITIL Certified Empresa Atual: Dba Oracle e Performance Specialist na Ccee Empresa Atual: Instrutor Oracle IBTA
Esta entrada foi publicada em Oracle. ligação permanente.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s