Mejorar la disponibilidad y la escalabilidad
En muchas aplicaciones, es fundamental proporcionar mayor disponibilidad y escalabilidad de lectura. La replicación se puede utilizar como una parte fundamental de una solución para proporcionar ambas. En algunas aplicaciones, el objetivo podría ser mejorar la disponibilidad o la escalabilidad mediante la replicación. Si sólo necesita cubrir una de estas áreas, considere uno de los siguientes escenarios:
En los siguientes diagramas se ilustran dos aplicaciones que aprovechan el uso de la replicación para aumentar la disponibilidad y la escalabilidad. En ambos casos, las tres bases de datos de los diagramas son pares entre sí: contienen esquema y datos idénticos. La actividad de escritura para estas bases de datos deben tener particiones: si la base de datos contenía un catálogo de productos, podría, por ejemplo, dirigir actualizaciones a la primera base de datos para los nombres de productos que comienzan por A-I, la segunda base de datos para J-R y la tercera, para S-Z. Las actualizaciones se replican, a continuación, a las demás bases de datos.
En el primer diagrama se ilustra una configuración donde cada servidor de aplicaciones y Web utiliza datos de un servidor de almacenamiento en caché determinado. Las lecturas y actualizaciones de un usuario determinado pasan a un servidor de aplicaciones específico y, a continuación, a un servidor de almacenamiento en caché específico. Puesto que el servidor de aplicaciones actualiza la caché directamente, no se necesita un servidor de origen central. Las actualizaciones en cada caché se propagan a las demás cachés.
En el segundo diagrama se muestran tres servidores separados geográficamente con datos que se transfieren entre los tres, lo que permite que cada servidor admita solicitudes de lectura y mejore la disponibilidad.
Ejemplo de Adventure Works Cycles
Adventure Works Cycles es una compañía ficticia que se utiliza para mostrar situaciones y conceptos de bases de datos. Para obtener más información, vea Bases de datos de ejemplo AdventureWorks.
Adventure Works Cycles tiene varias oficinas en todo el mundo, incluidas las ubicadas en Los Ángeles, Londres y Taipei. La información de pedidos de clientes se recopila en cada ubicación y, a continuación, se replica en las otras ubicaciones.
La información de pedidos puede leerse desde las otras ubicaciones; por tanto, si la oficina de Londres tiene una actividad de lectura grande, las aplicaciones internas pueden distribuir parte de esta actividad a las otras dos oficinas.
Por ejemplo, si el servidor de la oficina de Londres se cierra por mantenimiento, los pedidos pueden recuperarse en otra ubicación y el personal de la oficina de Londres puede seguir leyendo y escribiendo datos. Cuando el servidor de Londres vuelve a estar en línea, los cambios recibidos mientras estaba inactivo se propagarán al servidor del Londres para actualizarlo.
Requisitos comunes para este escenario
Las aplicaciones que utilizan la replicación para obtener escalabilidad y disponibilidad normalmente tienen los siguientes requisitos que una solución de replicación adecuada debe resolver:
El sistema debe permitir realizar cambios en cualquier servidor y hacer que los cambios se repliquen en los otros servidores.
El sistema debe mantener la coherencia transaccional.
El sistema debe tener latencia baja: las actualizaciones en un servidor deben llegar a los demás servidores rápidamente.
El sistema debe tener un rendimiento alto: debe controlar la replicación de un gran número de transacciones.
El proceso de replicación debe producir una sobrecarga mínima.
Tipo de replicación que se debe utilizar en este escenario
MicrosoftSQL Server utiliza una metáfora del sector editorial para describir los componentes del sistema de replicación. Los componentes incluyen el publicador, los suscriptores, las publicaciones y artículos, y las suscripciones.
En los diagramas anteriores, todos los servidores de almacenamiento en caché son publicadores y suscriptores. Todos los datos de la base de datos replicada en cada servidor se incluyen en la publicación, donde cada tabla de datos es un artículo (los artículos también pueden ser otros objetos de base de datos, por ejemplo procedimientos almacenados). Cada servidor se suscribe a publicaciones de otros servidores y recibe el esquema y los datos como una suscripción. Para obtener más información sobre los componentes del sistema, vea Información general del modelo de publicación de replicación.
SQL Server ofrece diferentes tipos de replicación para distintos requisitos de aplicación: replicación de instantáneas, replicación transaccional y replicación de mezcla. La mejor implementación para este escenario es la replicación transaccional del mismo nivel, que se adapta perfectamente para controlar los requisitos descritos en la sección anterior. Para obtener más información sobre la replicación transaccional del mismo nivel, vea Replicación transaccional del mismo nivel.
[!NOTA]
Si la aplicación requiere que se realicen modificaciones de una fila determinada en más de un nodo simultáneamente, pueden producirse conflictos de datos. En este caso, utilice la replicación de mezcla, que se adapta perfectamente para controlar conflictos. Para obtener más información sobre la replicación de mezcla, vea Información general sobre la replicación de mezcla.
Por diseño, la replicación transaccional satisface los requisitos principales de este escenario:
Los cambios se pueden realizar en cualquier servidor
Coherencia transaccional
Latencia baja
Rendimiento alto
Sobrecarga mínima
La opción del mismo nivel de la replicación transaccional permite a los servidores publicar y suscribirse a los mismos datos. Todos los nodos de una topología del mismo nivel son pares: cada nodo publica y suscribe al mismo esquema y los mismos datos. Los cambios (inserciones, actualizaciones y eliminaciones) pueden realizarse en todos los nodos y, a continuación, replicarse en el resto de los nodos.
Pasos para implementar este escenario
Para implementar este escenario, primero debe crear las publicaciones y las suscripciones e inicializar cada suscripción. Para obtener más información, vea:
SQL Server Management Studio: Cómo configurar la replicación transaccional punto a punto (SQL Server Management Studio)
Programación de la replicación con Transact-SQL: Cómo configurar la replicación transaccional punto a punto (programación de la replicación con Transact-SQL)
Cuando la suscripción se haya inicializado y los datos fluyan entre los pares, es posible que necesite consultar los siguientes temas para obtener información sobre tareas habituales de administración y supervisión: