Published on

June 23, 2020

Gestionar el tamaño del registro de errores de SQL Server con PowerShell

El registro de errores de SQL Server es conocido por crecer mucho cuando ocurren ciertas cosas, como fallos repetidos en el inicio de sesión o volcados de pila. Esto puede dificultar la búsqueda de problemas reales, ralentizar el rendimiento e incluso llenar la unidad de disco. En este artículo, discutiremos una solución para gestionar eficientemente el tamaño del registro de errores utilizando PowerShell.

Solución

El enfoque habitual para gestionar el tamaño del registro de errores es programar una tarea para ejecutar periódicamente el procedimiento almacenado sp_cycle_errorlog. Sin embargo, esto puede considerarse una sobreadministración. El enfoque ideal debería ser reciclar el registro de errores solo cuando sea necesario, como cuando el tamaño del registro supera un umbral especificado.

En esta solución, utilizaremos PowerShell para gestionar el tamaño del registro de errores. Hay tres pasos clave:

  1. Encontrar la ubicación del registro de errores de SQL Server
  2. Encontrar el tamaño actual del registro de errores y comprobar si supera el umbral
  3. Si el tamaño del registro es mayor que el umbral, reciclar el registro de errores utilizando sp_cycle_errorlog

Para lograr esto, utilizaremos una función de PowerShell llamada Optimize-SQLErrorLog. Esta función toma los siguientes parámetros:

  • ServerInstance: La(s) instancia(s) de SQL Server donde queremos comprobar y optimizar el tamaño del registro de errores
  • Threshold: El tamaño umbral en megabytes (MB) por encima del cual se debe reciclar el registro de errores
  • DisableBackupInfo: Un interruptor para activar la Bandera de traza 3226, que suprime la información de éxito de la copia de seguridad en el registro de errores
  • Optimize: Un interruptor para habilitar el proceso de optimización

Aquí tienes un ejemplo de cómo utilizar la función Optimize-SQLErrorLog:

Optimize-SQLErrorLog -ServerInstance "jy\sql2k8", "jy\sql2012"

Este comando comprobará el tamaño del registro de errores en dos instancias de SQL Server: “jy\sql2k8” y “jy\sql2012”.

Además, puedes especificar el umbral y habilitar el proceso de optimización:

Optimize-SQLErrorLog -ServerInstance "jy\sql2k8", "jy\sql2012" -Threshold 1 -Optimize

Este comando reciclará el registro de errores si el tamaño actual es mayor que 1 MB.

Por defecto, la función no activará la Bandera de traza 3226. Sin embargo, puedes utilizar el interruptor DisableBackupInfo para activarla:

Optimize-SQLErrorLog -ServerInstance "jy\sql2k8", "jy\sql2012" -DisableBackupInfo

Este comando activará la Bandera de traza 3226 en las instancias de SQL Server especificadas.

Conclusión

Gestionar el tamaño del registro de errores de SQL Server es importante para mantener un entorno de base de datos saludable y eficiente. Utilizando PowerShell y la función Optimize-SQLErrorLog, puedes monitorizar y optimizar fácilmente el tamaño del registro de errores según tus requisitos específicos.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.