Pular para o conteúdo
  • Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 4 anos, 9 meses atrás por Avatar de José Laurindo ChiappaJosé Laurindo Chiappa.
Visualizando 2 posts - 1 até 2 (de 2 do total)
  • Autor
    Posts
  • #143537
    Avatar de airoospairoosp
    Participante

      Boa tarde,

      Estou estudando no RMAN no servidor Windows 2012 Server com banco 11g R2.

      Criei o script abaixo:

      run
      {
      Backup full do banco de dados
      allocate channel ch1 type disk format ‘R:\backup\rman\backup\bcoteste_df%t_s%s_s%p.rman’;

      backup incremental level 0 tag=”bak_full” database;

      release channel ch1;
      Backup do spfile
      allocate channel ch2 type disk format ‘R:\backup\rman\backup\backup_spfile.rman’;

      backup tag=”bak_spfile” spfile;

      release channel ch2;
      Backup do controlfile
      allocate channel ch3 type disk format ‘R:\backup\rman\backup\ctrlf_%t_s%s_s%p.rman’;

      backup tag=”bak_controfile” current controlfile;

      release channel ch3;
      Força o arquivamento e faz backup dos archives
      allocate channel ch4 type disk format ‘R:\backup\rman\backup\archivelog_%s_%p.rman’;

      sql ‘alter system archive log current’;

      backup tag=”bak_archivelog” archivelog all;

      release channel ch4;
      Fazer a verificação e limpeza
      crosscheck archivelog all;

      delete noprompt expired archivelog all;

      crosscheck backup;

      delete noprompt expired backup;

      delete noprompt obsolete;

      }
      quit

      Os backups foram feitos, mas na execução da linha de comando após o “crosscheck archivelog all” apareceu o erro:

      ORA-00604: ocorreu um erro no nível 1 SQL recursivo
      ORA-01422: a extração exata retorna mais do que o número solicitado de linhas
      ORA-20242: No archived logs in the range specified

      Executando apenas as linhas do crosscheck, aparecem 80 linhas com informações dos arquivos encontrados, isso para cada execução.

      Não consegui entender o erro na linha “delete noprompt expired archivelog all ‘.

      Se alguém tiver alguma dica, agradeço.

      Obrigado.

      Airton

      #143556
      Avatar de José Laurindo ChiappaJosé Laurindo Chiappa
      Moderador

        Blz ? Então, sem desconsiderar a (bem possível!!) questão de BUGs, pra mim (até porque vc Não Mostra a CRÍTICA questão da configuração da RETENTION que vc quer usar!!) acho que vc tá com algum ARCHIVE necessário removido/apagado… Eu recomendaria que, para vc poder fazer o teste de backup full / completo mais facilmente :

        1. APAGUE COMPLETAMENTE os backups que vc tem hoje, usando os DELETE NOPROMPT todos adequados : apague TODOS os backups de banco, de archive, de controlfile, de initfile, tanto backupsets quanto backup copies, enfim, zera tudo
        2. Configure o RETENTION POLICY para Redundancy de 2 ou 3 jogos de backup e FAÇA UM SHUTDOWN IMMEDIATE e um STARTUP desse banco : esse restart do banco vai GARANTIR que foi feito um CHECKPOINT completo em TODOS os seus datafiles, de modo que vc tenha 100% de certeza Absoluta que não há nenhum archive não-backupeado/não localizado (porque foi apagado erradamente devido à má-config de RETENTION e/ou de tipos de backup, o que ME PARECE poder ter ocorrido aí no seu caso)

        3. Configure as opções de AUTOBACKUP todas para ON

        4. Configure as Otimizações de backup para OFF

        5. No seu script de backup, faça um BACKUP DATABASE PLUS ARCHIVELOG na hora de tirar o backup : entre OUTRAS vantagens, isso já archiva o redo corrente pra vc Automaticamente, já backupeia os archives TODOS necessários, certinho….

        6. Faça vários DMLs bem grandes de modo a gerar mais e mais archives entre cada backup, e a cada poucas horas tire um backup diferente, SEMPRE backup full plus archivelog

        7. Na hora de deletar os obsoletos dentro do script, em princípio um DELETE NOPROMPT OBSOLETE; já deveria apagar tanto os backups de archives quanto os de banco – se por bug isso não acontecer, depois vc retesta fazendo DELETEs pra cada tipo de backup, mas isso só se preciso

        8. Depois de ter tirado um backup a mais do que o indicado no RETENTION, confirme que o backup obsoleto de acordo com a política foi Removido, LISTANDO com LIST BACKUP

        ====>>> UMA VEZ tudo isso feito OK, vc COMPROVOU que teu RMAN e teu database estão OK, estudo da política BACKUP COMPLETO TODO DIA tá feito com sucesso…
        PORÉM, não para por aí o estudo do RMAN, essa política é a mais SIMPLÓRIA possível, só é usada por empresas de PEQUENO porte, onde é possível um backup completo a cada noite, por exemplo…. É mais que EVIDENTE que numa Empresa que trabalha 24×7 em grandes volumes de dados isso NEM DE LONGE é viável, é AÍ que estratégias como backup incremental e backup de archives ISOLADOS do backup de banco… Já vi empresas onde devido ao volume é inviável reter em disco mais do que umas POUCAS horas de archive, digamos…
        Para que vc possa estudar/simular aí no seu banco de estudos casos mais complexos desse tipo, são DIVERSAS as configurações e tipos de script que vão ser necessários, é grande DEMAIS pra gente explicar aqui num post de Fórum : pra isso eu recomendo FORTEMENTE que vc adquira e estude os bons livros de RMAN, como os livros de RMAN dos autores Robert G. Freeman e Matthew Hart (há edição para CADA versão do RDBMS, até o 18c iirc, escolha a Edição mais recente/próxima da SUA versão), o “Pro Data Backup and Recovery” de Steven Nelson e o “Oracle RMAN for Absolute Beginners” de Darl Kuhn …

        okdoc ??

        []s

        Chiappa

      Visualizando 2 posts - 1 até 2 (de 2 do total)
      • Você deve fazer login para responder a este tópico.
      plugins premium WordPress