2009-08-06 1276 views
9

Hola, tengo una base de datos de producción y su base de datos de informes replicados. Cómo reducir los archivos de registro de transacciones en la base de datos de producción a medida que aumenta el tamaño del archivo de registro. Había intentado DBCC SHRINKFILE y SHRINKDATABASE comandos pero no funciona para mí. No puedo separar y reducir y adjuntar como db en la replicación. Por favor ayúdame con este problema.Cómo reducir el registro de transacciones en la base de datos del servidor sql en la replicación

Respuesta

0

¿Tiene un programa de copia de seguridad regular en su lugar?

Si no es así, le sugiero que lea este excelente artículo: 8 Steps to better Transaction Log throughput

+0

no, no tengo plan de copia de seguridad. Necesito eliminar el registro de traslación –

+1

El motivo por el que tiene un registro de transacciones grande es porque no realiza una copia de seguridad de su base de datos con regularidad. –

1

La base de datos no permitirá que eliminen los datos de transacción que no está respaldado. Primero debe hacer una copia de seguridad del registro de transacciones, luego puede reducirlo.

+0

Eso lo intenté, pero no funcionó para mí. El tamaño aún no se ha reducido –

+0

Si su base de datos está en modo de recuperación total, debe asegurarse de que está haciendo una copia de seguridad del registro de transacciones y una copia de seguridad de la base de datos. – KSimons

0

Reducir el archivo de registro con SHRINKFILE dbcc

Entonces truncar el archivo de registro mediante

de databaseName Backup con truncate_only

A continuación, reducir el tamaño del archivo de registro de nuevo

0

Solía ​​Red-Gate's SQL Backup herramienta para cuida la copia de seguridad. Luego solo uso la consola de administración para emitir un comando de reducción en el archivo de registro (diciéndole que reorganice las páginas antes de liberar el espacio no utilizado).

Funciona como un encanto.

9

En primer lugar comprobar la causa de su base de datos para no reducir ejecutando:

SELECT name, log_reuse_wait_desc FROM sys.DATABASES 

Si está bloqueado por una transacción, se encuentran los cuales uno con:

DBCC OPENTRAN 

Mata a la transacción y reducir su db.

Si la causa del bloqueo es 'REPLICACIÓN' y está seguro de que sus réplicas están sincronizadas, es posible que deba restablecer el estado de las transacciones replicadas. uso para ver el estado de lo que la base de datos todavía piensan que debe repetirse:

DBCC loginfo 

Puede restablecer este girando primero el Agente de apagado (por lo general sólo a su vez todo el Agente SQL Server apagado) y, a continuación, ejecutar la consulta en la base de datos para el que desea fijar el problema de replicación:

EXEC sp_repldone @xactid = NULL, @xact_segno = NULL, @numtrans = 0, @time= 0, @reset = 1 

Cerrar la conexión donde se ejecutara esa consulta y reiniciar el Agente SQL Server (o simplemente el Agente de lectura). Debería estar todo listo para reducir su DB ahora.

+0

Solución exacta que necesitaba: resolvió mi problema de registro. – Dragonsdoom

Cuestiones relacionadas