script restaurar respaldo respaldar recuperaciĆ³n para developer datos datafile con 11g sql oracle backup oracle10g rman

sql - restaurar - restore datafile rman



Copia de seguridad/restauraciĆ³n de la base de datos para Oracle 10g prueba usando sqlplus o rman (5)

Puede usar una función en Oracle llamada Flashback que le permite crear un punto de restauración, al cual puede volver fácilmente cuando haya realizado la prueba.

Citado del sitio,

Flashback Database es como un "botón de rebobinado" para su base de datos. Proporciona recuperación de puntos en la base de datos en el tiempo sin requerir que se restaure primero una copia de seguridad de la base de datos. Cuando elimina el tiempo que lleva restaurar una copia de seguridad de la base de datos desde la cinta, la recuperación de un punto en la base de datos es rápida.

Usando Oracle 10g con nuestro servidor de prueba, ¿cuál es la forma más eficiente / fácil de hacer una copia de seguridad y restaurar una base de datos a un punto estático, suponiendo que siempre quiere volver al punto dado una vez que se ha creado una copia de seguridad?

Un caso de uso de muestra sería el siguiente

  1. instalar y configurar todo el software
  2. Modificar datos en el punto de prueba base
  3. tomar una copia de seguridad de alguna manera (esto es parte de la pregunta, cómo hacerlo)
  4. hacer pruebas
  5. volver al estado del paso 3 (restaurar de nuevo al punto de copia de seguridad, esta es la otra mitad de la pregunta)

De manera óptima, esto se completará a través de sqlplus o rman o algún otro método de secuencias de comandos.


Si está utilizando un sistema de archivos que admita instantáneas de copia en escritura, puede configurar la base de datos al estado que desee. Luego apague todo y tome una instantánea del sistema de archivos. Luego realice sus pruebas y cuando esté listo para comenzar de nuevo, puede deshacer la captura. Esto podría ser más simple que otras opciones, suponiendo que tiene un sistema de archivos que admite instantáneas.


Desde mi experiencia, importar / exportar es probablemente el camino a seguir. Exportar crea una instantánea lógica de su base de datos por lo que no la encontrará útil para grandes bases de datos o exigentes requisitos de rendimiento. Sin embargo, funciona muy bien para hacer instantáneas y otras cosas para usar en varias máquinas.

Lo usé en un proyecto de rieles para obtener una instantánea prod que pudimos intercambiar entre desarrolladores para pruebas de integración e hicimos el trabajo dentro de los guiones de rake. Escribimos un pequeño script sqlplus que destruyó el DB e importó el archivo de volcado en la parte superior.

Algunos artículos que quizás desee verificar: OraFAQ Cheatsheet Oracle Wiki

A Oracle aparentemente no le gusta imp / exp más a favor de la bomba de datos , cuando utilizamos la bomba de datos necesitábamos cosas que no podíamos tener (es decir, privilegios de SYSDBA que no podíamos obtener en un entorno compartido). Así que échale un vistazo, pero no te desanimes si la bomba de datos no es tu bolso, el viejo imp / exp todavía está allí :)

No puedo recomendar a RMAN para este tipo de cosas porque RMAN requiere mucha configuración y necesitará configuración en la base de datos (también tiene su propio catálogo de bases de datos para copias de seguridad, que es un dolor en el proverbial para una restauración de metal desnudo).


La solución @Michael Ridley es perfectamente programable y funcionará con cualquier versión de Oracle.

Esto es exactamente lo que hago, tengo un script que se ejecuta semanalmente para

  1. Revertir el sistema de archivos
  2. Aplicar registros de archivo de producción
  3. Tomar una nueva instantánea de FS "Pre-Data-Masking"
  4. Restablecer registros
  5. Aplicar máscara de datos de "preproducción".
  6. Tome la nueva instantánea "Post-Data-Masking" (permite la reversión para publicar datos enmascarados)
  7. Abrir base de datos

Esto nos permite mantener nuestras bases de datos de desarrollo cerca de nuestra base de datos de producción.

Para hacer esto uso ZFS.

Este método también se puede usar para sus aplicaciones, o incluso para todo su "entorno" (por ejemplo, podría "deshacer" todo su entorno con un solo comando (con guiones).

Sin embargo, si está ejecutando 10g, lo primero que probablemente quiera investigar es Flashback, ya que está integrado en la base de datos.


No necesita realizar una copia de seguridad en su tiempo base. Simplemente habilite la base de datos de flashbacks, cree un punto de restauración garantizado, ejecute sus pruebas y retroceda al punto de restauración creado previamente.

Los pasos para esto serían:

  1. Inicie la instancia en modo de montaje.

    arranque de fuerza de arranque;

  2. Crea el punto de restauración.

    crear el punto de restauración before_test garantizar la base de datos de flashback;

  3. Abra la base de datos.

    alterar la base de datos abierta;

  4. Ejecute sus pruebas.
  5. Apagar y montar la instancia.

    cierre inmediato; montaje de inicio;

  6. Retroceso al punto de restauración.

    flashback database para restaurar el punto before_test;

  7. Abra la base de datos.

    alterar la base de datos abierta;