Compartir a través de


Replicación transaccional punto a punto

La replicación punto a punto proporciona una solución de escalabilidad horizontal y de alta disponibilidad manteniendo copias de datos en varias instancias de servidor, también denominadas nodos. Construido sobre la base de la replicación transaccional, la replicación punto a punto propaga cambios coherentes a nivel transaccional casi en tiempo real. Esto permite que las aplicaciones que necesitan expandir las operaciones de lectura distribuyan dichas lecturas de los clientes a través de varios nodos. Dado que los datos se mantienen entre los nodos casi en tiempo real, la replicación punto a punto proporciona redundancia de datos, lo que aumenta la disponibilidad de los datos.

Considere la posibilidad de usar una aplicación web. Esto puede beneficiarse de la replicación punto a punto de las maneras siguientes:

  • Las consultas de catálogo y otras lecturas se distribuyen entre varios nodos. Esto permite que el rendimiento siga siendo coherente a medida que aumentan las lecturas.

  • Si se produce un error en uno de los nodos del sistema, una capa de aplicación puede redirigir las escrituras de ese nodo a otro nodo. Esto mantiene la disponibilidad.

  • Si un nodo requiere mantenimiento o todo el sistema requiere una actualización, cada nodo se puede desconectar y agregar de nuevo al sistema sin afectar a la disponibilidad de la aplicación.

Aunque la replicación punto a punto permite el escalado horizontal de las operaciones de lectura, el rendimiento de escritura de la topología es similar al de un solo nodo. Esto se debe a que, en última instancia, todas las inserciones, actualizaciones y eliminaciones se propagan a todos los nodos. La replicación reconoce cuándo se ha aplicado un cambio a un nodo determinado e impide que los cambios pasen por los nodos más de una vez. Se recomienda encarecidamente que las operaciones de escritura para cada fila se realicen solo en el nodo, por los siguientes motivos:

  • Si se modifica una fila en más de un nodo, puede provocar un conflicto o incluso una actualización perdida cuando la fila se propaga a otros nodos.

  • Siempre hay cierta latencia implicada cuando se replican los cambios. En el caso de las aplicaciones que requieren que se vea inmediatamente el cambio más reciente, el equilibrio de carga dinámico de la aplicación entre varios nodos puede ser problemático.

La replicación punto a punto incluye la opción para habilitar la detección de conflictos en una topología punto a punto. Esta opción ayuda a evitar los problemas causados por conflictos no detectados, incluido el comportamiento incoherente de la aplicación y las actualizaciones perdidas. Al habilitar esta opción, de forma predeterminada, un cambio en conflicto se trata como un error crítico que provoca el error del Agente de distribución. En caso de conflicto, la topología permanece en un estado incoherente hasta que el conflicto se resuelve manualmente y los datos se hacen coherentes en toda la topología. Para obtener más información, consulte Detección de conflictos en replicación punto a punto.

Nota:

Para evitar posibles incoherencias de datos, asegúrese de evitar conflictos en una topología punto a punto, incluso con la detección de conflictos habilitada. Para asegurarse de que las operaciones de escritura de una fila determinada se realicen solo en un nodo, las aplicaciones que acceden y cambian los datos deben dividir las operaciones de inserción, actualización y eliminación. Esta creación de particiones garantiza que las modificaciones de una fila determinada que se originan en un nodo se sincronicen con todos los demás nodos de la topología antes de que un nodo diferente modifique la fila. Si una aplicación requiere capacidades sofisticadas de detección y resolución de conflictos, use la replicación por mezcla. Para obtener más información, consulte Replicación de mezcla y Detección y resolución de conflictos de replicación de mezcla.

Topologías punto a punto

En los escenarios siguientes se muestran los usos típicos para la replicación punto a punto.

Topología que tiene dos bases de datos participantes

Replicación punto a punto, dos nodos

Ambas ilustraciones anteriores muestran dos bases de datos participantes, con el tráfico de usuario dirigido a las bases de datos a través de un servidor de aplicaciones. Esta configuración se puede usar para una variedad de aplicaciones, desde sitios web hasta aplicaciones de grupo de trabajo, y proporciona las siguientes ventajas:

  • Se ha mejorado el rendimiento de lectura, ya que las lecturas se distribuyen en dos servidores.

  • Mayor disponibilidad si se requiere mantenimiento o en caso de error en un nodo.

En ambas ilustraciones, la actividad de lectura está equilibrada entre las bases de datos participantes, pero las actualizaciones se controlan de forma diferente:

  • A la izquierda, las actualizaciones se particionan entre los dos servidores. Si la base de datos contenía un catálogo de productos, podría, por ejemplo, hacer que una aplicación personalizada dirija las actualizaciones al nodo A para los nombres de producto que comienzan por A a M y las actualizaciones directas al nodo B para los nombres de producto que comienzan por N a Z. Las actualizaciones se replican en el otro nodo.

  • A la derecha, todas las actualizaciones se dirigen al nodo B. Desde allí, las actualizaciones se replican en el nodo A. Si B está sin conexión (por ejemplo, para mantenimiento), el servidor de aplicaciones puede dirigir toda la actividad a A. Cuando B vuelve a estar en línea, las actualizaciones pueden fluir a ella y el servidor de aplicaciones puede volver a mover todas las actualizaciones a B o seguir dirigiéndolas a A.

La replicación punto a punto puede admitir cualquier enfoque, pero el ejemplo de actualización central de la derecha también se usa a menudo con la replicación transaccional estándar.

Topologías que tienen tres o más bases de datos participantes

Replicación punto a punto en ubicaciones dispersas

En la ilustración anterior se muestran tres bases de datos participantes que proporcionan datos para una organización mundial de soporte de software, con oficinas en Los Ángeles, Londres y Taipei. Los ingenieros de soporte técnico de cada oficina realizan llamadas de cliente y escriben y actualizan información sobre cada llamada de cliente. Las zonas horarias de las tres oficinas están separadas por ocho horas, por lo que no hay superposición en el día laboral. A medida que cierra la oficina de Taipei, la oficina de Londres se abre para el día. Si una llamada sigue en curso a medida que se cierra una oficina, la llamada se transfiere a un representante en la siguiente oficina para abrirla.

Cada ubicación tiene una base de datos y un servidor de aplicaciones, que usan los ingenieros de soporte técnico a medida que escriben y actualizan información sobre las llamadas de los clientes. La topología se particiona por tiempo. Por lo tanto, las actualizaciones solo se producen en el nodo que está abierto actualmente para empresas y, a continuación, las actualizaciones fluyen a las otras bases de datos participantes. Esta topología proporciona las siguientes ventajas:

  • Independencia sin aislamiento: cada oficina puede insertar, actualizar o eliminar datos de forma independiente, pero también puede compartir los datos porque se replica en todas las demás bases de datos participantes.

  • Mayor disponibilidad en caso de error o para permitir el mantenimiento en una o varias de las bases de datos participantes.

    Replicación punto a punto, tres y cuatro nodos

En la ilustración anterior se muestra la adición de un nodo a la topología de tres nodos. Se podría agregar un nodo en este escenario por los siguientes motivos:

  • Porque se abre otra oficina.

  • Para proporcionar mayor disponibilidad para admitir el mantenimiento o aumentar la tolerancia a errores si se produce un error de disco u otro error importante.

Observe que en las topologías de tres y cuatro nodos, todas las bases de datos publican y se suscriben a todas las demás bases de datos. Esto proporciona la máxima disponibilidad en caso de necesidades de mantenimiento o error de uno o varios nodos. A medida que se agregan nodos, debe equilibrar las necesidades de disponibilidad y escalabilidad con respecto al rendimiento y la complejidad de la implementación y la administración.

Configuración de la replicación punto a punto

La configuración de una topología de replicación punto a punto es muy similar a la configuración de una serie de publicaciones y suscripciones transaccionales estándar. Los pasos descritos en los temas siguientes muestran la configuración de un sistema de tres nodos, similar a la configuración que se muestra a la izquierda en la ilustración anterior que muestra la topología punto a punto.

Consideraciones para usar la replicación punto a punto

En esta sección se proporciona información y directrices que se deben tener en cuenta al usar la replicación punto a punto.

Consideraciones generales

  • La replicación punto a punto solo está disponible en versiones Enterprise de SQL Server.

  • Todas las bases de datos que participan en la replicación punto a punto deben contener un esquema y datos idénticos:

    • Los nombres de objeto, el esquema de objeto y los nombres de publicación deben ser idénticos.

    • Las publicaciones deben permitir que se repliquen los cambios de esquema. (Este es un valor de 1 para la propiedad publication replicate_ddl, que es el valor predeterminado). Para obtener más información, vea Realizar cambios de esquema en bases de datos de publicación.

    • No se admite el filtrado de filas y columnas.

  • Se recomienda que cada nodo use su propia base de datos de distribución. Esto elimina el potencial de tener un único punto de error.

  • Las tablas y otros objetos no se pueden incluir en varias publicaciones punto a punto en una base de datos de publicación única.

  • Se debe habilitar una publicación para la replicación punto a punto antes de crear las suscripciones.

  • Las suscripciones deben inicializarse mediante una copia de seguridad o con la opción "solo soporte de replicación ". Para obtener más información, vea Inicializar una suscripción transaccional sin una instantánea.

  • No se recomienda el uso de columnas de identidad. Al usar identidades, debe administrar manualmente los intervalos asignados a las tablas de cada base de datos participante. Para obtener más información, consulte la sección "Asignación de rangos para la administración manual de rangos de identidad" en Replicar columnas de identidad.

Restricciones de características

La replicación punto a punto admite las características principales de la replicación transaccional, pero no admite las siguientes opciones:

  • Inicialización y reinicialización con una instantánea.

  • Filtros de fila y columna.

  • Columnas de marca de tiempo.

  • Publicadores y suscriptores que no son de SQL Server.

  • Actualización inmediata y suscripciones de actualización programada.

  • Suscripciones anónimas.

  • Suscripciones parciales.

  • Suscripciones adjuntables y suscripciones transformables. (Ambas opciones estaban en desuso en SQL Server 2005).

  • Agentes de distribución compartidos.

  • Parámetro del Agente de distribución -SubscriptionStreams y el parámetro Log Reader Agent -MaxCmdsInTran.

  • Las propiedades del artículo @destination_owner y @destination_table.

  • La replicación transaccional Punto a Punto no admite la creación de una suscripción transaccional unidireccional a una publicación Punto a Punto.

Las siguientes propiedades tienen consideraciones especiales:

  • La propiedad de publicación @allow_initialize_from_backup requiere un valor de true.

  • La propiedad article @replicate_ddl requiere un valor de true; @identityrangemanagementoption requiere un valor de manual; y @status requiere que se establezca la opción 24 .

  • El valor de las propiedades del artículo @ins_cmd, @del_cmd y @upd_cmd no se puede establecer en SQL.

  • La propiedad subscription @sync_type requiere un valor de none o automatic.

Consideraciones de mantenimiento

Las siguientes acciones requieren que el sistema esté inactivo. Esto significa detener la actividad en tablas publicadas en todos los nodos y asegurarse de que cada nodo ha recibido todos los cambios de todos los demás nodos.

  • Agregar un nodo de SQL Server 2005 a una topología existente

  • Adición de un artículo a una publicación existente

  • Realización de cambios de esquema

  • Restauración de un nodo desde una copia de seguridad

Para obtener más información, consulte Suspender una topología de replicación (Replicación Transact-SQL Programación) y Administrar una topología punto a punto (Replicación Transact-SQL Programación).

  • Si agrega un nuevo nodo a una topología punto a punto, solo debe restaurar a partir de copias de seguridad creadas después de agregar el nuevo nodo.

  • No se pueden reinicializar las suscripciones en una topología punto a punto. Si tiene que asegurarse de que un nodo tiene una nueva copia de los datos, restaure una copia de seguridad en el nodo.

Véase también

Administrar una topología punto a punto (programación de la replicación con Transact-SQL)
Estrategias para realizar copias de seguridad y restaurar la replicación de instantáneas y transaccionales
Tipos de publicación para la replicación transaccional