Transacciones distribuidas
Escenarios
El participante, el servidor soportado por transacciones, el servidor de recursos y el gestor de transacciones de una transacción distribuida se despliegan en diferentes nodos en un sistema distribuido. Las operaciones contenidas en una transacción se consideran como una unidad lógica, y o bien tienen éxito por completo, o bien fracasan por completo. Las transacciones distribuidas se utilizan para garantizar la coherencia de los datos entre las diferentes bases de datos.
El servicio Coordinador de transacciones distribuidas de Microsoft (MSDTC) es un componente de las versiones modernas de Microsoft Windows que es responsable de coordinar las transacciones que abarcan varios administradores de recursos. Para utilizar transacciones distribuidas en bases de datos, debe habilitar MSDTC en cada servidor participante. MSDTC se ha habilitado al habilitar transacciones distribuidas en bases de datos de RDS for SQL Server. Para habilitar MSDTC en servidores remotos, consulte Configuración de MSDTC en un servidor remoto.
Para obtener más información, consulte Transacciones distribuidas de MS DTC.
Restricciones
- Las transacciones distribuidas están habilitadas para instancias de base de datos recién creadas de forma predeterminada.
- Las réplicas de lectura no admiten transacciones distribuidas.
- Una vez habilitadas, las transacciones distribuidas no se pueden deshabilitar.
- Habilitar las transacciones distribuidas hará que la instancia de base de datos se reinicie. Realice esta operación con precaución.
- Después de crear un enlace de base de datos para una instancia de base de datos de RDS for SQL Server, si se produce una conmutación principal/en espera o migración por falla, el enlace de base de datos no se sincronizará automáticamente con la nueva instancia de base de datos principal. Necesita crear un enlace de base de datos en la nueva instancia de base de datos principal de nuevo.
Habilitación de Transacciones Distribuidas
- Inicie sesión en la consola de gestión.
- Haga clic en en la esquina superior izquierda y seleccione una región y un proyecto.
- Haga clic en en la esquina superior izquierda de la página y seleccione Databases > Relational Database Service.
- En la página Instances, haga clic en la instancia de base de datos de destino.
- En el panel de navegación de la izquierda, elija Distributed Transactions. En la página mostrada, haga clic en en el campo Distributed Transaction.
Adición de hosts
- Inicie sesión en la consola de gestión.
- Haga clic en en la esquina superior izquierda y seleccione una región y un proyecto.
- Haga clic en en la esquina superior izquierda de la página y seleccione Databases > Relational Database Service.
- En la página Instances, haga clic en la instancia de base de datos de destino.
- En el panel de navegación de la izquierda, elija Distributed Transactions. En la página mostrada, haga clic en Add Host.
- En el cuadro de diálogo que se muestra, escriba nombres de host y direcciones IP y haga clic en Test Connection. Después de que todas las pruebas de conexión de host se hayan realizado correctamente, haga clic en OK.
- Nombre de IP de host: introduzca los nombres de los hosts para los que desea crear transacciones distribuidas con la instancia de base de datos RDS. Cada nombre de host debe ser único y contener de 1 a 64 caracteres, incluidos solo letras, dígitos y guiones (-).
- Dirección IP de host: introduzca las direcciones IP de los hosts para los que desea crear transacciones distribuidas con la instancia de base de datos de RDS. Primero debe configurar las reglas entrantes y salientes en el grupo de seguridad para las direcciones IP del host.
Para obtener más información acerca de los requisitos de las reglas de grupo de seguridad, consulte la sección Adición de una regla de grupo de seguridad en la Guía de usuario de Virtual Private Cloud.
- Si los hosts que se van a agregar son ECS que están en la misma VPC que la instancia de base de datos de RDS, introduzca la dirección IP privada del ECS. Puede obtener la dirección IP privada del ECS en la página de detalles del ECS.
- Si los hosts que se van a agregar son ECS que están en VPCs diferentes de la instancia de base de datos RDS, introduzca las direcciones IP públicas de los ECS. Es necesario vincular un EIP a la instancia de base de datos RDS haciendo referencia a Vinculación y desvinculación de una EIP.
Figura 1 Adición de un host
Resolución de nombres en servidores remotos (ECSs)
- Inicie sesión en la consola de gestión.
- Haga clic en en la esquina superior izquierda y seleccione una región y un proyecto.
- Haga clic en en la esquina superior izquierda de la página y seleccione Databases > Relational Database Service.
- En el panel de navegación de la izquierda, elija Distributed Transactions. En la página mostrada, obtenga información acerca de la instancia de base de datos RDS.
- Agregue la información de la instancia de base de datos RDS al archivo hosts de C:\Windows\System32\drivers\etc\hosts.
Configuración de MSDTC en un servidor remoto
- Haga clic en Start y elija Control Panel > Administrative Tools > Component Services.
- Expanda los nodos en el panel Console. Elija Computers > My Computer > Distributed Transaction Coordinator.
- Haga clic con el botón derecho del ratón en Local DTC y elija Properties.
- En el cuadro de diálogo que se muestra, haga clic en la pestaña Security. Configure la información según sea necesario como se muestra en Figura 2 y haga clic en OK.
Eliminación de hosts
- Inicie sesión en la consola de gestión.
- Haga clic en en la esquina superior izquierda y seleccione una región y un proyecto.
- Haga clic en en la esquina superior izquierda de la página y seleccione Databases > Relational Database Service.
- En la página Instances, haga clic en la instancia de base de datos de destino.
- En el panel de navegación de la izquierda, elija Distributed Transactions. En la lista de hosts, busque el host que desea eliminar y haga clic en Delete en la columna Operation.
Alternativamente, seleccione uno o más hosts que se van a eliminar y haga clic en Delete encima de la lista para eliminar hosts por lotes.
- En el cuadro de diálogo que se muestra, haga clic en Yes.