Práctica No. 13. Puntos de restauración

Objetivo: Crear puntos de restauración y recuperación de bases de datos (simulación de daños).

El comando SAVEPOINT guarda un punto de restauración de la base de datos, que luego puede ser retornado usando una sentencia ROLLBACK. Lo que nos cae de perlas si queremos deshacer solo una parte de la transacción y no la transacción completa.

Definición

SAVEPOINT NombreDelPunto;

Cuando queramos deshacer los cambios de la transaccion hasta un punto predeterminado, usaremos el comando ROLLBACK de la siguiente manera:

ROLLBACK TO NombreDelPunto;

Definición SQL SERVER

SAVE TRAN NombreDelPunto; Crear punto de restauración

ROLLBACK TRAN NombredelPunto; Volver al punto de restauración

Metodología

Ejemplo Considere la tabla Jugadores:

Eliminaremos tres filas. Antes de eliminar cada fila crearemos un punto de restauración que permita devolver la base de datos a 3 estados.

SAVEPOIN1T P1;
DELETE FROM Jugadores
WHERE ID=1;

S1AVEPOINT P2;

DELETE FROM Jugadores
1WHERE ID=2;

SAVEPOINT P3;

DELETE FROM Jugadores
WHERE ID=3;

Correlación conc el programa de estudios

Alta dado que los desastres pen una base de datos son potenciales y drasticos así que hay que estar preparados

Metodología

La restauración es el proceso de copiar datos desde una copia de seguridad y aplicar transacciones registradas a los datos para ponerlos al día hasta el punto de recuperación de destino. Una copia de seguridad de datos o diferencial contiene suficientes registros de transacciones para permitir poner al día las transacciones activas como parte de la restauración de cada copia de seguridad. Cada copia de seguridad contiene suficientes registros para revertir las transacciones no confirmadas y llevar la base de datos a un estado coherente con la transacción y utilizable. El proceso de poner al día las transacciones no confirmadas, si las hay, y poner la base de datos en línea se conoce como recuperación.

Conjunto de puestas al día

El proceso de aplicar cambios registrados a los datos de una base de datos para poner los datos al día se conoce como poner al día. El conjunto de todos los datos restaurados se conoce como el conjunto de puestas al día. Un conjunto de puestas al día se define con la restauración de una o más copias de seguridad completas, como una copia de seguridad de base de datos o parcial, o un conjunto de copias de seguridad de archivos. Si una instrucción RESTORE especifica grupos de archivos, archivos o páginas, solo se incluyen estos elementos en el conjunto de puestas al día. De lo contrario, se incluirán en el conjunto de puestas al día todos los archivos de la copia de seguridad que se está restaurando. Si la copia de seguridad completa contiene entradas de registro, los datos restaurados se pondrán al día mediante este registro.

Nota Si especifica un grupo de archivos durante la restauración, ésta engloba todo el grupo de archivos tal como existe actualmente. Esto incluye los archivos agregados al grupo de archivos desde que se realizó la copia de seguridad. Para obtener más información, vea Controlar la creación de archivos agregados durante la puesta al día.

Para copias de seguridad diferenciales, si se agregaron archivos a la base de datos desde la base diferencial, la restauración de una copia de seguridad diferencial podría sobrescribir páginas del conjunto de puestas al día con datos de la copia de seguridad diferencial. Para obtener más información, vea Usar copias de seguridad diferenciales.

La restauración de una copia de seguridad diferencial solo actualiza una página si ésta está en el conjunto de puestas al día; la página se incluye en la copia de seguridad y la instrucción RESTORE muestra la página o su archivo o no muestra ningún archivo ni página.

Con el modelo de recuperación completa y el modelo de recuperación optimizado para cargas masivas de registros, se debe realizar una copia de seguridad independiente del registro. Después de restaurar copias de seguridad de datos y (opcionalmente) diferenciales, en general debería restaurar las copias de seguridad de registros subsiguientes para llevar la base de datos al punto de error. Restaurar una copia de seguridad de registros pone al día todas las páginas del conjunto de puestas al día. Para obtener más información acerca de las copias de seguridad de registros, vea Trabajar con copias de seguridad del registro de transacciones.

Secuencias de restauración

Cada escenario de restauración se implementa mediante uno o varios pasos de restauración (operaciones), lo que se denomina secuencia de restauración. Cada operación corresponde a una instrucción RESTORE de Transact-SQL independiente. Una secuencia de restauración mueve los datos afectados a través de una o varias fases de la restauración.

Para obtener más información acerca de las secuencias de restauración de Transact-SQL y de cómo crearlas, vea Trabajar con secuencias de restauración para bases de datos de SQL Server.

Fases de la restauración

Una restauración es un proceso de varias fases. Las fases posibles de una restauración incluyen las fases de copia de datos, rehacer (puesta al día) y deshacer (revertir):

El resto de esta sección examina estas fases con más detalle.

Fase de copia de datos

La primera fase de todo proceso de restauración es la fase de copia de datos. La fase de copia de datos inicializa el contenido de la base de datos, los archivos o las páginas que se restauran. Esta fase se realiza mediante las operaciones de restaurar la base de datos, restaurar archivos y restaurar páginas utilizando copias de seguridad completas o diferenciales.

La fase de copia de datos implica copiar datos de una o más copias de seguridad completas y, de forma opcional, copias de seguridad diferenciales y, a continuación, restablecer el contenido de la base de datos, los archivos o las páginas afectados en el momento en que fueron capturados por esas copias de seguridad.

El archivo o la página más antiguo del conjunto de puestas al día determina el punto de inicio de la siguiente fase: rehacer (puesta al día).

Fase de rehacer (puesta al día)

Rehacer (o puesta al día) es el proceso de rehacer los cambios registrados hasta los datos del conjunto de puestas al día para avanzar los datos en el tiempo Para llevar a cabo la puesta al día, SQL Server Database Engine (Motor de base de datos de SQL Server) procesa las copias de seguridad de registros conforme se restauran, empezando por el registro contenido en las copias de seguridad completas.

La restauración evita las puestas al día innecesarias. Generalmente, si los datos eran de solo lectura cuando se realizó la copia de seguridad y han permanecido como de solo lectura, la puesta al día es innecesaria y se omite.

Punto de recuperación

El objetivo de la puesta al día es devolver los datos a su estado original en el punto de recuperación. El punto de recuperación es el punto hasta el que el usuario especifica que debe recuperarse el conjunto de datos. Con el modelo de recuperación completa, puede especificar el punto de recuperación como un momento determinado, una transacción marcada o un número de secuencia de registro. Con el modelo de recuperación optimizado para cargas masivas de registros, solo puede realizar la restauración a un momento dado si no se ha realizado ninguna operación masiva desde la copia de seguridad de registros anterior.

Coherencia de rehacer (puesta al día)

En la fase de rehacer, los datos siempre se ponen al día hasta un punto que es coherente para rehacer con el estado de la base de datos en el punto de recuperación. Todos los datos se han puesto al día hasta un punto en el que se puede realizar la operación de deshacer. El archivo principal define el estado de la base de datos, como se indica a continuación:

Sin embargo, la base de datos puede contener cambios realizados por transacciones que no están confirmadas en el punto de recuperación. Para la restauración en línea, los datos se recuperan a un momento dado coherente con el estado actual de la parte en línea de la base de datos.

Una copia de seguridad diferencial avanza hasta el punto en que se realizó la copia de seguridad diferencial. Las páginas del conjunto de puestas al día se sobrescriben con páginas más recientes de la copia de seguridad diferencial.

Fase de deshacer (revertir) y recuperación

Después de que la fase de rehacer haya puesto al día todas las transacciones del registro, una base de datos suele contener los cambios realizados por las transacciones no confirmadas en el punto de recuperación. Esto convierte los datos puestos al día en transaccionalmente incoherentes. El proceso de recuperación abre el registro de transacciones para identificar las transacciones no confirmadas. Las transacciones no confirmadas se deshacen mediante la reversión, a menos que mantengan bloqueos que eviten que otras transacciones vean datos transaccionalmente incoherentes. Este paso se denomina fase de deshacer (o revertir). Si los datos ya son transaccionalmente coherentes al inicio del proceso de recuperación, la fase de deshacer se omitirá. Después de que la base de datos sea transaccionalmente coherente, la recuperación conecta la base de datos.

Después de que se hayan restaurado una o más copias de seguridad, la recuperación suele incluir tanto la fase de rehacer y como la de deshacer. Cada copia de seguridad completa y diferencial contiene suficientes registros de transacciones para permitir que los datos de esa copia de seguridad se recuperen a un estado coherente consigo mismo.

Nota Durante una recuperación tras bloqueo o una conmutación por error de la creación de reflejo de la base de datos, SQL Server 2005 Enterprise Edition y las versiones posteriores permiten a los usuarios obtener acceso a la base de datos durante la fase de deshacer. Esto se conoce como recuperación rápida. La recuperación rápida es posible porque las transacciones que no estaban confirmadas cuando se produjo el error vuelven a adquirir los bloqueos que mantenían antes del error. Mientras estas transacciones se revierten, sus bloqueos las protegen de las interferencias de los usuarios.

Relación de las opciones RECOVERY y NORECOVERY con las fases de restauración

Una instrucción RESTORE específica termina después de la fase de rehacer o continúa con la fase de deshacer, según si la instrucción especificó WITH NORECOVERY, de la manera siguiente:

Si el conjunto de puestas al día no se ha puesto al día lo suficiente para ser coherente con la base de datos, la fase de deshacer no se podrá producir. Motor de base de datos emitirá un error y la recuperación se detendrá.

Si todo el conjunto de puestas al día es coherente con la base de datos, se realizará la recuperación y se podrá conectar la base de datos.

Para obtener información acerca de los conjuntos de puestas al día, vea Descripción de cómo funcionan la restauración y la recuperación de copias de seguridad en SQL Server.

Nota Existe una tercera alternativa, WITH STANDBY, pero está fuera del ámbito de este tema.

Rutas de recuperación

Una ruta de recuperación es un conjunto único de transformaciones que han cambiado la base de datos a lo largo del tiempo, aunque han mantenido su coherencia

Sugerencias didácticas

Entre equipos intercambie información de la intalación de los diferentes gestores. Y elabore un resumen ejectuvivo de ello

Presente una mesa de debates en el grupo sobre dicho processo

Lea cuidadosamente las referencias bibliograficas

Continue usando las bases de datos anteriores

Material y equipo necesario

Cuenta de administrador en el servidor

Bases de datos ejemplo

Reporte del alumno

Los alumnos deberán subir el resultado de sus prácticas a algún servidor web para ser consultado en línea.

Los alumnos deberán activar su espacio web y subir al mismo el resultado -Código y reporte ejecutivo- de las prácticas.

Presente en un video tutorial y por escrito su resultados, cantidad de memoria comportamiento

Bibliografía preliminar

Fernandez, Ignatius.(2009), Beginning Oracle Database 11g Administration: From Novice to Professional (Expert's Voice in Oracle)

Lewis, Jonathan. (2011). Oracle Core: Essential Internals for DBAs and Developers (Expert's Voice in Databases)



Anterior
Valid XHTML
home

Siguiente