Pular para o conteúdo
  • Este tópico contém 6 respostas, 3 vozes e foi atualizado pela última vez 17 anos atrás por Emersonmartins.
Visualizando 7 posts - 1 até 7 (de 7 do total)
  • Autor
    Posts
  • #85374
    jspaulonci
    Participante

      Bom dia Moçada, fiz um teste caseiro de restore e quero compartilhar com vcs
      Eu simulei a perda de todos os meus controlfiles, datafiles e redo logs online, aí eu fiz o restore normal , primeiro restaurei os controlfiles, depois os datafiles, aí eu montei o banco, criei manualmente os redos log, fiz o recover database e abri a base com resetlogs .
      Todo esse processo eu fiz usando o RMAN e o sqlplus.

      Vocês enchergam alguma falha ? eu deixei algo pra trás ?

      Obs.: Eu uso o RMAN com catalogo, detalhe, eu não precisei setar o DBID do banco pra voltar o controlfile, será que é porque eu tenho somente um banco registrado no catalogo ?

      Obrigado

      João Paulo Spaulonci

      #85377
      Rodrigo Almeida
      Participante

        João,

        Você deletou todos os arquvos do banco de dados mesmo?

        Primeiro, o RMAN não faz backup dos arquivos de REDO LOG, só iria precisar utilizar o SQL*PLUS se quiser realizar um RECOVER DATABASE UNTIL CANCEL, onde ele iria ler o seu CURRENT REDO LOG.

        Segundo, esse backup foi FULL, pois não preciso dos ARCHIVES?

        Terceiro, não estava usando o SPFILE, por isso não fez restore dele?

        Quarto, quando se realiza um recover completo por media recover e é necessário um OPEN RESETLOGS, seus grupos de REDO LOG são criados automaticamente, não precisa criar eles. pois o RESETLOGS internamento no Core do Oracle irá zerar o LOG SEQUENCE e escrever isso nos headers dos datafiles e atualizar o seu controlfile.

        Quinto, sobre se conectar no catálogo de recuperação sem setar o DBID, é porque tu está na mesma máquina com as variáveis de ambiente configuradas, ou seja, tu está recuperando o seu banco de dados TARGET, não é uma nova base em um novo servidor. Se fosse em um novo servidor e uma cópia banco, seria necessário o SET DBID, para informar ao catálogo de recuperação quais os arquivos necessários, deste modo, no seu exemplo, apenas ao se conectar no RMAN com TARGET / CATALOG e blá blá blá… ele já sabe que tu está recuperando o banco de dados target registrado.

        Abraços,
        Rodrigo Almeida

        #85378
        jspaulonci
        Participante

          Bom dia Rodrigo, vou tentar responder tudo pra vc

          Você deletou todos os arquvos do banco de dados mesmo?
          R: Deletei os controlfiles, dbfs, redo logs online,arquivos temporários, não apaguei o spfile pois ele está na minha flash area. Não apaguei nada da flash área

          Primeiro, o RMAN não faz backup dos arquivos de REDO LOG, só iria precisar utilizar o SQL*PLUS se quiser realizar um RECOVER DATABASE UNTIL CANCEL, onde ele iria ler o seu CURRENT REDO LOG.
          R: Eu sabia que o Oracle não faz backup dos redo logs, porem não sabia que ele os cria na opção resetlogs

          Segundo, esse backup foi FULL, pois não preciso dos ARCHIVES?
          R: Sim foi feito full a quente com o rman.

          backup as compressed backupset full database plus archivelog delete input;

          Terceiro, não estava usando o SPFILE, por isso não fez restore dele?
          R: Meu spfile estava na flash area.

          Quarto, quando se realiza um recover completo por media recover e é necessário um OPEN RESETLOGS, seus grupos de REDO LOG são criados automaticamente, não precisa criar eles. pois o RESETLOGS internamento no Core do Oracle irá zerar o LOG SEQUENCE e escrever isso nos headers dos datafiles e atualizar o seu controlfile.
          R Sim…abri com resetlogs

          Quinto, sobre se conectar no catálogo de recuperação sem setar o DBID, é porque tu está na mesma máquina com as variáveis de ambiente configuradas, ou seja, tu está recuperando o seu banco de dados TARGET, não é uma nova base em um novo servidor. Se fosse em um novo servidor e uma cópia banco, seria necessário o SET DBID, para informar ao catálogo de recuperação quais os arquivos necessários, deste modo, no seu exemplo, apenas ao se conectar no RMAN com TARGET / CATALOG e blá blá blá… ele já sabe que tu está recuperando o banco de dados target registrado.
          R: Isso não tinha me vindo na cabeça

          Fico no aguardo

          Obrigado

          João Paulo Spaulonci

          #85383
          Rodrigo Almeida
          Participante

            João,

            Se conseguu contornar todos esses processos, então está conseguindo recuperar eles. Se quiser enfatizar melhor os seus testes, tente realizar um restore e recover em uma nova máquina e instalação, deste modo, tu irá conseguir seguir todos os passos certinhos!

            Se tiver mais dúvidas, posta o passo-a-passo feito por você numerado, porque podemos encurtar ele e conforme as dúvidas vão surgindo, vamos postando algumas soluções.

            Abraços,
            Rodrigo Almeida

            #85385
            jspaulonci
            Participante

              Rodrigo boa tarde, fez ele fez…mas não gostei , ocorreram erros

              C:BANCOSscriptsLOGS>rman target sys/gio2007 catalog=usr_rman/a@rman

              Recovery Manager: Release 10.2.0.3.0 – Production on Thu Feb 19 11:49:44 2009

              Copyright (c) 1982, 2005, Oracle. All rights reserved.

              connected to target database (not started)
              connected to recovery catalog database

              RMAN> set dbid 1055037708;

              executing command: SET DBID
              database name is “ORCL1” and DBID is 1055037708

              RMAN> startup nomount;

              Oracle instance started

              Total System Global Area 838860800 bytes

              Fixed Size 1293384 bytes
              Variable Size 415237048 bytes
              Database Buffers 352321536 bytes
              Redo Buffers 70008832 bytes

              RMAN> restore controlfile from autobackup;

              Starting restore at 19-FEB-09
              allocated channel: ORA_DISK_1
              channel ORA_DISK_1: sid=157 devtype=DISK

              recovery area destination: C:BANCOSORCL1flash_recovery_area
              database name (or database unique name) used for search: ORCL1
              channel ORA_DISK_1: no autobackups found in the recovery area
              channel ORA_DISK_1: looking for autobackup on day: 20090219
              channel ORA_DISK_1: autobackup found: c:bancosbackupscontrolfilecfc-1055037708-20090219-06
              channel ORA_DISK_1: control file restore from autobackup complete
              output filename=C:BANCOSORCL1ORCL1CONTROL01.CTL
              output filename=C:BANCOSORCL1ORCL1CONTROL02.CTL
              output filename=C:BANCOSORCL1ORCL1CONTROL03.CTL
              Finished restore at 19-FEB-09

              RMAN> startup mount;

              database is already started
              database mounted
              released channel: ORA_DISK_1

              RMAN> restore database;

              Starting restore at 19-FEB-09
              Starting implicit crosscheck backup at 19-FEB-09
              allocated channel: ORA_DISK_1
              channel ORA_DISK_1: sid=156 devtype=DISK
              Crosschecked 154 objects
              Finished implicit crosscheck backup at 19-FEB-09

              Starting implicit crosscheck copy at 19-FEB-09
              using channel ORA_DISK_1
              Finished implicit crosscheck copy at 19-FEB-09

              searching for all files in the recovery area
              cataloging files…
              no files cataloged

              using channel ORA_DISK_1

              channel ORA_DISK_1: starting datafile backupset restore
              channel ORA_DISK_1: specifying datafile(s) to restore from backup set
              restoring datafile 00001 to C:BANCOSORCL1ORCL1SYSTEM01.DBF
              restoring datafile 00002 to C:BANCOSORCL1ORCL1UNDO_TBS_01.DBF
              restoring datafile 00003 to C:BANCOSORCL1ORCL1SYSAUX01.DBF
              restoring datafile 00004 to C:BANCOSORCL1ORCL1IDX_01.DBF
              restoring datafile 00005 to C:BANCOSORCL1ORCL1PAC1_01
              restoring datafile 00006 to C:BANCOSORCL1ORCL1USERS2.DBF
              restoring datafile 00007 to C:BANCOSORCL1ORCL1IDX_02.DBF
              restoring datafile 00008 to C:BANCOSORCL1ORCL1IDX_03.DBF
              restoring datafile 00009 to C:BANCOSORCL1ORCL1DADOS_01.DBF
              restoring datafile 00010 to C:BANCOSORCL1ORCL1DADOS_02.DBF
              restoring datafile 00011 to C:BANCOSORCL1ORCL1DADOS_03.DBF
              channel ORA_DISK_1: reading from backup piece C:BANCOSBACKUPSBKP_DB_ORCL1_S_381_P_1_T_679232069
              channel ORA_DISK_1: restored backup piece 1
              piece handle=C:BANCOSBACKUPSBKP_DB_ORCL1_S_381_P_1_T_679232069 tag=TAG20090219T113429
              channel ORA_DISK_1: restore complete, elapsed time: 00:03:17
              Finished restore at 19-FEB-09

              RMAN>recover database;

              Starting recover at 19-FEB-09
              using channel ORA_DISK_1

              starting media recovery

              archive log thread 1 sequence 3 is already on disk as file C:ORACLEPRODUCT10.2.0DB_1DATABASEUSE_DB_RECOVERY_FILE_DESTARC00003_0679230665.00
              1
              archive log filename=C:ORACLEPRODUCT10.2.0DB_1DATABASEUSE_DB_RECOVERY_FILE_DESTARC00003_0679230665.001 thread=1 sequence=3
              unable to find archive log
              archive log thread=1 sequence=4
              RMAN-00571: ===========================================================
              RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
              RMAN-00571: ===========================================================
              RMAN-03002: failure of recover command at 02/19/2009 11:55:26
              RMAN-06054: media recovery requesting unknown log: thread 1 seq 4 lowscn 1125040326233

              RMAN> sql ‘alter database open resetlogs’;

              sql statement: alter database open resetlogs
              new incarnation of database registered in recovery catalog
              starting full resync of recovery catalog
              full resync complete

              RMAN> sql ‘alter database open resetlogs’;

              sql statement: alter database open resetlogs
              RMAN-00571: ===========================================================
              RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
              RMAN-00571: ===========================================================
              RMAN-03009: failure of sql command on default channel at 02/19/2009 12:28:15
              RMAN-11003: failure during parse/execution of SQL statement: alter database open resetlogs
              ORA-01531: a database already open by the instance

              RMAN>

              #85393
              Rodrigo Almeida
              Participante

                João,

                Os erros que ocorreram são porque as ações impostas ao RMAN já tinham sido realizado, por isso ele retornou erro para você. Por exemplo:

                [b]
                RMAN-03002: failure of recover command at 02/19/2009 11:55:26
                RMAN-06054: media recovery requesting unknown log: thread 1 seq 4 lowscn 1125040326233
                [/b]

                Nesse ponto ele não conseguiu identificar a LOG SEQUENCE 4 da sua base para efetuar a recuperação, ou por ter perdido ou porque estava no REDO LOG.

                [b]
                RMAN> sql ‘alter database open resetlogs’;

                sql statement: alter database open resetlogs
                new incarnation of database registered in recovery catalog
                starting full resync of recovery catalog
                full resync complete
                [/b]

                Nesse ponto, como ocorreu um MEDIA RECOVERY, necessariamente deverá abrir com RESETLOGS (zera o LOG SEQUENCE) e também, como não é a primeira vez que está recuperando o banco de dados, será gerado uma nova incarnação, ou seja, seu banco de dados morreu e vai nascer novamente, por isso a incarnação!

                [b]
                RMAN-03009: failure of sql command on default channel at 02/19/2009 12:28:15
                RMAN-11003: failure during parse/execution of SQL statement: alter database open resetlogs
                ORA-01531: a database already open by the instance
                [/b]

                O seu banco de dados já estava aberto, quando ele criou uma nova incarnação com o mesmo ALTER DATABASE OPEN RESETLOGS, seu banco de dados já estava disponível, e como emitiu o comando novamente, ele reclamou, pq automaticamente o Oracle vê que não não feito nenhuma recuperação e pelo simples fato do banco de dados estar no ar com todos os seus datafiles ONLINE.

                Aparentemente João! Os passos que tu realizo foram feitos sem problemas. Agora, faça uns SWITCHS LOGS para gerar bastante archives, depois um backup FULL ONLINE ou COLD, e deleta o banco de dados novamente, e no momento da recuperação faça o script abaixo:

                run {
                startup nomount;
                restore spfile from autobackup;
                restore controlfile from autobackup;
                alter database mount;
                restore database;
                recover database;
                alter database open resetlogs;
                }

                Veja se está fazendo AUTOBACKUP do SPFILE e CONTROLFILE. E não esqueça de fazer backup dos archives. E veja se terá errors.

                Abraços,
                Rodrigo Almeida

                #85462
                Emersonmartins
                Participante

                  Amigos Estou vendo essa discução porem nunca fiz um teste como esse de backup e recovery..

                  Onde posso conseguir essa ferramenta!

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