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.
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:
- DTC'yi yapılandırın.
- Katılımcılar arasındaki ağ bağlantısını etkinleştirin.
- 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:
Soldaki menüden Ayarlar'ın altında Dağıtılmış İşlem Düzenleyicisi'ni seçin.
Temel Bilgiler sekmesinde Dağıtılmış İşlem Düzenleyicisi'ni Etkin olarak ayarlayın.
Güvenlik sekmesinde, gelen veya giden işlemlere izin verin ve XA veya SNA LU'yi etkinleştirin.
Ağ 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:
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:
Soldaki menüden Ayarlar'ın altında Dağıtılmış İşlem Düzenleyicisi'ni seçin. Ağ sekmesini seçin.
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
.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 iseabc1111111.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-NetConnection (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 = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
$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.