quarta-feira, 6 de abril de 2011

Criando um Catálago de Recuperação para o Rman

Olá  Amigos ...
Prontos para outra dica Rapída ? Vamos lá

1-Criar uma Base de Dados Para o Rman, utilizando os Scripts gerados pelo DBCA

2- vamos criar todos os objetos e configurações necessários para nosso ambiente de RMAN.

A- Tarefa - Criação da Tablespace do Catalogo
SQL > create tablespace RMAN
2  datafile  '/u01/app/oracle/oradata/rman/rman_01.dbf' size 100M
3 permanent
4 online
5 extent management local autoallocate
6 segment space management auto


3- Tarefa - Criação do usuário RMAN

SQL>create user RMAN
  2  identified by imasters
  3  default tablespace RMAN
  4 temporary tablespace TEMP

4-Tarefa - Permissões ao usuário RMAN a role recovery_catalog_owner tem que estar setada como default role padrão

SQL> grant connect, resource, recovery_catalog_owner to rman;

5-Tarefa - Criação do Catálogo
Para criar o catálogo, devemos sair do SQL*PLUS e ir para as linhas de comando e acessar a ferramenta RMAN  propriamente dito.
[oracle@serverdb dbs]$ rman catalog 'rman/imasters@rman';

RMAN> create catalog tablespace "RMAN";
RMAN> exit

6-Registrar as instancias no Catalago de Backup :

[oracle@localhost ~]$ rman catalog rman/rman@rman  target sys/sys@orcl

Recovery Manager: Release 10.2.0.4.0 - Production on Sun Mar 20 13:58:57 2011
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
connected to target database: ORCL (DBID=1273394171)
connected to recovery catalog database
RMAN> register database ;

terça-feira, 5 de abril de 2011

FlashBack Table e Flashback Drop

Olá Caros Amigos...

Continuando a nossa tragetória sobre as Técnologias de Flashback no Oracle, hoje eu irei passar-lhes dicas sobre mais dois tipos de Flashback .

Mãos  a Obra!!!!

I-FLASHBACK TABLE

FlashBack Table permiti restaurar uma tabela sem a necessidde de um backup/restore do banco de dados.
Quando realizamos um restore da tabela todos os objetos associados para esta tabela , tais como indices, triggers , e constraints são restaurados também.

QUICK TIP: Se vc quer utilizar a tecnologia de flashback table é um boa pratica ajustar os parametros que manipulam o  tablespace de Undo.
O tablespace de Undo contém os dados que serão usados para recuperacão da tabela .
Parametro UNDO_RETENTION  especifica em segundos o default são 900 s (15 segundos) o tempo no qual os dados serão retidos , mas se alguma transação ativa usar todo tablespace de undo, então ele sera reutilizado e vc não poderá voltar a tabela. Para contornar esta situação o ideal é criar um tablespace de undo com a opção RETENTION GUARANTEE  para garantir  que os dados de undo não sejam reutilizados e respeite o parametro UNDO_RETENTION .

Veja um exemplo abaixo  para criacão de um tablespace de undo :

SQL> CREATE UNDO TABLEAPCE undo_tbs
DATAFIEL ‘/u01/app/oracle/undo_tbs01.dbf’ SIZE 1 G
RETENTION GUARANTEE;

Vamos Lá:

Suponhamos que vc apagou determinada linhas de uma tabela por acidente e agora precisa recuperarar esta  tabela ...

1-Habilite o movimento da linha

SQL> ALTER TABLE teste ENABLE ROW MOVEMENT;

2-Restaure a tabela para um determinado SCN.

SQL> FLASHBACK TABLE teste TO SCN 1743434;

OU

2.1-Restaure a tabela a um tempo no qual ela se encontrava correta.
   
SQL> FLASHBACK TABLE teste
     TO TIMESTAMP
     TO_TIMESTAMP(‘24-MAR-11 12:00:00’,’MM/DD/YY HH:MI:SS’); 

3-Verifique se todas as linhas se encontram lá de novo.

II-FLASHBACK DROP

OBS : Nas versões anteriores do Oracle 10g o comando Drop table removia uma tabela da base permanentemente .
Com a Versão 10G as tabelas não serão mais removidas mais sim renomeadas e movidas para um objeto chamado de Recycle bin.

Vamos ver se isso é verdade :

Siaga os Passos abaixo:

1- Drop uma tabela .

SQL>Drop table teste ;

2-Faça uma pesquisa para verificar se a tabela ainda se encontra na recycle bin :

SQL> select object_name, original_name, 
  2    type, createtime, droptime
  3  from   user_recyclebin;

QUICK TIP : Quando a tabela é movida para a recyclebin (licheira) oracle lhe da um nome meio estranho, para visualizar o nome da tabela utilize a coluna original_name, na view  user_recyclebin.

3-Para restaurar novamente a tabela utilize o seguinte comando:

SQL> flashback table “BIN$0+ktoVChEmXgNAAADiUEHQ==$0” to before drop; (nome que o oracle atribui a tabela)
ou
SQL> flashback table teste to before drop;

4-Para limpar a recyclebin execute o comando abaixo:
SQL> purge recyclebin;

5-Para limpar apenas um objeto da recyclebin utilize o comando abaixo:

SQL> purge table "BIN$0+ktoVChEmXgNAAADiUEHQ==$0";

QUICK TIP:Caso queira dropar a tabela permanentemente do banco de dados utilize o comando abaixo:

drop table teste purge ;

Obrigada  e Até maisssssssssssss.......

segunda-feira, 4 de abril de 2011

Flashback Database na Prática

No Post Anterior nós relembramos como habilitar e desabilitar a tecnologia de FlashBack..
As próximas dicas rapídas irão mostrar como fazer uma recuperacão com do Flshaback do banco de dados habilitado..

Sigam os passos abaixo e divirtam-se com moderação,  utilizem  sempre ambientes de testes......

I-FLASBACK DATABSE PARA  UM TEMPO ESPECÍFICO UTILIZANDO COMANDOS SQL

1- feche o Banco de Dados e abra-o  em Modo Mount

SQL>shutdown immediate ;
SQL> startup mount exclusive ;

2-Eu utilizei o seguinte comando para voltar o banco de dados ao dia anterior :

SQL> FLASHBACK DATABASE  to timestamp to_timestamp('24-mar-11 08:00:00','dd-mm-yy hh24-mi-ss') ;

3-Abra o Banco de dados com a Opção RESETLOGS:

SQL>alter database open RESETLOGS ;

Verifique se tudo esta correto como era antes

II-FLASHBACK DATABASE USANDO UM  SCN  

1-Verifique o SCN para o qual iremos recuperar a instância:

SQL> select current_scn from v$database ;

2- feche o Banco de Dados e abra-o  em Modo Mount :

SQL>shutdown immediate ;
SQL> startup mount exclusive ;

3-Eu utilizei o comando abaixo para voltar o banco de dados:

SQL>flashback database to scn 1777333 ;

4-Abra o banco de dados com a Opção RESETLOGS:

SQL> Alter database open RESETLOGS ;

Verifique se esta tudo ok no seu ambiente.

III-FLASHBACK DATABASE USANDO RMAN

1-Feche a Instância que será recuperada e inicie em  no Modo Mount :

SQL>shutdown immediate ;
SQL> startup mount exclusive ;

Quick Tip:Para que se possa realizar os procedimetos de Flasback via Rman o Alvo(Target tem que estar Montado)

2-Conecte ao Alvo via Rman

export ORACLE_SID=orcl
oracle@localhost /]$ rman / target

3-Eu utilizei os comandos abaixo para voltar o banco de dados a alguns minutos atrás do desastre ocorrido:

RMAN> FLASHBACK DATABASE
2> TO TIME = "TO_DATE (‘24-MAR-11 03:07:00’,’ dd-mm-yy hh24-mi-ss’) " ;

Quick tip : é Muito importante veirficar a data e hora correta do seu sistema para uma recuperação precisa :
select systimestamp from dual;

4-Abra o Banco de dados com a Opção RESETLOGS:

SQL>alter database open RESETLOGS ;

Verifique se tudo esta correto como era antes


Espero que seja útil .....
Até a proxíma

Configurando o FlashBack para o Banco de Dados Oracle.

Olá Caros Amigos....
Sabe aquele dia que quase tudo sai errado , nós DBA's temos sempre que estar preparado para o Pior..Ainda bem que a Oracle Coorporation sempre nos ajudas com sua novidades....

A dica a rapída de hoje  esta relacionada a Tecnologia de FlashBack do Banco de Dados ....
Se vc não lembra como habilitar esta Tecnologia de uma olhada nos passos A seguir :

Quick Tip: Lembre-se o banco de dados deve estar no modo Archivelog para que se possa utilizar a tecnologia de Flashback para o Banco de Dados.

1-Assegure que o banco de dados esta em modo Archivelog:

2-Configure os parametros da  Área de Recuperção Rapída(Flash Recover Area) :

DB_RECOVERY_FILE_DEST ='/U01/app/Oracle/flash_recovery '      (Destino da Área de Recuperação Rapída)
ex: alter system set DB_RECOVERY_FILE_DEST ='/U01/app/Oracle/flash_recovery '

DB_RECOVERY_FILE_DEST_SIZE (Tamanho da Área de Recuperação Rapída)
ex: alter system set  DB_RECOVERY_FILE_DEST_SIZE=3G

3- feche o Banco de Dados e abra-o  em Modo Mount:

SQL>shutdown immediate ;
SQL> startup mount exclusive ;

4-Habilitar o FlashBackup para o Banco de dados:

SQL> ALTER DATABASE FLASHBACK ON;

5-Confira se o Banco de Dados esta com FlashBack habilitado :

SQL>select FLASBACK_ON from v$database ;

6-Configure o período para rentenção dos seus Logs de FlashBack:

SQL>Alter system set db_flasback_retention_target=1000 

7-Monitore os log gerados para o Banco de Dados:
  
SQL> select begin_time, flashback_data,
   2  db_data, redo_data, ESTIMATED_FLASHBACK_SIZE
   3    from   v$flashback_database_stat;

Quick Tip: Por Padrão no Oracle 10G o período no qual os logs de FlashBackup são retidos é de 1440 minutes.

8-Monitore o período de retençao para os logs de Flashback :

SQL> select *
2    from   v$flashback_database_log;

Quick Tip: Lembre-se sempre de monitorar   á Área de Recuperação Rapída e verificar se tem espaço suficiente em disco.

Desabilitar o FlashBack no banco de dados

1a-Baixe o Banco de Dados e Abra-o em modo Mount

SQL>shutdown immediate ;
SQL> startup mount exclusive ;

2b-Altere o Banco de dados para desligar o Flasback do  banco de Dados

SQL> ALTER DATABASE FLASHBACK OFF;

3c-Abra o Banco de Dados

SQL> alter database open ;

4-Verifique se o Flashback do Banco de Dados foi desabilitado.

SQL> select flashback_on
         from   v$database;

É isso aí ...Simples assim ...Espero que gostem ..

Até a Proxíma dicaaaaaaaaaaa...

Backup do Banco de Dados no Modo NoarchiveLog

Olá Caros Amigos!!!

Hoje irei dar uma dica rápida sobre como utilizar  o RMAN para fazer Backup do banco de dados em Modo Noarchivelog....
Lembre-se o Site da Oracle é muito rico em informações é sempre bom dar uma espiadinha....Mas se vc não tem muito tempo para pensar e pecisa relembrar  o processo de Backup siga os Passos abaixo :

Obs:(Não Faça locuras rsrsrsr ....Utilize sempre o ambiente de teste antes de ir para Produção)

1-Verificar se o banco de Dados esta No modo Archive Log , temos 2 fromas de verificar esta opcao.

SQL> archive log list;
SQL> select name, log_mode from v$database;

2-Conecte via Rman no Catalago a no Banco de dados alvo no qual deseja ralizar o Backup.

rman catalog user/senha@catalago  target user/senha@alvo

Quick Tip: Caso seu Banco de dados não esteja registrado para o Catalago utilize o seguinte comando:

RMAN> register database;

Quick Tip:Lembre-se para realizar um backup no modo noarchivelog temos que fechar o banco de dados e starta-lo em modo mount.

4-Irei utilizar o Script Abaixo  para realizar  o   Backup:

RMAN> run {
2> shutdown immediate;
3> startup force mount;
5> backup database ;
6> backup spfile;
7> alter database open;
8> }

Quick Tip: Por Padrão quando vc não informa o local onde o backup irá ser armazenado ele é direcionado para Flash Recover Área , é o que vai  acontecer com o o backup realizado através do  comando utilizado no exemplo acima...

O  Rman é a ferramente de backup oficial da oracle e contém varios comandos que ajudam a automatizar o seu backup.
Vale a pena ler a documentação a respeito desta maravilhosa  ferramenta para que os leitores possam adaptar seu backup conforme seu ambiente de trabalaho ou teste.


Obrigado a todos.....