Elosztott tranzakciókoordinátor (DTC) felügyelt Azure SQL-példányhoz
A következőre vonatkozik: Felügyelt Azure SQL-példány
Ez a cikk áttekintést nyújt a felügyelt Azure SQL-példány elosztott tranzakciós koordinátoráról (DTC). A DTC használatával elosztott tranzakciókat futtathat vegyes környezetekben, többek között felügyelt példányokon, SQL Server-példányokon, más relációsadatbázis-kezelő rendszereken (RDBMS-ek), egyéni alkalmazásokon és egyéb tranzakció résztvevőin, amelyek bármely olyan környezetben futnak, amely hálózati kapcsolatot létesíthet az Azure-ral.
Megjegyzés:
A felügyelt Azure SQL-példányhoz készült DTC a 2022. novemberi funkcióhullám része. A funkcióhullám bevezetésének ütemtervéről további információt a 2022. novemberi funkcióhullámban talál.
Forgatókönyvek
Engedélyezheti a felügyelt Azure SQL-példány DTC-nek, hogy elosztott tranzakciókat futtasson több környezetben, amelyek hálózati kapcsolatot létesíthetnek az Azure-ral. A felügyelt SQL-példány DTC-jének kezelése azt jelenti, hogy az Azure gondoskodik a felügyeletről és a karbantartásról, például a naplózásról, a tárolásról, a DTC rendelkezésre állásáról és a hálózatkezelésről. A felügyelt szemponton kívül a felügyelt SQL-példány DTC-je ugyanaz a DTC Windows-szolgáltatás , amely támogatja az SQL Server hagyományos elosztott tranzakcióit.
A felügyelt SQL-példányhoz készült DTC számos technológiát és forgatókönyvet old fel, beleértve az XA, a .NET, a T-SQL, a COM+, az ODBC és a JDBC használatát.
Elosztott tranzakciók futtatásához hajtsa végre az alábbi feladatokat:
- Configure DTC.
- Enable network connectivity between participants.
- Configure DNS settings.
Megjegyzés:
A csak felügyelt példányok által üzemeltetett adatbázisok közötti T-SQL- vagy .NET-elosztott tranzakciók esetében javasoljuk, hogy natív támogatást használjon az elosztott tranzakciókhoz.
Requirements
A DTC beállításainak módosításához írási engedélyekkel kell rendelkeznie az erőforráshoz Microsoft.Sql/managedInstances/dtc
. A DTC-beállítások megtekintéséhez olvasási engedélyekkel kell rendelkeznie az erőforráshoz Microsoft.Sql/managedInstances/dtc
.
DTC konfigurálása
A DTC-t az Azure Portal, az Azure PowerShell és a CLI használatával konfigurálhatja.
A DTC konfigurálása az Azure Portal használatával:
Az Azure Portalon nyissa meg a felügyelt példányt.
A Gépház alatti bal oldali menüben válassza az Elosztott tranzakció koordinátora lehetőséget.
Az Alapszintű beállítások lapon állítsa az Elosztott tranzakciós koordinátort engedélyezve értékre.
A Biztonság lapon engedélyezze a bejövő vagy kimenő tranzakciókat, és engedélyezze az XA-t vagy az SNA LU-t.
A Hálózatkezelés lapon adja meg a DTC DNS-t, és kérje le a külső DNS és hálózat konfigurálásához szükséges információkat.
Hálózati kapcsolat
A DTC használatához minden tranzakció résztvevőjének hálózati kapcsolattal kell rendelkeznie az Azure-ral. Mivel a felügyelt példányok mindig egy dedikált azure-beli virtuális hálózaton vannak üzembe helyezve, a külső környezetet a felügyelt példány virtuális hálózatához kell csatlakoztatnia. Ebben a kontextusban a külső olyan objektumra vagy folyamatra hivatkozik, amely nem az Ön felügyelt példánya. Ha a külső erőforrás az Azure-ban is használ virtuális hálózatot, használhatja a virtuális hálózatok közötti társviszony-létesítést. Ellenkező esetben hozzon létre kapcsolatot az előnyben részesített módszerrel, például pont–hely VPN, Azure ExpressRoute vagy más, az üzleti igényeknek megfelelő hálózati kapcsolati technológia használatával.
A 135-ös portnak és az 1024-65535-ös portnak engedélyeznie kell a bejövő és kimenő kommunikációt a felügyelt példány virtuális hálózati biztonsági csoportjában és a külső környezetben beállított tűzfalon.
DNS-beállítások
A DTC a tranzakció résztvevőinek NetBIOS-nevére támaszkodik a kölcsönös kommunikációhoz. Mivel a NetBIOS protokollt nem támogatja az Azure hálózatkezelése, és a NetBIOS-nevek nem oldhatók fel vegyes környezetekben, a felügyelt példányok DTC-je a DNS-névkiszolgálókra támaszkodik a gazdagépnév-feloldáshoz. A felügyelt példányok DTC-gazdagépei automatikusan regisztrálva lesznek az Azure DNS-kiszolgálón. Külső DTC-gazdagépeket regisztrálnia kell egy DNS-kiszolgálón. A felügyelt példánynak és a külső környezetnek DNS-utótagokat is cserélnie kell.
Az alábbi ábrán a névfeloldás vegyes környezetekben látható:
Megjegyzés:
Nem kell konfigurálnia a DNS-beállításokat, ha csak XA-tranzakciókhoz szeretné használni a DTC-t.
DNS-utótagok cseréje:
Az Azure Portalon nyissa meg a felügyelt példányt.
A Gépház alatti bal oldali menüben válassza az Elosztott tranzakció koordinátora lehetőséget. Válassza a Hálózatkezelés lapot.
A DNS-konfigurációban válassza az Új külső DNS-utótagot. Adja meg a külső környezet DNS-utótagját, például
dnszone1.com
.Másolja ki a DTC-gazdagép DNS-utótagjának értékét. Ezután a külső környezet PowerShell-parancsával
Set-DnsClientGlobalSetting -SuffixSearchList $list
állítsa be a DTC-gazdagép DNS-utótagját. Ha például az utótagja,abc1111111.database.windows.net
adja meg a paramétert$list
a meglévő DNS-beállítások lekéréséhez. Ezután fűzze hozzá az utótagot az alábbi példában látható módon:$list = (Get-DnsClientGlobalSetting).SuffixSearchList + "abc1111111.database.windows.net" Set-DnsClientGlobalSetting -SuffixSearchList $list
Hálózati kapcsolat tesztelése
A hálózatkezelés és a DNS konfigurálása után futtassa a Test-Net Csatlakozás ion (TNC) parancsot a felügyelt példány DTC-végpontjai és a külső DTC-gazdagép között.
A kapcsolat teszteléséhez először frissítse a felhasználó által konfigurálható értékeket. Ezután használja a következő PowerShell-szkriptet a külső környezetben a felügyelt DTC-gazdagéppéldány teljes tartománynevének (FQDN) azonosításához. Here's an example:
# ===============================================================
# Get DTC settings
# ===============================================================
# User-configurable values
#
$SubscriptionId = "a1a1a1a1-8372-1d28-a111-1a2a31a1a1a1"
$RgName = "my-resource-group"
$MIName = "my-instance-name"
# ===============================================================
#
$startMoveUri = "https://management.azure.com/subscriptions/" + $SubscriptionId + "/resourceGroups/" + $RgName + "/providers/Microsoft.Sql/managedInstances/" + $MIName + "/dtc/current?api-version=2022-05-01-preview"
Write-Host "Sign in to Azure subscription $SubscriptionID ..."
Select-AzSubscription -SubscriptionName $SubscriptionID
$azContext = Get-AzContext
$azProfile = [Microsoft.Azure.Commands.Common.Authentication.Abstractions.AzureRmProfileProvider]::Instance.Profile
$profileClient = New-Object -TypeName Microsoft.Azure.Commands.ResourceManager.Common.RMProfileClient -ArgumentList ($azProfile)
Write-Host "Getting authentication token for REST API call ..."
$token = $profileClient.AcquireAccessToken($azContext.Subscription.TenantId)
$authHeader = @{'Content-Type'='application/json';'Authorization'='Bearer ' + $token.AccessToken}
# Invoke API call to start the operation
#
Write-Host "Starting API call..."
$startMoveResp = Invoke-WebRequest -Method Get -Headers $authHeader -Uri $startMoveUri
Write-Host "Response:" $startMoveResp
# End
# ===============================================================
A JSON-kimenet a következő FQDN-példához hasonlít:
chn000000000000.zcn111111111.database.windows.net
Hol:
chn000000000000
A felügyelt példány DTC-gazdagépének NetBIOS-neve.zcn111111111.database.windows.net
a DNS-utótag.
Ezután futtasson egy TNC-t a felügyelt példány DTC-gazdagépének teljes tartományneve és NetBIOS-neve között a 135-ös porton. Az alábbi példában az első bejegyzés ellenőrzi a hálózati kapcsolatot. A második bejegyzés ellenőrzi, hogy a DNS-beállítások helyesek-e.
tnc chn000000000000.zcn111111111.database.windows.net -Port 135
tnc chn000000000000 -Port 135
Ha a kapcsolat és a DNS-utótagok megfelelően vannak konfigurálva, megjelenik a TcpTestSucceeded : True kimenet.
A felügyelt példány oldalán hozzon létre egy SQL Agent-feladatot a TNC PowerShell-parancs futtatásához a külső gazdagéphez való kapcsolódás teszteléséhez.
Ha például a külső gazdagép teljes tartományneve az host10.dnszone1.com
, futtassa a következő tesztet az SQL Agent-feladaton keresztül:
tnc host10.dnszone1.com -Port 135
tnc host10 -Port 135
Limitations
Vegye figyelembe a következő korlátozásokat, amikor felügyelt SQL-példányokkal használja a DTC-t:
- A felügyelt SQL-példány és egy külső RDBMS között elosztott T-SQL-tranzakciók futtatása nem támogatott. A felügyelt SQL-példány nem támogatja a külső RDBMS-ekkel rendelkező csatolt kiszolgálókat. Ezzel szemben támogatott az elosztott T-SQL-tranzakciók futtatása a felügyelt példányok és az SQL Server és más SQL Server-alapú termékek között.
- A külső környezet gazdagépnevei nem lehetnek hosszabbak 15 karakternél.
- A DTC nem támogatja az Azure SQL Database-be történő elosztott tranzakciókat.
- A hitelesítéshez a DTC csak a nincs hitelesítési lehetőséget támogatja. A kölcsönös hitelesítés és a bejövő hívó hitelesítési beállításai nem érhetők el. Mivel a DTC csak szinkronizálási üzeneteket cserél, felhasználói adatokat nem, és mivel kizárólag a virtuális hálózattal kommunikál, ez a korlátozás nem jelent biztonsági kockázatot.
Tranzakciók kezelése
Az elosztott tranzakciók statisztikáinak megtekintéséhez tekintse meg a sys.dm_tran_distributed_transaction_stats.
A DTC-naplót visszaállíthatja a sp_reset_dtc_log tárolt eljárással.
Az elosztott tranzakciók a sys.sp_manage_distributed_transaction tárolt eljárással kezelhetők.
Következő lépések
A natív felügyelt példányok elosztott tranzakciótámogatását lásd : Rugalmas tranzakciók.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: