logo
MyWebStudies - Página de inicio
INGRESAR

REGISTRARSE
Buscador

Ejemplos Backup incrementales

Selecciona el idioma :

Este video solo está disponible para los alumnos que han adquirido el curso

Ejemplos Backup incrementales


Para este ejemplo, he preparado de antes unos scripts que nos ayudarán con algunas acciones que vamos a ejecutar en este ejemplo. El primero de ellos es el script GENERAR.

Este script va a realizar algunas acciones. Primero va a hacer un DROP TABLE de la tabla PRUEBA1. Lógicamente hemos creado esta tabla antes, caso contrario nos daría un error al ejecutar el script porque no encontraria la tabla en la base de datos.

Después, va a crear una tabla con nombre PRUEBA1, con dos columnas. La primera de tipo autoincremental, que la vamos a llamar código. Aquí es bueno señalar que los tipos de datos autoincrementales solo están disponible a partir de la versión 12 de Oracle. Y la segunda columna de la tabla, datos, que va a ser de tipo VARCHAR de hasta 100 caracteres. Esta tabla la hemos puesto en la tablespace NOMBRES, que es una tablespace que ya hemos creado en videos anteriores.

Siguiendo con el script, posteriormente va a insertar una fila. Fijémonos en que no se le ha asignado valor alguno a la columna código, y es que no es necesario, al ser de tipo autoincremental, Oracle va a ir rellenándola con valores secuenciales.

Más abajo, estas líneas de código sql lo que hacen es, por 15 veces, insertar en la tabla, lo que ya tenemos en la tabla. Esto daría como resultado, que se rellenarian miles de registros de forma automática. Y bueno, también va a hacer un commit, o sea, validar estas transacciónes que se generan aquí.

Esto es básicamente lo que hace este script, elimina la tabla PRUEBA1, la vuelve a crear e inserta miles de valores en ella. Vayamos a esta terminal, donde estamos dentro del sqlplus y ejecutemos el script generar.

Si hacemos un:

  • SELECT COUNT(*) FROM PRUEBA1

Vemos que se han insertado más de 65 mil filas. Recordemos que para hacer backups incrementales, lo primero que debemos hacer es un backup incremental de level cero, que no es más que un full backup pero con una marca. Vámonos a esta terminal, donde ya estamos dentro de RMAN.

Para hacer un backup incremental de level cero, debemos escribir el comando:

  • BACKUP INCREMENTAL LEVEL 0 DATABASE

Y comienza el proceso de backup de la misma forma que ya hemos visto. Se informa que se está usando como target el fichero de control de la base de datos, también nos muestra el CHANEL que está utilizando. También lista los archivos que va a copiar, etc. Vemos que toma algo de tiempo, y es que estamos haciendo un full backup de toda la base de datos.

Aquí observamos que crea la piece, nos muestra por supuesto, el nombre absoluto de ella. Y por último se dispone a hacer el backup del SPFILE y el fichero de control. En resumen, no cambia aparentemente nada la forma en que hace un backup incremental de level cero, a lo que hace cuando hacemos un full back digamos, normal.

Una vez que RMAN termine de hacer el backup, hagamos un LIST BACKUP, para mostrar los backups que tenemos en la base de datos.

Vemos que el último backup que tengo es el número 43, los estudiantes pueden tener diferentes cantidades de backup, dependiendo de los ejemplos que hayan hecho y tal. En mi caso el último es el 43, que tiene un tamaño de. 10.2 megas, pero se trata del full backup del SPFILE y el fichero de control.

Anterior a este, tenemos el backup número 42, podemos ver que es de tipo incremental de level cero y tiene un tamaño de 1.73 gigas. Obviamente este tamalo va a variar en dependencia la base de datos, la arquitectura, la cantidad de operaciones que maneje la base de datos, etc. En mi caso, el tamaño es de 1.73 gigas.

Después de tener un backup incremental de level cero, podríamos hacer backups diferenciales, recordar el video anterior, donde explicamos que a partir de un backup incremental de level cero, podríamos después ir creando backups diferenciales y eventualmente backups acumulativos. Pues hagamos un backup diferencial.

Para que tenga impacto el ejemplo, es necesario hacer algunos cambios en la base de datos, como pudiera ser insertar más filas a la tabla PRUEBA1, de esta forma tiene algo nuevo que rescatar para el backup, o sea, habrian transacciónes nuevas en comparación con el backup anterior.

Para ello nos vamos a auxiliar de un script, que ya he creado de antes. Este script lo he llamado EXTENDER y lo que va a hacer es insertar en la tabla PRUEBA1, los valores que ya tiene en la tabla, es decir, va a duplicar el número de registros de la tabla.

Para ejecutarlo, nos vamos a la terminal donde estamos dentro del sqlplus y escribimos:

  • extender

Presionamos Intro, y vemos que se ha ejecutado el script.

Si hacemos un:

  • SELECT COUNT(*) FROM PRUEBA1

Ahora tenemos en la tabla más de 130 mil filas.

Lo que vamos a hacer a continuación, es un backup de tipo diferencial, o sea, un backup que va a guardar sólo los bloques modificados desde el último backup incremental que hayamos hecho, que en nuestro caso es unl backup incremental de level cero.

Vamos a la terminal donde estamos conectados a la base de datos a través de RMAN y escribimos el comando:

  • BACKUP INCREMENTAL LEVEL 1 DATABASE

Recordemos que los backup diferenciales son de nivel uno. Para el caso de los backups diferenciales no tenemos que especificar su tipo, solamente con poner que es un incremental de nivel uno, RMAN asume que es un backup diferencial.

Presionamos INTRO y comienza el proceso de backup, en este caso también se nos muestra el canal, los ficheros involucrados en el backup, etc… Por último, como tenemos activa la configuración para que RMAN haga backups automáticos del spfiles y el controlfile, pues también hace backups de esos ficheros.

Vemos que este proceso ha demorado menos tiempo que el anterior, y es que este backup, solo está llevándose los bloques que han sufrido cambios respecto al último backup incremental. Da igual que tengamos muchísimas más filas en la tabla PRUEBA1, el resto de ficheros de la base de datos apenas han sufrido cambios, entonces del resto de ficheros no se ha llevado nada, o se ha llevado muy poco para hacer el backup. Esto podemos comprobarlo también en cuanto a la diferencia de tamaño de un backup a otro.

Si hacemos un LIST BACKUP, podemos ver que ahora tenemos un backup incremental de level uno, con un tamaño de 3.79 megas. Recordemos que el incremental de tipo cero que hicimos hace algunos minutos, tiene un tamaño de 1.73 gigas. La diferencia está, en lo que dijimos antes, que el backup de tipo diferencial, solo se lleva los cambios que se hayan producido en los ficheros de la base de datos desde el último backup incremental que hayamos hecho, sea del tipo que sea. El resultado que tenemos en nuestro caso, es un backup de 3.79 megas de tamaño.

Siguiendo con nuestro ejemplo, vamos a hacer un backup incremental de tipo acumulativo, ya hemos hecho un full backcup incremental, también un backup diferencial, ahora vamos a hacer uno acumulativo.

Recordar que los backups acumulativos se llevan los cambios que se hayan hecho a partir del último acumulativo que tengamos, como no tenemos ninguno, entonces to


ejemplos backups incrementales

Publicaciones Recientes de oracle dba

¿Hay algún error o mejora?

¿Dónde está el error?

¿Cúal es el error?