Yük devretme bağlantısı - Azure SQL Managed Instance

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

Bu makalede, olağanüstü durum kurtarma veya geçiş amacıyla SQL Server Management Studio (SSMS) veya PowerShell kullanarak SQL Server ve Azure SQL Managed Instance arasında linked veritabanının yük devretmesi öğretilir.

Önkoşullar

Veritabanlarınızı bağlantı aracılığıyla ikincil çoğaltmaya yük devretmek için aşağıdaki önkoşullara ihtiyaç duyarsınız.

İş yükünü durdurma

Veritabanınızı ikincil çoğaltmaya devretmeye hazırsanız, önce bakım saatlerinizde birincil çoğaltmadaki tüm uygulama iş yüklerini durdurun. Bu, veri kaybı olmadan ikincilye yük devredebilmeniz için veritabanı çoğaltmasının ikincil çoğaltmayı yakalamasını sağlar. Uygulamalarınızın, yük devretmeden önce işlemleri birincil sisteme işlenmediğinden emin olun.

Çoğaltma gecikmesini kontrol et

İkincil kopyanın planlı bir yük devretme gerçekleştirilmeden önce birincil kopyayı yakalaması önemlidir. İkincil çoğaltma birincil çoğaltmanın çok gerisinde kalırsa planlı hata aktarımı zaman aşımına uğrayabilir ve başarısız 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

Çoğaltma gecikmesi yüksekse, ikincil çoğaltmanın birincil çoğaltmayı yakalamasını bekleyin. Gecikme devam ederse, iki örnek arasındaki bağlantı ağ aktarım hızını iyileştirme veya ikincil çoğaltmadaki kaynak kapasitesini artırma gibi ek sorun giderme adımları gerçekleştirmeniz gerekebilir.

Veritabanının yük devretmesi

Transact-SQL (T-SQL), SQL Server Management Studio veya PowerShell kullanarak bağlı bir veritabanının yükünü devredebilirsiniz.

SQL Server 2022 CU13 (KB5036432) ile başlayan Transact-SQL kullanarak bağlantının yükünü devredebilirsiniz.

Bir bağlantı için planlı yük devretme gerçekleştirmek için birincil çoğaltmada aşağıdaki T-SQL komutunu kullanın:

ALTER AVAILABILITY GROUP [<DAGname>] FAILOVER

Zorlamalı yük devretme gerçekleştirmek için ikincil çoğaltmada aşağıdaki T-SQL komutunu kullanın:

ALTER AVAILABILITY GROUP [<DAGname>] FORCE_FAILOVER_ALLOW_DATA_LOSS

Önemli

Planlı yük devretme gerçekleştirildikten sonra çoğaltma modu asenkron olarak ayarlanır.

Birden çok veritabanının yedeklenmesi

En iyi performans ve tahmin edilebilirlik için aynı sunucudaki örneklerden birden çok veritabanının yükünü devretmeyi planlıyorsanız, aynı anda örnek başına 8 veritabanının yükünü devredebilirsiniz. tr-TR: Örneğin, her birinde 32 bağlı veritabanı olan 10 örneğiniz varsa, her örnekte bir seferde 8 veritabanını hata devrine alarak işlemi tüm veritabanları hata devrine girene kadar tekrar edin.

Yük devretmeden sonra veritabanını görüntüleme

SQL Server 2022 için, bağlantıyı korumayı seçtiyseniz, dağıtılmış kullanılabilirlik grubunun SQL Server Management Studio'da Object ExplorerAvailability Groups altında mevcut olup olmadığını kontrol edebilirsiniz.

Bağlantıyı yük devretme sırasında bıraktıysanız, dağıtılmış kullanılabilirlik grubunun artık mevcut olmadığını onaylamak için Object Explorer kullanabilirsiniz. Kullanılabilirlik grubunu korumayı seçtiyseniz veritabanı yine eşitlenir.

Failover sonrası temizleme

SQL Server 2022 ile yük devretme işlemi, Başarılı yük devretme sonrasında bağlantıyı kaldır seçili değilse bağlantıyı kesmez. Failover'dan sonra bağlantıyı koruyabilirsiniz; bu da kullanılabilirlik grubunun ve dağıtılmış kullanılabilirlik grubunun etkin kalmasını sağlar. Başka bir şey yapmanız gerekmez.

Bağlantıyı bırakmak yalnızca dağıtılmış kullanılabilirlik grubunu bırakır ve kullanılabilirlik grubunu etkin bırakır. Kullanılabilirlik grubunu kullanmaya karar verebilir veya bırakabilirsiniz.

Kullanılabilirlik grubunuzu bırakmaya karar verirseniz aşağıdaki değeri değiştirin ve örnek T-SQL kodunu çalıştırın:

  • <AGName> SQL Server üzerindeki kullanılabilirlik grubunun adıyla (bağlantıyı oluşturmak için kullanılır).
-- Run on SQL Server
USE MASTER
GO
DROP AVAILABILITY GROUP <AGName> 
GO

Zorlamalı failover sonrası tutarsız durum

Zorlamalı yük devretmenin ardından, iki replikadan da birincil rolü üstlendiği ve bu durumun bağlantıyı tutarsız hale getirdiği bir ikili beyin senaryosuyla karşılaşabilirsiniz. Olağanüstü bir durumda ikincil çoğaltmaya geçiş yaparsanız ve sonrasında birincil çoğaltma yeniden çevrimiçi olursa, bu durum meydana gelir.

Bu sorunu çözmek için Bölünmüş beyin senaryosudüzeltmesine bakın.

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: