Aracılığıyla paylaş


Azure SQL Yönetilen Örneği için Dağıtılmış İşlem Düzenleyicisi (DTC)

Şunlar için geçerlidir:Azure SQL Yönetilen Örneği

Bu makalede, Azure SQL Yönetilen Örneği için Dağıtılmış İşlem Düzenleyicisi'ne (DTC) genel bir bakış sağlanır. Yönetilen örnekler, SQL Server örnekleri, diğer ilişkisel veritabanı yönetim sistemleri (RDBMS'ler), özel uygulamalar ve Azure'a ağ bağlantısı kurabilen herhangi bir ortamda barındırılan diğer işlem katılımcıları dahil olmak üzere karma ortamlarda dağıtılmış işlemleri çalıştırmak için DTC'yi kullanabilirsiniz.

Not

Azure SQL Yönetilen Örneği için DTC, Kasım 2022 özellik dalgasının bir parçasıdır. Özellik dalgası dağıtımının zaman çizelgesi hakkında daha fazla bilgi edinmek için bkz . Kasım 2022 özellik dalgası.

Senaryolar

Azure SQL Yönetilen Örneği için DTC'yi etkinleştirerek Azure'a ağ bağlantısı kurabilen birden çok ortamda dağıtılmış işlemler çalıştırabilirsiniz. SQL Yönetilen Örneği için DTC yönetilir, bu da Azure'ın günlük, depolama, DTC kullanılabilirliği ve ağ gibi yönetim ve bakım işlemleriyle ilgilendiği anlamına gelir. Yönetilen yönün yanı sıra, SQL Yönetilen Örneği için DTC, SQL Server için geleneksel dağıtılmış işlemleri destekleyen aynı DTC Windows hizmetidir.

SQL Yönetilen Örneği için DTC, XA, .NET, T-SQL, COM+, ODBC ve JDBC gibi çok çeşitli teknoloji ve senaryoların kilidini açar.

Dağıtılmış işlemleri çalıştırmak için şu görevleri tamamlayın:

  1. DTC'yi yapılandırın.
  2. Katılımcılar arasındaki ağ bağlantısını etkinleştirin.
  3. DNS ayarlarını yapılandırın.

Not

Yalnızca yönetilen örnekler tarafından barındırılan veritabanları arasında T-SQL veya .NET dağıtılmış işlemleri için dağıtılmış işlemler için yerel destek kullanmanızı öneririz.

Gereksinimler

DTC ayarlarını değiştirmek için kaynak için Microsoft.Sql/managedInstances/dtc yazma izinlerine sahip olmanız gerekir. DTC ayarlarını görüntülemek için kaynak için Microsoft.Sql/managedInstances/dtc okuma izinlerine sahip olmanız gerekir.


DTC'yi yapılandırın

DTC'yi Azure portalı, Azure PowerShell ve CLI ile yapılandırabilirsiniz.

DTC'yi Azure portalını kullanarak yapılandırmak için:

  1. Azure portalında yönetilen örneğinize gidin.

  2. Ayarlar altındaki sol menüde Dağıtılmış İşlem Düzenleyicisi'ni seçin.

    Vurgulanan menü seçeneğini, SQL Yönetilen Örneği için Dağıtılmış İşlem Düzenleyicisi bölmesini ve Temel Bilgiler sekmesini gösteren ekran görüntüsü.

  3. Temel Bilgiler sekmesinde Dağıtılmış İşlem Düzenleyicisi'ni Etkin olarak ayarlayın.

  4. Güvenlik sekmesinde, gelen veya giden işlemlere izin verin ve XA veya SNA LU'yi etkinleştirin.

  5. sekmesinde DTC DNS'yi belirtin ve dış DNS ile ağı yapılandırmak için bilgi alın.

Ağ bağlantısı

DTC'yi kullanmak için tüm işlem katılımcılarının Azure'a bir ağ bağlantısı olmalıdır. Yönetilen örnekler her zaman Azure'daki ayrılmış bir sanal ağa dağıtıldığından, dış ortamınızı yönetilen örneğinizin sanal ağına bağlamanız gerekir. Bu bağlamda, dış, yönetilen örneğiniz olmayan herhangi bir nesneye veya işleme başvurur. Dış kaynağınız Azure'da bir sanal ağ da kullanıyorsa, sanal ağ eşlemesini kullanabilirsiniz. Aksi takdirde noktadan siteye VPN, Azure ExpressRoute veya iş gereksinimlerinizi karşılayan başka bir ağ bağlantısı teknolojisi gibi tercih ettiğiniz yöntemi kullanarak bağlantı kurun.

135 numaralı bağlantı noktası hem gelen hem de giden iletişime izin vermelidir, 14000-15000 bağlantı noktası aralığı gelen iletişime izin vermelidir ve 49152-65535,hem yönetilen örneğin sanal ağ güvenlik grubunda hem de dış ortamda ayarlanmış herhangi bir güvenlik duvarında giden iletişime izin vermelidir.

DNS ayarları

DTC, karşılıklı iletişim için bir işlem katılımcının NetBIOS adına dayanır. NetBIOS protokolü Azure ağı tarafından desteklenmediğinden ve NetBIOS adları karma ortamlarda çözümlenemediğinden yönetilen örnek için DTC, ana bilgisayar adı çözümlemesi için DNS ad sunucularına dayanır. Yönetilen örnek DTC konakları Azure DNS sunucusuna otomatik olarak kaydedilir. Dış DTC konaklarını bir DNS sunucusuna kaydetmeniz gerekir. Yönetilen örnek ve dış ortam da DNS soneklerini değiştirmelidir.

Aşağıdaki diyagramda karma ortamlarda ad çözümlemesi gösterilmektedir:

DTC kullandığınızda karma ortamlarda ad çözümlemesini gösteren diyagram.

Not

DTC'yi yalnızca XA işlemleri için kullanmayı planlıyorsanız DNS ayarlarını yapılandırmanız gerekmez.

DNS soneklerini değiştirmek için:

  1. Azure portalında yönetilen örneğinize gidin.

  2. Ayarlar altındaki sol menüde Dağıtılmış İşlem Düzenleyicisi'ni seçin. sekmesini seçin.

    Azure portalında yönetilen örneğinizin DTC bölmesinin Ağ sekmesini gösteren ve Yeni dış DNS soneki vurgulanmış ekran görüntüsü.

  3. DNS yapılandırması'nda Yeni dış DNS son eki'ni seçin. Dış ortamınız için DNS sonekini girin, örneğin dnszone1.com.

  4. DTC Ana Bilgisayarı DNS soneki değerini kopyalayın. Ardından dış ortamınızda PowerShell komutunu Set-DnsClientGlobalSetting -SuffixSearchList $list kullanarak DTC Ana Bilgisayarı DNS sonekini ayarlayın. Örneğin, sonekiniz ise abc1111111.database.windows.net, mevcut DNS ayarlarını almak için parametrenizi $list tanımlayın. Ardından, aşağıdaki örnekte gösterildiği gibi son ekinizi ekleyin:

    $list = (Get-DnsClientGlobalSetting).SuffixSearchList + "abc1111111.database.windows.net"
    Set-DnsClientGlobalSetting -SuffixSearchList $list
    

Ağ bağlantısını test etme

Ağ ve DNS'yi yapılandırdıktan sonra, yönetilen örneğinizin DTC uç noktalarıyla dış DTC konağı arasında Test-Net Bağlan ion (TNC) komutunu çalıştırın.

Bağlantıyı test etmek için önce kullanıcı tarafından yapılandırılabilir değerleri güncelleştirin. Ardından, DTC ana bilgisayar yönetilen örneğinin tam etki alanı adını (FQDN) tanımlamak için dış ortamda aşağıdaki PowerShell betiğini kullanın. Bir örnek aşağıda verilmiştir:

# =============================================================== 
# 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 
# =============================================================== 

JSON çıkışı aşağıdaki FQDN örneğine benzer:

chn000000000000.zcn111111111.database.windows.net

Where:

  • chn000000000000 yönetilen örnek DTC ana bilgisayarının NetBIOS adıdır.
  • zcn111111111.database.windows.net DNS sonekidir.

Ardından, 135 numaralı bağlantı noktasında hem FQDN hem de yönetilen örnek DTC ana bilgisayarının NetBIOS adı için bir TNC çalıştırın. Aşağıdaki örnekte, ilk girdi ağ bağlantısını doğrular. İkinci girdi, DNS ayarlarının doğru olduğunu doğrular.

tnc chn000000000000.zcn111111111.database.windows.net -Port 135 
tnc chn000000000000 -Port 135 

Bağlantı ve DNS son ekleri doğru yapılandırıldıysa TcpTestSucceeded : True çıkışı görüntülenir.

Yönetilen örnek tarafında, dış konağınıza bağlantıyı test etmek için TNC PowerShell komutunu çalıştırmak için bir SQL Aracısı işi oluşturun.

Örneğin, dış konağınız için FQDN ise host10.dnszone1.com, SQL Aracısı işiniz aracılığıyla aşağıdaki testi çalıştırın:

tnc host10.dnszone1.com -Port 135 
tnc host10 -Port 135 

Sınırlamalar

SQL Yönetilen Örneği ile DTC kullanırken aşağıdaki sınırlamaları göz önünde bulundurun:

  • SQL Yönetilen Örneği ile üçüncü taraf RDBMS arasında dağıtılmış T-SQL işlemlerinin çalıştırılması desteklenmez. SQL Yönetilen Örneği, üçüncü taraf RDBMS'leri olan bağlı sunucuları desteklemez. Buna karşılık, yönetilen örnekleri ve SQL Server ile diğer SQL Server tabanlı ürünler arasında dağıtılmış T-SQL işlemlerinin çalıştırılması desteklenir.
  • Dış ortamdaki konak adları 15 karakterden uzun olamaz.
  • Azure SQL Veritabanı dağıtılmış işlemler DTC ile desteklenmez.
  • Kimlik doğrulaması için DTC yalnızca kimlik doğrulaması yok seçeneğini destekler. Karşılıklı kimlik doğrulaması ve gelen arayan kimlik doğrulaması seçenekleri kullanılamaz. DTC kullanıcı verilerini değil yalnızca eşitleme iletilerini değiştirdiğinden ve yalnızca sanal ağ ile iletişim kuracağından bu sınırlama bir güvenlik riski değildir.

İşlemleri yönetme

Dağıtılmış işlemlerin istatistiklerini görüntülemek için bkz. sys.dm_tran_distributed_transaction_stats.

DTC günlüğünü sp_reset_dtc_log saklı yordamı ile sıfırlayabilirsiniz.

Dağıtılmış işlemler sys.sp_manage_distributed_transaction saklı yordamıyla yönetilebilir.

Sonraki adımlar

Yerel yönetilen örnek dağıtılmış işlem desteği için bkz . Elastik işlemler.