Ver Mensaje Individual
  #8 (permalink)  
Antiguo 14/09/2008, 21:13
Police
 
Fecha de Ingreso: septiembre-2008
Mensajes: 4
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Es posible un modo seguro de Transacciones en SQL

Hola a todos

Despues de hacer una investigación en internet, a lo que llegue es la siguiente manera de simularlo, tengo dos propuestas:

1-Haciendo un job en el SQL AGENT, se crea este job con cierta perioricidad (en el Horario para que se ejecute) depende de la empresa o de las necesidades, luego lo que se hace es hacer un nuevo "STEP" y ahi se escribe el código en TRANSACT-SQL de ejemplo hice este, mi base se llama MVR:

USE MVR
CHECKPOINT

BACKUP LOG MVR TO DISK='C:\LOG.back'
BACKUP LOG MVR WITH TRUNCATE_ONLY

Según lo que he leido para poder truncar un LOG primero se debe hacer un CHECKPOINT en la base de datos para asegurar que las páginas en memoria pendientes de escribir en disco, se escriben en disco. Luego se hace un backup de los logs y se ubican en la dirección 'C:\LOG.back' y despues ya pueden ser truncados los logs, truncar permite liberar automáticamente el espacio en disco para su reutilización por el registro de transacciones, si desean leer un poco más de truncamiento revisen la siguiente página http://technet.microsoft.com/es-es/library/ms189085.aspx.
El problema que encontre al realizar esto es no me crea varios archivos parece que le cae encima al anterior o adjunta el nuevo contenido al archivo anterior, no encontre la forma de como hacer que le coloque un nombre con un número secuencial para tenerlos todos

La segunda opción que encontre fue hacer un plan de mantenimiento, que tambien es un job, al igual que lo anterior dentro del asistente le indico que sea en cierta dirección y que sólo respalde los logs y me genere un reporte. A continuación procedo a modificarlo de la siguiente manera:

USE MVR
CHECKPOINT

EXECUTE master.dbo.xp_sqlmaint N'-PlanID 8BA9F086-8621-4A32-A367-8D7603189856 -Rpt "C:\Users\Esteban\Desktop\Esteban6.txt" -WriteHistory -VrfyBackup -BkUpMedia DISK -BkUpLog "C:\Users\Esteban\Desktop" -CrBkSubDir -BkExt "TRN"'
BACKUP LOG MVR WITH TRUNCATE_ONLY

La única línea que genera el plan de mantenimiento es esta
EXECUTE master.dbo.xp_sqlmaint N'-PlanID 8BA9F086-8621-4A32-A367-8D7603189856 -Rpt "C:\Users\Esteban\Desktop\Esteban6.txt" -WriteHistory -VrfyBackup -BkUpMedia DISK -BkUpLog "C:\Users\Esteban\Desktop" -CrBkSubDir -BkExt "TRN"'

El resto lo adheri, ahora se puede hacer también que despues de truncar el archivo cambiarle el tamaño, por si ha crecido más de lo que se espera. Estas son mis dos soluciones, sé que del todo no emulan completamente al ARCHIVE LOG pero pueden ser un opción a utlizar si se necesita algo similar, resivo sugerencias.
Solo quiero aclarar que se supone que debería ser en SQL SERVER 2005 no lo tengo pero tengo entendido que el plan de mantemiento tiene la opción de truncado y para SQL SERVER 2005 el registro de transacciones se maneja de manera circular.

Muchas Gracias

Última edición por Police; 14/09/2008 a las 21:20