Managed Instance bağlantısı için en iyi uygulamalar - Azure SQL Managed Instance

Şunlar için geçerlidir:Azure SQL Managed Instance

Bu makalede, Managed Instance link kullanarak verileri Azure SQL Managed Instance ile herhangi bir yerde barındırılan SQL Server örnekleriniz arasında çoğaltmaya yönelik en iyi yöntemler özetlenmektedir. Bağlantı, bağlı çoğaltmalar arasında neredeyse gerçek zamanlı veri çoğaltması sağlar.

Log yedeklerini düzenli olarak alın.

İlk ana SQL Server'ınız SQL Server ise, ilk dağıtım tamamlandıktan sonra, veritabanı Azure SQL Managed Instance üzerinde artık Kurtarılıyor... durumunda olmadığında, ilk günlük yedeğini alın. Ardından SQL Server işlem günlüğü yedeklemelerini düzenli olarak alın SQL Server birincil roldeyken işlem günlüğü dosyası boyutunu iyi durumda tutun.

Bağlantı özelliği, Always On kullanılabilirlik gruplarını temel alan dağıtılmış kullanılabilirlik grupları teknolojisini kullanarak verileri çoğaltır. Dağıtılmış kullanılabilirlik grubu veri çoğaltması, işlem günlüğü kayıtlarını çoğaltmayı temel alır. Birincil SQL Server örneği, ikincil çoğaltmadaki veritabanına çoğaltılana kadar veritabanındaki işlem günlüğü kayıtlarını kesemez. Ağ bağlantısı sorunları, işlem günlüğü kaydı çoğaltmasının yavaşlamasına veya engellenmesine neden oluyorsa, günlük dosyası birincil sunucuda büyümeye devam eder. İş yükünün yoğunluğu ve ağ hızı büyüme hızını belirler. Ağ bağlantısı kesintisi uzun sürerse ve birincil örnekteki iş yükü ağırsa günlük dosyası tüm kullanılabilir depolama alanını alabilir.

Düzenli işlem günlüğü yedeklemeleri almak, işlem günlüğünün kesilmesini sağlar ve günlük dosyasının büyümesi nedeniyle birincil SQL Server örneğinde yer bitmesi riskini en aza indirir. SQL Managed Instance log yedeklemeleri otomatik olarak alındığından, ana sunucu konumunda olduğunda ek bir işleme gerek yoktur. SQL Server birincil sunucunuzda günlük yedeklemeleri düzenli olarak alarak, veritabanınızı beklenmedik günlük büyümelerine karşı daha dayanıklı hale getirirsiniz. SQL Server Agent görevi kullanarak günlük günlük yedekleme görevlerini zamanlamayı göz önünde bulundurun.

Günlük dosyasını yedeklemek için, bu bölümde sağlanan örnekte olduğu gibi bir Transact-SQL (T-SQL) betiği kullanabilirsiniz. Örnek betikteki yer tutucuları veritabanınızın adı, yedekleme dosyasının adı ve yolu ve açıklamasıyla değiştirin.

İşlem günlüğünüzü yedeklemek için SQL Server aşağıdaki örnek Transact-SQL (T-SQL) betiğini kullanın:

-- Execute on SQL Server
-- Take log backup
BACKUP LOG [<DatabaseName>]
TO DISK = N'<DiskPathandFileName>'
WITH NOFORMAT, NOINIT,
NAME = N'<Description>', SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS = 1

SQL Server'da veritabanınızın günlük alanı kullanımını denetlemek için aşağıdaki Transact-SQL (T-SQL) komutunu kullanın:

-- Execute on SQL Server
DBCC SQLPERF(LOGSPACE); 

Sorgu çıktısı örnek veritabanı tpcciçin aşağıdaki örneğe benzer:

Kullanılan günlük dosyası boyutunu ve alanını gösteren komutun sonuçlarını içeren ekran görüntüsü

Bu örnekte veritabanı, kullanılabilir günlüğün %76'sını kullandı ve mutlak günlük dosyası boyutu yaklaşık 27 GB (27.971 MB) oldu. Eylem eşikleri iş yükünüz temelinde farklılık gösterir. Önceki örnekte, genellikle işlem günlüğünün boyutu ve kullanım yüzdesi, günlük dosyasını kesmek ve biraz yer açmak için bir işlem günlüğü yedeği almanız gerektiğini veya daha sık günlük yedeklemeleri yapmanız gerektiğini gösterir. Ayrıca, işlem günlüğü kesme işleminin açık işlemler tarafından engellendiğinin bir göstergesi de olabilir. SQL Server'da işlem günlüğü sorunlarını giderme hakkında daha fazla bilgi için bkz. Tam İşlem Günlüğü Oluşturma (SQL Server Hatası 9002). Azure SQL Managed Instance işlem günlüğü sorunlarını giderme hakkında daha fazla bilgi için bkz. Azure SQL Managed Instance ile işlem günlüğü hatalarını giderme.

Not

Bir bağlantıya katıldığında, ister birincil replikada olsun ister olmasın, SQL Managed Instance otomatik olarak tam ve işlem günlüğü yedekleri alır. Değişiklik yedekleri alınmaz ve bu da daha uzun geri yükleme sürelerine yol açabilir.

Çoğaltmalar arasındaki performans kapasitesini eşleştirme

Bağlantı özelliğini kullandığınızda, SQL Server ile SQL Managed Instance arasındaki performans kapasitesini eşleştirin. Bu eşleme, ikincil replikanın birincil replikadan gelen çoğaltmaya yetişememesi veya yük devretmeden sonra performans sorunlarını önlemenize yardımcı olur. Performans kapasitesi CPU çekirdeklerini (veya Azure sanal çekirdekleri), belleği ve G/Ç aktarım hızını içerir.

İkincil çoğaltmadaki yineleme kuyruğu boyutunu denetleyerek çoğaltmanın performansını izleyebilirsiniz. Yineleme kuyruğunun boyutu, ikincil çoğaltmada yeniden işlenmeyi bekleyen günlük kayıtlarının sayısını gösterir. Tutarlı olarak yüksek yeniden yapma kuyruğu boyutu, ikincil çoğaltmanın birincil çoğaltmaya ayak uyduramadığını gösterir. Yineleme kuyruğu boyutunu aşağıdaki yollarla de kontrol edebilirsiniz:

Yineleme kuyruğunun boyutu sürekli yüksekse, ikincil replikadaki kaynakları artırmayı göz önünde bulundurun.

Çoğaltma gecikmesini izleme

Çoğaltma gecikmesini izleme, ikincil çoğaltmanın birincil çoğaltmayla eşitlenme hızını belirlemenize yardımcı olur. Büyük bir tutarsızlık, ikincil çoğaltmanın birincil çoğaltmaya ayak uydurmada sorun yaşadığını gösterir. Bu durum genellikle iki örnek arasındaki bağlantıda yavaş ağ aktarım hızı, iki çoğaltma arasında eşleşmeyen kaynak ayırma veya birincil çoğaltmadaki aşırı yüksek bir iş yükünden kaynaklanır.

Çoğaltma gecikmesinin dikkatle izlenmesi, özellikle planlı bir yük devretme işlemi gerçekleştirilmeden önce, ikincil çoğaltmanın birincil çoğaltmayla tam olarak senkronize olmasını gerektiren durumlarda önemlidir. Çoğaltma gecikmesi yüksekse, hizmet geçişinin tamamlanması daha uzun sürebilir ve bazı durumlarda başarısız bile olabilir.

Çoğaltmalar arasındaki çoğaltma gecikmesini izlemek için hem SQL Server hem de SQL Managed Instance aşağıdaki T-SQL sorgusunu kullanın:

-- Execute on SQL Server and SQL Managed Instance 
USE master
DECLARE @link_name varchar(max) = '<DAGname>'
SELECT
   ag.name [Link name], 
   ars1.role_desc [Link role],
   ars2.connected_state_desc [Link connected state],
   ars2.synchronization_health_desc [Link sync health],
   drs.secondary_lag_seconds [Link replication latency (seconds)]
FROM
   sys.availability_groups ag 
   JOIN sys.dm_hadr_availability_replica_states ars1
   ON ag.group_id = ars1.group_id
   JOIN sys.dm_hadr_availability_replica_states ars2
   ON ag.group_id = ars2.group_id
   JOIN sys.dm_hadr_database_replica_states drs
   ON ars2.replica_id = drs.replica_id
WHERE 
   ag.is_distributed = 1 AND ag.name = @link_name AND ars1.is_local = 1 AND ars2.is_local = 0
GO

Sertifikayı döndürme

SQL Server veritabanı yansıtma uç noktasının güvenliğini sağlamak için kullanılan sertifikayı el ile döndürmeniz gerekebilir. SQL Managed Instance'ta bulunan veritabanı yansıtma uç noktasının güvenliğini sağlamak için kullanılan sertifika, hizmet tarafından yönetilip otomatik olarak yenilendiğinden, sizin manuel olarak yenilemenize gerek yoktur.

SQL Server

SQL Server veritabanı yansıtma uç noktasının güvenliğini sağlamak için kullandığınız sertifikanın süresi dolabilir. Sertifikanın süresi dolarsa bağlantıda düşüşe yol açabilir. Bu sorunu önlemek için sertifikanın süresi dolmadan önce döndürün .

Geçerli sertifikanın son kullanma tarihini denetlemek için aşağıdaki Transact-SQL (T-SQL) komutunu kullanın:

-- Run on SQL Server
USE MASTER
GO
SELECT * FROM sys.certificates WHERE pvt_key_encryption_type = 'MK' 

Sertifikanızın süresi dolmak üzereyse veya süresi dolmuşsa , yeni bir sertifika oluşturun ve geçerli sertifikayı değiştirmek için mevcut uç noktayı değiştirin.

Uç noktayı yeni sertifikayı kullanacak şekilde yapılandırdıktan sonra süresi dolan sertifikayı bırakabilirsiniz .

SQL Managed Instance

SQL Managed Instance veritabanı yansıtma uç noktası sertifikası düzenli aralıklarla otomatik olarak döndürülür. sertifika zincirini SQL Server üzerinde başarıyla validate edebildiğiniz sürece SQL Managed Instance'da veritabanı yansıtma uç noktası sertifikasının son kullanma tarihini izlemeniz gerekmez.

SQL Server sertifika zincirini doğrulama

Not

Mevcut bağlantılar için sertifika zincirini düzenli aralıklarla doğrulayın veya düzeyi düşürülmüş bağlantıyla ilgili sorunları giderin. Yeni bir bağlantı yapılandırıyorsanız veya Sertifika ortak anahtarını SQL Managed Instance'tan alın ve SQL Server'a aktarın ile Azure güvenilir kök sertifika yetkilisi anahtarlarını SQL Server'a aktarın bölümlerindeki adımları kısa süre önce tamamladıysanız, bu bölümü atlayın.

Sertifika zinciriyle ilgili sorunlar bağlantıyı düşürebilir. Bu sorunu önlemek için SQL Server üzerindeki sertifika zincirini düzenli olarak doğrulayın.

Aşağıdaki senaryolar SQL Server sertifika zinciriyle ilgili sorunlara neden olabilir:

  • SQL Managed Instance üzerinde zamanlanmış bir sertifika döngüsü.
  • veritabanı yansıtma uç noktasının güvenliğini sağlamak için kullanılan sertifikayı bırakma veya değiştirme gibi SQL Server üzerindeki sertifikalarda yanlışlıkla yapılan değişiklikler.

İlk olarak, certificate_id değerini değiştirip ardından SQL Server'da aşağıdaki sorguyu çalıştırarak içeri aktarılan MI uç nokta sertifikasının <ManagedInstanceFQDN> belirleyin:

-- Run on SQL Server 
USE master 
SELECT name, subject, certificate_id, start_date, expiry_date 
FROM sys.certificates 
WHERE issuer_name LIKE '%Microsoft Corporation%' AND name = '<ManagedInstanceFQDN>' 
GO 

Ardından, önceki sorgunun sonucundan <certificate_id> değerini değiştirip SQL Server aşağıdaki sorguyu çalıştırarak sertifikayı doğrulayın:

-- Run on SQL Server 
USE master
EXEC sp_validate_certificate_ca_chain <certificate_id> 
GO 

yanıtı Commands completed successfully. Completion time: ... , MI uç nokta sertifikasının başarıyla doğrulanmış olduğunu gösterir.

Önemli

Saklı yordam sp_validate_certificate_ca_chain , sertifika doğrulaması gerçekleştirmek için konak işletim sistemi hizmetlerini kullanır ve bu da çevrimiçi sertifika iptal denetimi içerebilir. Konak işletim sistemi İnternet'e erişecek şekilde yapılandırılmamışsa, sertifika zinciri geçerli olsa bile yürütme başarısız olur.

Hatayla karşılaşırsanız, en güvenilir çözüm, önce silerek sertifika zincirini geri yüklemektir; Sertifika ortak anahtarını SQL Yönetilen Örnek'ten alıp SQL Server'a aktarın ve Azure güvenceli kök sertifika yetkilisi anahtarlarını SQL Server'a aktarın adımlarında oluşturulan tüm sertifikaları, ardından bu sertifikaları yeniden içeri aktarın.

Başlangıç izleme bayrakları ekleme

SQL Server, başlangıç parametreleri olarak eklendiğinde bağlantı aracılığıyla veri çoğaltma performansını iyileştirebilen iki izleme bayrağı (-T1800 ve -T9567) vardır. Daha fazla bilgi edinmek için bkz . Başlangıç izleme bayraklarını etkinleştirme.

Eşzamanlı işlemi dikkatli kullanın

Bağlantı için varsayılan işleme modu zaman uyumsuzdur. İşleme modunu zaman uyumlu olarak değiştirmek mümkün olsa da, olası veri kaybına karşı güvenli hale getirmek önerilmez ve gerekli değildir.

Planlanan bağlı yük devretme sırasında çoğaltma, yük devretme tamamlanana kadar geçici olarak eşzamanlı işleme moduna geçer. Yük devretme sonrasında, yük devretmeden önce açıkça zaman uyumlu işleme moduna ayarlanmış olsa bile işleme modu tekrar zaman uyumsuz moda geçer.

Bağlantı için eşzamanlı taahhüt modu kullanılması, özellikle replikalar arasında yüksek ağ gecikmesi varsa, birincil repliğinizin performansını etkileyebilir. Senkron taahhüt modunda, birincil çoğaltmadaki işlemler, birincil üzerinde işleme alınmadan önce işlem günlüğü kayıtlarının ikincil çoğaltmada sağlamlaştırıldığını onaylamak için beklemek zorundadır. Bu bekleme süresi daha yüksek ağ gecikme süresiyle artar ve bu da işlem yanıt sürelerinin artmasına ve birincil çoğaltmada aktarım hızının azalmasına neden olabilir.

Bağlantıyı kullanmak için:

Bağlantı hakkında daha fazla bilgi edinmek için:

Diğer çoğaltma ve geçiş senaryoları için şunları göz önünde bulundurun: