12 Replies Latest reply on Feb 26, 2018 3:33 PM by Jorge Contti

    Recuperar/Levantar base sin backup.

    Jorge Contti

      Hola a todos, otra vez yo preguntando..

       

      Tengo el siguiente problema con un cliente, tuvo problemas su servidor y hay que levantar de nuevo la base de datos en otro servidor.
      El problema es que el ultimo backup echo con expdp que el cliente tiene es de mayo 2017, pero tengo los archivos físicos ( datafiles, controlfiles, redologfiles, etc.) con la fecha de ayer.  Mi consulta es, existe la posibilidad de crear una base nueva y aplicarle los archivos físicos para recuperar toda la información al día de ayer?

       

      Si no estoy tan errado podría decir que tengo un backup "en frio".

       

      Ojala me puedan ayudar!!!

       

      Saludos!

        • 1. Re: Recuperar/Levantar base sin backup.
          L. Fernigrini

          Teniendo TODOS los archivos, no deberías tener problema en poder levantar una copia de la base de datos en otro equipo.

           

          Cuando digo "TODOS" incluye el pfile ( initXXXX.ora) o spfile (spfileXXXX.ora) y archivo de contraseñas (pwdXXXX), los cuales se encuentran en $ORACLE_HOME/database (en Windows) o $ORACLE_HOME/dbs (en Linux / AIX / HPUX / Solaris).

           

          Deberías instalar Oracle (si no se encuentra instalado) y copiar todos los archivos a la misma ubicación.

           

          Luego tendrias que crear el servicio (si es windows) usando oradim. Ejemplo:

           

               oradim -new -sid XXXX  -startmode M

           

          Mas informacion sobre ORADIM aqui :

          https://docs.oracle.com/cd/B19306_01/win.102/b14304/create.htm#NTQRF353

           

          Si podes darme mas informacion sobre version de la DB, si estaba en Archivelog o no, plataforma, etc. etc, mejor.

           

          Por otro lado, expdp no es un backup, es una exportación. Puede servir como medio de recuperación, pero no es lo mismo que tener un backup. Te recomiendo que implementen una política de backup con RMAN.

          1 person found this helpful
          • 2. Re: Recuperar/Levantar base sin backup.
            JuanM

            Hola,

            Podrías usar estos archivos que dices tener e intentar recuperar. Si, el tener los datafiles, controlfiles y redo log files se podría decir que tienes un respaldo en frio. El tema aquí es realmente saber si la copia de los archivos se hizo cuando la base de datos estaba dada de baja y sin problemas en el servidor. De ser así, si es posible recuperar tu base de datos. Solo tienes que tener un server con el mismo endian de sistema operativo, la misma arquitectura, misma version de SO y misma versión de los binarios de base de datos.

             

            Saludos

            • 3. Re: Recuperar/Levantar base sin backup.
              L. Fernigrini

              Asegurate de no MOVER los archivos originales, o dejar una copia en otra ubicación, de forma tal que si algo falla siempre tengas un juego de archivos en correcto estado.

              • 4. Re: Recuperar/Levantar base sin backup.
                Jorge Contti

                Lisandro,

                Estamos hablando de Oracle Database 11g r2, en Windows Server 2008 Standard. No esta en archivelog.

                 

                Hice lo que me dijeron, en el destino instale solamente el motor tratando de seguir la estructura del origen.
                Les dejo una captura para que vean, lo que esta en el circulo rojo sería el origen, lo otro es destino.

                CapturaOracle.JPG

                 

                Si no entendí mal, tendría que copiar el resto de las carpetas faltantes al destino y crear el servicio?

                 

                 

                 

                Desde ya les agradezco muchísimo su tiempo.

                • 5. Re: Recuperar/Levantar base sin backup.
                  L. Fernigrini

                  En el nuevo servidor, tenes que instalar EXACTAMENTE la misma versión de Oracle (incluyendo cualquier patchset o actualización).

                   

                  El paso siguiente sería copiar (no los muevas del Z:, dejalos por las dudas!) la carpeta ORADATA donde se encuentran los datafiles, redo logs y control file, y la carpeta FLASH_RECOVERY_AREA donde se encuentran las copias de control file, backups (no debes tener), redo-logs multiplexados, archive logs (idem), etc..

                   

                  Luego, deberías crear el servicio en Windows con ORADIM en modo MANUAL.

                   

                  Luego, deberías copiar desde la carpeta $ORACLE_HOME\Database los archivos de la instancia que queres levantar (pfile, spfile, orapwd).

                   

                  Luego, probar de levantar el servicio. SI funciona podes pasar el servicio a modo automático.

                   

                  Andá probando y vemos, hace años lo hice y se que funcionó, si puedo en un rato busco si encuentro algún tutorial o guía confiable en Google.

                   

                  Saludos,

                  1 person found this helpful
                  • 7. Re: Recuperar/Levantar base sin backup.
                    L. Fernigrini

                    Este es otra guia, asume que la base de datos origen esta disponible y explica como recrear los controlfiles, etc, es probable que muchos de esos pasos no sean necesarios pero puede ser de utilidad para ver los pasos requeridos:

                     

                    ORACLE - DBA: Clone a database from cold backup.

                    1 person found this helpful
                    • 8. Re: Recuperar/Levantar base sin backup.
                      Jorge Contti

                      Lisandro, disculpa la demora en contestar, tuvimos problemas en otros servidores entro el virus de la moneda encripto todo y estuve el fin de semana con eso ja!

                       

                      Con respecto a este tema, estuve viendo  y renegando un poco, logre llegar hasta este punto:

                      E:\>oradim -NEW -SID TEST3 -STARTMODE MANUAL -PFILE E:\DB\product\11.2.0\admin

                      Instancia creada.

                       

                      luego setie el oracle_sid y me conecte como sysdba, me dice "conectado a una instancia inactiva" a lo cual yo le respondo con un startup, pero me tira el siguiente error que no puedo terminar de resolver:

                      ORA-48108: invalid value given for the diagnostic_dest init.ora parameter

                      ORA-48140: the specified ADR Base directory does not exist [c:\db]

                      ORA-48187: specified directory does not exist

                      OSD-00002: informaci┐n adicional sobre errores

                      O/S-Error: (OS 2) El sistema no puede encontrar el archivo especificado.

                       

                      por lo que estuve viendo el problema esta en mi archivo SPFILETEST3 ,ya que al abrirlo veo que todas las rutas están apuntando al disco "C" cuando tendrian que apuntar al "E", que puedo hacer!?

                      Gracias y saludos!

                      • 9. Re: Recuperar/Levantar base sin backup.
                        L. Fernigrini

                        Hola, respecto a como modificar el archivo SPFILE, el mismo es un binario, por lo que no se puede editar a mano.

                         

                        Tendrias que ejecutar la sentencia:

                         

                        CREATE PFILE FROM SPFILE

                        https://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_6008.htm#SQLRF01308

                         

                        Ahi podrias editar el PFILE para cambiar la ubicacion de los Control Files y todas las carpetas administrativas, de DUMP, etc.

                         

                        Luego renombrar el SPFILE para que al levantar la base de datos tome el PFILE en vez del SPFILE (primero busca el SPFILE, luego el PFILE).

                         

                        Yo había entendido que habias podido copiar los archivos a la misma estructura de carpetas, pero si es otra unidad (E: en vez de C:) vas a tener que hacer unos pasos adicionales, para mover/renombrar los datafiles estan explicados aqui:

                         

                        https://docs.oracle.com/cd/B28359_01/server.111/b28310/dfiles005.htm#ADMIN11434

                         

                        Para los redo log:

                        https://docs.oracle.com/cd/B28359_01/server.111/b28310/onlineredo004.htm#ADMIN11321

                         

                        Cuando termines todo, creat un SPFILE desde el PFILE:

                        CREATE SPFILE FROM PFILE

                         

                        Una vez hecho esto, podes borrar el SPFILE viejo.

                        1 person found this helpful
                        • 10. Re: Recuperar/Levantar base sin backup.
                          Jorge Contti

                          Estimado Lisandro,

                           

                          cuando te consulte el ultimo error, navegando encontré algunas soluciones volví a crear el pfile, intente, renege pero no podía solucionarlo.
                          Pero cuando me diste la ultima respuesta, ahí me di cuenta que me faltaba renombrar los datafiles y redo log. Así que volví a empezar desde 0, siguiendo cada paso que me dijiste y funciono todo a la perfección.

                           

                          Nuevamente me has sido de gran ayuda, muchísimas gracias por tu tiempo, paciencia y sabiduría !!

                           

                          Muchas gracias a ti tambiénJuanM

                          • 12. Re: Recuperar/Levantar base sin backup.
                            Jorge Contti

                            Tuve que recuperar otra y me había trabado, recordé que podía ver el alert así que lo busque en:
                            E:\DB\diag\rdbms\test3\test3\trace\alert_test3.log

                             

                            y me dijo claramente que me había olvidado de renombrar el REDO03.log. Solucioné eso y arranco.

                             

                            Lo dejo comentado por si a alguien le pasa, siempre es bueno ver el alert!