Respaldos en MS SQL Server. Parte 3.

admin

January 8, 2010

SQL SERVER

No Comment

Ahora viene lo interesante y la diferencia marcada y el porqué  de la importancia de los modelos de recuperación:
En el modelo simple, los datos se restauran al punto (momento) en que se realizó el último respaldo. Punto, no hay vuelta de hoja.

Ejemplo: Programas un respaldo todos los días a las 2:00 a.m.
Si ocurre un error a las 10:30 a.m., solo puedes restaurar la información hasta las 2 a.m. Si hay pérdida de datos, lo siento mucho, pero no es posible recuperar la información con una restauración, y es hora de echar mano de herramientas especiales para leer el registro y buscar manualmente las sentencias que afectaron la base de datos.

Otra herramienta son las auditorias a las acciones de los catálogos, es decir, emular un registro de transacciones guardando las sentencias sql insert, update y delete que se ejecutan contra la bae de datos, y poder generar un “undo” o “deshacer” para las sentencias que provocaron un error. No obstante esta herramienta es “medicina preventiva”, no correctiva.

Es por eso que este tipo de modelo de recuperación simple solo es recomendado para bases de datos de solo lectura, exclusivamente de consulta, y para pruebas y desarrollo.
Si tienes una base de datos transaccional recurrente de producción con frecuencia alta de actualizaciones, el modelo simple no es para ti, tú debes usar el modelo full.

Entre respaldo y respaldo de la base de datos, debes realizar respaldos periódicos a intervalos menores de tiempo del registro de transacciones, lo que te permitirá asegurar la recuperación de la información de mejor manera y minimizar las pérdidas de la misma.

Ejemplo: Programas un respaldo diario a las 2:00 a.m. de tu base de datos.
Programas un respaldo del registro de transacciones cada 4 horas (2 am, 6am, 10am, 2pm, 6pm, 10 pm).

A las 10:30 un usuario despistado ( que nunca falta ) se “chuta” una tabla. Con el modelo de recuperación full y los respaldos del registro de transacciones de las 2,6 y 10 a.m. puedes recuperar los datos hasta las 10 de la mañana y no solo los del día anterior como con el método simple. (Eso no es todo, es posible recuperar la información en su totalidad restaurando a un momento del tiempo específico, más detalles en la cuarta entrega).

Para restaurar bases de datos con el método full, el conjunto de sentencias sql es:
RESTORE DATABASE [MiBase] 
FROM  DISK = N’C:\MiBaseRespaldo_1.bak’ 
GO

RESTORE LOG [MiBase] 
FROM  DISK = N’C:\MiBaseRespaldoLog_1_1.trn’ 
GO

RESTORE LOG [MiBase] 
FROM  DISK = N’C:\MiBaseRespaldoLog_1_2.trn’ 
GO

RESTORE LOG [MiBase] 
FROM  DISK = N’C:\MiBaseRespaldoLog_1_3.trn’ 
GO

RESTORE LOG [MiBase] 
FROM  DISK = N’C:\MiBaseRespaldoLog_1_n.trn’ 
GO

Donde se debe respaldar primero la base de datos y posteriormente todos los respaldos de los registros de transacciones subsecuentes a el respaldo de la base de datos, en el orden en que fueron creados.
Bien, eso es todo por ahora, pero en la próxima entrega veremos cómo restaurar bases de datos a un punto especifico de tiempo, con una determinada fecha y hora.

Related Posts

CURRENT_IDENT y RESEED en Sql Server Compact Edition

admin

April 21, 2018

SQL SERVER

No Comment

Sql Server Compact Edition no cuenta con funciones como RESEED o CURRENT_IDENT, así que tenemos que hechar mano de consultas a la información de esquema y de alteración de tablas. Como sustituto a IDENT_CURRENT tenemos: [sql] SELECT AUTOINC_NEXT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = ‘MiTabla’ AND COLUMN_NAME = ‘MiColumna’ [/sql] Y como sustituto a RESEED tenemos […]

Read More

Conexión a Sql Server con Php 5.6 linux CentOS 6

admin

March 28, 2016

PHP, SQL SERVER

No Comment

Para conectarse a Sql Server desde linux utilizamos este comando para instalar el driver: [bash] $ sudo yum install -y php-mssql [/bash] Por ejemplo, para php5.6: [bash] $ sudo yum install -y php56w-mssql [/bash] Esta instrucción instala freetds, una colección de librerias para conectarnos con Sql Server desde linux. Con esta librería no solo podemos […]

Read More

Leave a Reply

Your email address will not be published. Required fields are marked *