Optimizar la replicación de SQL Server

Hola a todos. Hoy vamos a tratar acerca de los agentes que intervienen en la replicación de SQL Server y cómo se puede mejorar y optimizar el rendimiento de nuestra replicación según consideremos.

Hay varios tipos de agentes involucrados en la replicación de SQL Server:

  1. Agentes de distribución (Distribution Agents)
  2. Agentes de registro del LOG (Log Reader Agents)
  3. Agentes de instantáneas (Snapshot Agents)
  4. Agentes de mezcla (Merge Agents)
  5. Agentes de lectura de cola (Queue Reader Agents)
Optimizar la replicación

Para poder optimizar los agentes en la replicación de SQL Server debemos acceder dentro de nuestra instancia a:

Botón derecho sobre "Replication" --> "Distributor Properties" --> Dentro de "General" clicamos sobre "Profile Defaults…"

Las siguientes opciones que proponemos son una vez configurada la replicación con los valores por defecto. Las propuestas para poder aplicarse van a depender de diferentes factores como puede ser la carga del motor de base de datos sobre el servidor o los recursos de los que dispone este.

Tips para optimizar la replicación de SQL Server

A continuación os mostramos diferentes modificaciones que realizar para optimizar la replicación.

Snapshot Agent

Ejecute el Snapshot Agent con la menor frecuencia posible.

El Snapshot Agent realiza copias masivas de datos del Editor al Distribuidor, lo que provoca una cierta degradación del rendimiento. Por lo tanto, intente programarlo durante los tiempos de inactividad de la CPU y los periodos de producción lenta.

MaxBcpThreads

Aumente la propiedad MaxBcpThreads del Snapshot Agent.

Esta propiedad especifica el número de operaciones de copia masiva que se pueden realizar en paralelo. Al aumentar este valor, las operaciones de copia masiva pueden ejecutarse más rápidamente, ya que se realizarán en paralelo.

OutputVerboseLevel

Ponga a 0 la propiedad OutputVerboseLevel del Agente de Distribución, del Agente de registro del LOG, el Agente de mezcla y el Agente de Instantáneas.

Esta propiedad especifica si la salida debe ser verbosa. Hay tres valores disponibles:

  • 0 – sólo se imprimen los mensajes de error
  • 1 – se imprimen todos los mensajes de informe de progreso
  • 2 – se imprimen todos los mensajes de error y de informe de progreso

Para este parámetro, el valor por defecto es 2. Puede aumentar el rendimiento imprimiendo sólo los mensajes de error.

HistoryVerboseLevel

Puede minimizar el efecto sobre el rendimiento del registro del historial seleccionando 1 para la propiedad HistoryVerboseLevel del Agente de Distribución, el Agente de registro del LOG, el Agente de mezcla y el Agente de Instantáneas.

Esta propiedad especifica la cantidad de historial registrado durante la operación de distribución (para un Agente de Distribución), durante una operación de lectura de registros (para un Agente Lector de Registros), durante una operación de mezcla (para un Agente de Mezcla) o durante una operación de instantánea (para un Agente de Instantáneas).

ReadBatchSize

Aumente el parámetro ReadBatchSize del Agente Lector de Registros.

Este parámetro especifica el número máximo de transacciones leídas del registro de transacciones de la base de datos de publicación. El valor predeterminado es 500. Esta opción debe utilizarse cuando se escribe un gran número de transacciones en una base de datos de publicación, pero sólo un pequeño subconjunto de ellas se marca para replicación.

CommitBatchSize

Si trabaja con replicación transaccional, aumente el parámetro CommitBatchSize del agente de distribución.

Este parámetro especifica el número de transacciones que se emitirán al suscriptor antes de que se emita una sentencia COMMIT. El valor por defecto es 100.

Si tienes dudas o lo ves demasiado complejo confía en los profesionales para llevar a cabo una configuración correcta y optima. Contáctanos sin compromiso.

¿Aún no conoces Query Performance? Descubre cómo puede ayudarte en tu entorno Oracle. Más información en su página de LinkedIn.

Sígue a GPS en LinkedIn

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *