Pour activer les transactions distribuées entre des instances Elastic Compute Service (ECS) spécifiques et une instance ApsaraDB RDS for SQL Server, configurez une liste d'autorisation de transactions distribuées côté RDS et ouvrez les ports requis dans le groupe de sécurité de l'instance ECS.
Résumé des étapes :
Ajoutez l'adresse IP de l'instance ECS à la liste d'autorisation d'adresses IP de l'instance RDS.
Ajoutez le nom d'ordinateur et l'adresse IP de l'instance ECS à la liste d'autorisation de transactions distribuées.
Ajoutez des règles entrantes au groupe de sécurité de l'instance ECS pour autoriser le trafic sur les ports 135 et 1024–65535.
Prérequis
Avant de commencer, assurez-vous que :
-
L'instance RDS exécute l'une des versions suivantes de SQL Server :
SQL Server 2025 EE (Always On), SQL Server 2022 EE (Always On), SQL Server 2019 EE (Always On) ou SQL Server 2017 EE (Always On)
SQL Server 2016 EE, ou SQL Server 2012 EE
SQL Server 2025 SE, SQL Server 2022 SE, SQL Server 2019 SE, SQL Server 2017 SE, SQL Server 2016 SE, ou SQL Server 2012 SE
SQL Server 2008 R2 avec des disques cloud
L'instance RDS utilise la famille d'instances à usage général ou dédiée.
L'instance RDS utilise la méthode de facturation par abonnement ou paiement à l'utilisation.
Pour vérifier la version de l'instance, la famille et la méthode de facturation, accédez à la page Basic Information de l'instance RDS.
Limites
Les configurations suivantes ne sont pas prises en charge :
Famille d'instances partagées
Instances serverless
Notes d'utilisation
Après une mise à niveau majeure de la version du moteur, une mise à jour mineure de la version du moteur ou une migration d'instance entre zones, le nom d'hôte et l'adresse IP de l'instance ECS sous-jacente peuvent changer. Après l'une de ces opérations, mettez à jour les règles du groupe de sécurité ECS pour qu'elles correspondent aux paramètres actuels de la liste d'autorisation.
Pour afficher le nom d'hôte et l'adresse IP actuels, accédez à Data Security > Distributed Transaction Whitelist dans la console RDS.
Configurer l'instance RDS
Étape 1 : Ajouter l'adresse IP de l'instance ECS à la liste d'autorisation de l'instance RDS
Les transactions distribuées nécessitent que l'instance RDS accepte les connexions provenant de l'instance ECS. Ajoutez l'adresse IP de l'instance ECS à la liste d'autorisation d'adresses IP default.
Connectez-vous à la console ApsaraDB RDS et accédez à la page Instances. Dans la barre de navigation supérieure, sélectionnez la région où se trouve l'instance RDS, puis cliquez sur l'ID de l'instance.
-
Dans le volet de navigation de gauche, cliquez sur Whitelist and SecGroup. Sous l'onglet Whitelist Settings, cliquez sur Modify à droite de la liste d'autorisation
defaultet ajoutez l'adresse IP de l'instance ECS.La figure suivante indique où trouver les adresses IP d'une instance ECS.
Si l'instance ECS et l'instance RDS se trouvent dans le même réseau privé virtuel (VPC), saisissez l'adresse IP privée de l'instance ECS.
Si elles se trouvent dans des VPC différents, saisissez l'adresse IP publique de l'instance ECS. Vous devez également demander un endpoint public pour l'instance RDS. Pour plus de détails, consultez la rubrique Demander ou libérer un endpoint public.
Pour trouver les adresses IP de l'instance ECS, accédez à la page Instance Details de l'instance ECS dans la console ECS. Pour plus d'informations, consultez la rubrique Afficher les adresses IP.
Cliquez sur OK.
Étape 2 : Configurer la liste d'autorisation de transactions distribuées
Dans le volet de navigation de gauche, cliquez sur Data Security, puis cliquez sur l'onglet Distributed Transaction Whitelist.
-
Cliquez sur Create Whitelist. Dans la boîte de dialogue, configurez les paramètres suivants, puis cliquez sur OK.
Parameter
Description
Whitelist Name
Saisissez un nom de 2 à 32 caractères. Caractères autorisés : chiffres, lettres minuscules et traits de soulignement (
_). Le nom doit commencer par une lettre minuscule et se terminer par une lettre minuscule ou un chiffre.IP Addresses
Saisissez les entrées au format
IP address,Hostname, où le nom d'hôte correspond au nom d'ordinateur Windows de l'instance ECS. Exemple :192.168.1.100,k3ecstest. Pour plusieurs entrées, placez chaque entrée sur une ligne distincte. Pour trouver le nom d'ordinateur, ouvrez le Control Panel et accédez à System and Security > System.
Configurer l'instance ECS
Ajoutez des règles entrantes au groupe de sécurité pour ouvrir les ports utilisés par MSDTC pour la coordination des transactions distribuées.
Connectez-vous à la console ECS.
Dans le volet de navigation de gauche, choisissez Instances & Images > Instances.
Dans la barre de navigation supérieure, sélectionnez la région où se trouve l'instance ECS.
Recherchez l'instance ECS et cliquez sur son ID.
Cliquez sur Security Groups dans la barre de navigation supérieure.
Recherchez le groupe de sécurité et cliquez sur Manage Rules dans la colonne Actions.
-
Sous l'onglet Inbound, cliquez sur Add Rule et configurez les paramètres suivants, puis cliquez sur Save.
Le port 135 est le port fixe du service Remote Procedure Call (RPC).
Parameter
Value
Action
Autoriser
Priority
1 (par défaut)
Protocol type
TCP personnalisé
Port range
135
Source
Les deux adresses IP affichées sous Data Security > Distributed Transaction Whitelist dans la console RDS.
Vous pouvez également appeler l'opération API DescribeDBInstanceIpHostname pour interroger ces adresses IP.Description
Saisissez une description de 2 à 256 caractères. Elle ne peut pas commencer par
http://ouhttps://. Ajoutez une deuxième règle entrante avec les mêmes paramètres, sauf pour le paramètre Port range que vous devez définir sur 1024/65535.
Dépannage
« Communication with the underlying transaction manager has failed »
Cette erreur a deux causes courantes :
Le nom d'hôte ou l'adresse IP de l'instance ECS sous-jacente a changé. Cela se produit généralement après une mise à niveau majeure de la version du moteur, une mise à jour mineure de la version du moteur ou une migration d'instance entre zones. Accédez à Data Security > Distributed Transaction Whitelist dans la console RDS, vérifiez le nom d'hôte et l'adresse IP actuels, puis mettez à jour les règles du groupe de sécurité ECS pour qu'elles correspondent.
Le gestionnaire de transactions distribuées ne fonctionne pas correctement. Vérifiez s'il existe des paramètres incorrects, des problèmes d'autorisations ou des ressources serveur insuffisantes. Vérifiez également que la connexion au gestionnaire de transactions est stable.