Social Icons

Mostrando postagens com marcador RMAN. Mostrar todas as postagens
Mostrando postagens com marcador RMAN. Mostrar todas as postagens

19 de set. de 2014

Restauração de tabelas com o RMAN até o Oracle 11G


   

Olá pessoal,
 
     No artigo de hoje vou mostrar como recuperar dados de uma ou mais tabelas de um Banco de Dados Oracle, com o RMAN, sem tirá-lo do ar. Este processo de recuperação é simples no Oracle 12c, mas dá bastante trabalho no Oracle até a versão 11G! Como ainda administro BDs na versão 11G e precisei fazer uma recuperação com essas características recentemente, aproveito para compartilhar o roteiro aqui no blog.

30 de jul. de 2013

Recuperando-se de falhas com o Data Recovery Advisor


Olá pessoal,

     No artigo de hoje vou apresentar o Data Recovery Advisor (DRA), uma ferramenta que passou a existir na versão 11 do Oracle Database e que pouca gente conhece, mas que é muito útil para efetuar uma rápida detecção, análise e reparo de falhas no Banco de Dados. Essas falhas, são na grande maioria, corrompimento lógico ou físico de dados.

26 de out. de 2011

Recuperação com RMAN usando banco de dados auxiliar


Olá Pessoal,
  
     No artigo de hoje irei apresentar um método para recuperação de dados no Oracle Database 10G, utilizando a ferramenta predileta dos DBAs para Backup and Recovery: o RMAN (Recovery Manager).
    
     O método que irei apresentar neste artigo, é muito útil para recuperação em BDs de produção, pois permite recuperar os dados desejados em um BD auxiliar e posteriormente exportá-los  p/ o BD de produção, sem a necessidade de tirá-lo do ar. O BD de produção permanece ONLINE durante todo o processo de recuperação, o que não é possível em muitos cenários sem a utilização de um BD auxiliar!
    
     Outro ponto importante deste método de recuperação, é que ele permite selecionar o ponto no tempo dos dados que você precisa restaurar, ou seja, ele permite, por exemplo, que você restaure os dados de 1 semana atrás de uma ou mais tabelas! 
       
      O BD auxiliar, nesse contexto, pode ser entendido como um BD temporário que será utilizado para:
           - Recuperar os dados de somente um Tablespace (ao invés do BD inteiro);
           - Permitir que sejam selecionados os objetos (Ex.: tabelas e packages) que precisam ser recuperados e posteriormente, exportá-los p/ o BD de produção.
    
      O roteiro do processo de recuperação utilizando Tablespace Point in Time Recovery, que será apresentado neste artigo, eu criei no mês passado (09/2011) utilizando como base o artigo (que me ajudou muito) RMAN – Tablespace Point in Time Recovery do Blog do Bruno Murassaki. No artigo do Murassaki, ele propõe criar o BD auxiliar na mesma máquina do BD de produção. Para diminuir riscos de segurança, eu prefiro criar o BD auxiliar em uma máquina separada e é esta a principal diferença entre o artigo dele e o meu. Outra diferença, é que proponho a criação do BD auxiliar utilizando o DBCA (Database Configuration Assistant).
    
     O roteiro de recuperação será composto de 3 fases:
          1- Criação de um BD auxiliar, em uma máquina diferente da máquina do BD de produção;
          2- Recuperação dos dados de 1 semana atrás (19/10/2011 12:30h), de um tablespace chamado TSEXEMPLO, de um BD de produção chamado PROD;
          3- Exportação dos dados desejados do BD auxiliar p/ o BD de produção.
    

------------------------------------------------------------------------
ROTEIRO PASSO-A-PASSO
------------------------------------------------------------------------

Termos e comandos utilizados neste roteiro:
    a) BD TARGET: neste cenário será o BD de produção.
    b) BD AUXILIAR: BD temporário em que os dados serão recuperados p/ posteriormente serem exportados p/ o BD de produção. O BD auxiliar deve ter o mesmo nome (SID) do BD de produção.

Para utilizar este roteiro é necessário ter conhecimentos prévios de RMAN e de administração de Oracle Database, pois ele não apresenta todos os comandos necessários para realizar cada passo, como por exemplo, como instalar o BD usando DBCA e como iniciar um BD em modo NOMOUNT. Também é necessário estar atento para substituir os valores necessários dos exemplos de acordo com a sua necessidade.


Passo 1- Criação do BD auxiliar:
    
     Criar BD auxiliar em uma máquina de testes, separada do BD target, via DBCA, utilizando como template o BD target. Durante o processo de instalação é necessário configurar os seguintes parâmetros de inicialização:

    - DB_FILES: Configure para o mesmo valor do Bd target.
          Ex.: DB_FILES = 1000

    - DB_FILE_NAME_CONVERT: Configure para conter o valor do diretório de datafiles do BD target e um valor correspondente ao mesmo diretório p/ o BD auxiliar. Todos os diretórios de datafiles do bd target devem estar contidos neste parâmetro. Antes de configurar este parâmetro crie no bd auxiliar os diretórios correspondentes.
           Ex.:    DB_FILE_NAME_CONVERT = '/oradata/prod','/oradata/aux','/oraind/prod/','/oraind/aux'
       
    - LOG_FILE_NAME_CONVERT:  Configure p/ conter o valor do diretório de logfiles do bd target e um valor correspondente ao mesmo diretório p/ o BD auxiliar. Todos os diretórios de logfiles do bd target devem estar contidos neste parâmetro. Antes de configurar este parâmetro, crie no BD auxiliar os diretórios correspondentes.
           Ex.: LOG_FILE_NAME_CONVERT='/oralog/prod/log1','/oralog/aux/log1'
           
    - SGA_TARGET, SGA_MAX_SIZE e PGA_AGGREGATE_TARGET: Configure para conter um valor que possa ser configurado na máquina de testes, de acordo com a qtde. de RAM disponível.
   
   
Passo 2- Recuperação dos dados desejados utilizando o BD auxiliar:
     
     a) Copie p/ a máquina do BD auxiliar a pasta contendo todas as peças de backup e archive logs (se existir) do BD target;

     b) Na máquina do BD auxiliar acrescente no arquivo tnsnames.ora um álias p/ a instância do BD target. Nome sugerido: PROD.
    
     c) Na máquina do BD auxiliar, inicie o BD auxiliar em modo NOMOUNT:
       
     d) Na máquina do BD auxiliar, conecte-se no RMAN referenciando o BD target e o bd auxiliar:
            Ex.:   export ORACLE_SID=bd_auxiliar
                     rman target sys/XXX@bd_target auxiliary sys/YYY

    e) No prompt de comandos do RMAN, execute o restore e recover de um controlfile do BD target no BD auxiliar e monte o BD auxiliar (que também será chamado de BD clone):
       Ex.:
             run{
                   set until time "to_date('2011-10-19-12:30:00','yyyy-mm-dd-hh24:mi:ss')";
                   restore clone controlfile;
                   sql clone 'alter database mount clone database';
                   sql 'alter system archive log current';
                   sql 'begin dbms_backup_restore.AutoBackupFlag(FALSE); end;';
             }
       
     f) Execute o restore e recover dos principais datafiles (system, sysaux e undo) do BD target e do(s) datafile(s) correspondente(s) ao tablespace que será recuperado. Para este passo será necessário consultar no BD target o número do(s) datafile(s) desejado(s), através da consulta  abaixo:
              select file_id from DBA_DATA_FILES where TABLESPACE_NAME = 'TSEXEMPLO';

      Depois execute no prompt do RMAN, o script:

        RUN{
            set until time "to_date('2011-10-19-12:30:00','yyyy-mm-dd-hh24:mi:ss')";
            set newname for datafile 1 to "/oradata/aux/system01.dbf";
            set newname for datafile 2 to "/oradata/aux/undotbs01.dbf";
            set newname for datafile 3 to "/oradata/aux/aux01.dbf";
            set newname for datafile 211 to "/oradata/aux/exemplo.dbf";
            switch clone tempfile all;
            restore clone datafile 1, 2, 3, 211;
            switch clone datafile all;
            sql clone "alter database datafile 1 online";
            sql clone "alter database datafile 2 online";
            sql clone "alter database datafile 3 online";   
            sql clone "alter database datafile 211 online";


          recover clone database tablespace "TSEXEMPLO", "SYSAUX", "SYSTEM", "UNDOTBS1" delete archivelog;
           alter clone database open resetlogs;
           sql clone "create tablespace temp datafile '/oradata/aux/temp01.dbf' size 500K";
         }
     
   
Passo 3- Exportação dos dados desejados, do BD auxiliar para o BD de produção:
     
     a) Na máquina do BD auxiliar, execute um export convencional (Datapump não irá funcionar) do(s) schema(s) referente(s) ao tablespace recuperado:
           Ex.: exp userid sys/XXX as sysdba file=file.dmp log=file.log owner=YYY
             Obs.: Substitua XXX pela senha do usuário SYS no Bd auxiliar e YYY pelo nome do usuário que vc precisa recuperar os dados
      
     b) Na máquina do BD target, apague o(s) objeto(s) que vc irá recuperar:
           Ex.: DROP TABLE SCHEMA.TABLE_NAME;
   
     c) Na máquina do BD target copie o dump gerado no item a) deste passo e faça um import convencional dos dados desejados:
           Ex.: export ORACLE_SID=bd_target
                  imp userid =sys/XXX as sysdba file=file.dmp log=file.log full=y
           Obs.: Substitua XXX pela senha do usuário sys
   
     d) Pronto, agora é só conferir se os dados foram recuperados com sucesso!


     Para mais informações sobre  RMAN Tablespace Point-in-Time Recovery, consulte a documentação oficial da Oracle no link:
            http://download.oracle.com/docs/cd/B19306_01/backup.102/b14191/rcmtspit.htm.

Por hoje é só!


[]s

Referências:

9 de abr. de 2011

Recuperando dados com o RMAN utilizando Pontos de Restauração


Olá pessoal,

     No artigo de hoje irei demonstrar um recurso muito útil e que sempre demonstro nas aulas dos treinamentos oficiais Oracle Database Administration Workshop II, que é como recuperar dados com o RMAN utilizando Pontos de Restauração.

     Um ponto de restauração pode ser entendido como um apelido para um SCN (System Change Number) ou momento específico do Banco de Dados (BD). Ao criar um ponto de restauração, podemos posteriormente restaurar o estado do BD para o momento em que ele (o ponto de restauração) foi criado. Isso permite voltar o BD no tempo para refletir um estado anterior, ou seja, se às 10h de hoje criarmos um ponto de restauração no BD e às 12h apagarmos dados de 1 tabela, podemos posteriormente recuperar esses dados voltando o BD para o momento em que o ponto de restauração foi criado, pois neste momento os dados ainda existiam na tabela. Este procedimento pode ser útil para executar scripts de atualizações de sistemas. Neste caso, se algo de errado acontecer ao executar os scripts, você poderá voltar o estado anterior do BD e recomeçar a atualização!
  
     O ponto de restauração é armazenado no arquivo de controle e pode ser utilizado para restaurar dados por meio de Flashback (FLASHBACK DATABASE e FLASHBACK TABLEou Backups (RESTORE e RECOVER DATABASE).
       
     Para demonstrar o recurso, executaremos abaixo um passo-a-passo, onde criaremos um ponto de restauração chamado teste e faremos em seguida um backup do BD. Depois, apagaremos dados de uma tabela e posteriormente faremos uma recuperação desses dados, utilizando os comandos RESTORE e RECOVER, através do RMAN.

--------------------------------------------------------------------------
    Para iniciar o passo-a-passo abaixo, é necessário:
         1-  Conectar-se previamente no Banco de Dados desejado, através do SQL Plus ou outra ferramenta compatível, 
com um usuário que tenha o privilégio SYSDBA nos passos 1, 2, 3, 5, 6, 7, 8 e 10 ;
         2- Conectar-se no RMAN em um BD target e opcionalmente em um BD catálogo do RMAN nos passos 4 e 9; 
         3- Ter instalado no BD o schema HR. Se o BD não tiver o schema HR e você precisar de orientação para instalá-lo, 
--------------------------------------------------------------------------


------------------------------------------------------------------------
PASSO-A-PASSO 
------------------------------------------------------------------------

     Passo 1: Criando a tabela EMP2 (que será posteriormente apagada e restaurada )
          SQL> CREATE TABLE HR.EMP2 AS SELECT * FROM HR.EMPLOYEES;

     Passo 2: Verificando se a tabela EMP2 foi criada no passo anterior:
           SQL> SELECT COUNT(1) FROM HR.EMP2;
   
           Resultado: Deverá retornar um valor maior que zero (o normal é que ela retorne o valor 107).
 
     Passo 3: Criando o ponto de restauração (chamado teste):
           SQL> create restore point teste;

     Passo 4: Criando um backup dos dados:
             Neste passo criaremos um backup incremental nível 0, que irá fazer um backup completo de todos os dados do BD. Para efetuar o backup de acordo com o roteiro deste passo-a-passo, é necessário que o BD esteja configurado para gerar archive logs (ver artigo Configurando Bancos de Dados para gerar Archive Logs).
            RMAN> backup incremental level 0 database;

             Obs.: O backup irá conter os dados da tabela EMP2 que serão apagados no próximo passo para possibilitar o teste de restauração e recuperação no Passo 9:

     Passo 5: Apagando os dados da tabela EMP2:
            SQL> TRUNCATE TABLE HR.EMP2;

     Passo 6: Verificando se os dados da tabela EMP2 foram apagados:
            SQL> SELECT COUNT(1) FROM HR.EMP2;
    
             Resultado: Deverá retornar o valor zero.

     Passo 7: Efetuando um shutdown no BD para iniciar a restauração:
             SQL> shutdown immediate;
    
     Passo 8: Startando o BD em estado mount para iniciar a restauração:
             SQL> startup mount;

     Passo 9: Restaurando os dados e abrindo o BD:     
              RMAN> restore database until restore point teste;
              RMAN> recover database until restore point teste;
              RMAN> alter database open resetlogs;

     Passo 10: Verificando se os dados foram restaurados com sucesso:             
              SQL> SELECT COUNT(1) FROM HR.EMP2;
   
      RESULTADO FINAL:
              Se a restauração dos dados ocorrer sem problemas, o retorno do passo 10 será novamente um valor maior que zero, ou seja, os dados da tabela EMP2 que foram apagados no Passo 5 foram restaurados com sucesso.
     

CONCLUSÃO:
       Utilizar um ponto de restauração é um método bastante prático e preciso para restaurar o BD para um estado prévio, caso ocorram falhas ou atualizações indesejadas no BD. Recomendo sempre que possível, criar pontos de restauração seguidos de um backup do BD, antes de efetuar grandes atualizações que possam comprometer a integridade ou consistência dos dados.
 
  
Referências:
    - Curso oficial da Oracle: Oracle Database 10G Administration Workshop II.

2 de mar. de 2011

Conceitos sobre Backups com o RMAN


  
    Pessoal, o objetivo deste artigo é apenas comentar sobre as principais características e recursos do o Oracle Recovery Manager (RMAN), uma ferramenta introduzida no Oracle Database desde a versão 8, que é muito utilizada pelos DBA´s e que tem evoluído bastante a cada nova versão.
   
    Antes de continuar comentando mais detalhes sobre o RMAN, acho importante apresentar primeiro os principais métodos de backups que podem ser realizados em um BD Oracle:
  
        - Backups gerenciados pelo usuário:
            Backups realizados pelo usuário (normalmente um DBA) consistem em simplesmente copiar os arquivos de dados para um lugar seguro (disco, tape etc), que possibilite uma posterior restauração, se necessário. A cópia pode ser realizada manualmente através de um prompt de comandos do Sistema Operacional (SO) ou através de scripts/softwares que automatizam o processo de cópia dos arquivos.
  
        - Exports/Imports:
            Cópias lógicas de todos os dados ou parte dos dados de um BD Oracle, realizadas por utilitários Oracle (Export/Import convencional ou Data Pump) que geram um arquivo chamado dump. O dump pode ser utilizado posteriormente para recuperação (através de Imports), quando necessário. Por não realizar um backup físico dos dados, o dump não é considerado um método de "backup completo", mas sim um método adicional ou complementar, para diminuir riscos de perdas de dados ou agilizar a recuperação de dados em algumas (poucas) situações.

        - Backups gerenciados pelo RMAN:
            A principal diferença entre os Backups gerenciados pelo RMAN e os outros métodos citados é que o RMAN possui inúmeros recursos e configurações, que tornam este método o mais poderoso para backupear BD´s Oracle. Por isso, acredito eu, é o mais recomendado pela Oracle e o mais utilizado pelos DBA´s.
       
    Esta série de artigos irá abordar os principais conceitos e características do método Backups gerenciados pelo RMANRMAN é um utilitário Oracle, independente de SO, que pode ser utilizado para gerenciar e efetuar as operações de backup, restauração e recuperação de dados em BD´s Oracle. Suas principais características (até o Oracle 10G) são:
        - Oferece opções para efetuar backup do BD inteiro ou somente tablespaces e/ou datafiles.
        - Permite realizar backup de control files e archive logs;
        - Permite compactar backups;
        - Permite realizar backups incrementais;
        - Permite a execução de scripts para executar e combinar tarefas de backup ou recovery;
        - Permite recuperar o BD em um determinado estado anterior no tempo;
        - Permite recuperar somente os blocos de dados corrompidos, o que resulta em uma recuperação extremamente rápida;
        - Permite integração com software de mídia tape de terceiros para gravar os backups diretamente nos tapes (dispositivos de alta capacidade de armazenamento);
        - Armazenamento de informações sobre os backups em um repositório (catálogo de dados) no próprio BD Oracle;
        - Geração de relatórios e listas de informações sobre os backups efetuados (que constam no catálogo de dados);
        - Suporte para recursos avançados, tais como processamento paralelo, para otimizar a performance de backups e restores.
        - Permite duplicar Bd´s para criar clones de BD´s, que podem, por exemplo, serem utilizados para ambientes de testes e desenvolvimento;
        - Permite executar testes para verificar se backups podem ser restaurados com sucesso.
        - Permite migrar datafiles de diferentes plataformas de Sistema Operacional;
                                                            
  
    Dentre os principais componentes do RMAN podemos citar (sem considerar ordem de importância):

         1- A interface gráfica web:
             Conhecida como Oracle Enterprise Manager, é uma ferramenta web que permite se conectar ao BD e utilizar entre inúmeras funcionalidades, as principais funcionalidades do RMAN.



         2- O utilitário de linha de comandos:
             Interface principal de interação entre o usuário e o RMAN que permite utilizar todos os recursos e funcionalidades do RMAN.



         3- O repositório do RMAN:
             Local de armazenamento das informações sobre os backups dos Bd´s que são backupeados (bd´s target). Essas informações podem ser armazenadas em 2 locais: no Control File ou no catálogo de dados do RMAN. O catálogo é um conjunto de objetos opcionais (tabelas, visões e outros objetos) que podem ser criados no Bd Oracle para armazenar as informações de backup e de recuperação. Por padrão estas informações são armazenadas no Control File do BD, mas a Oracle recomenda que elas sejam armazenadas no catálogo para possibilitar a utilização de todos os recursos do RMAN e centralizar as informações de backups de múltiplos BD´s em um único lugar.
             No catálogo podemos consultar informações tais como: status (sucesso ou falha) dos backups, nomes ou identificadores dos datafiles, control files, archive logs, tablespaces e outros que foram backupeados etc.
  
        4- Os scripts e comandos do RMAN:
            Os comandos do RMAN permitem realizar diversas ações para facilitar a execução de backups e restaurações do BD. Estes comandos, organizados logicamente em scripts, podem ser armazenados no catálogo e podem ser reutilizados para múltiplos backups.
           
         5- Conectividade com mídia tape:
             O RMAN fornece uma API (Application :rogram Interface) chamada MML (Media Management Layer), que permite interagir com tape hardware de terceiros para gravar os dados dos backups diretamente nos tapes (ao invés de gravá-los em disco).


     Bom pessoal, por hoje é só!



Referências:  
    - Material do curso oficial da Oracle: Oracle Database 10G Administration Workshop II.  
    - Guia de estudos Sybex: OCP: Oracle 10g Administration II
  

[]s
 

LINKS ÚTEIS

Total de visualizações de página

Seguidores

Meu One Drive (antigo Sky Drive)