SQL Server 2022’de  Accelerated Database Recovery (ADR) Geliştirmeleri Nelerdir?

Accelerated Database Recovery (ADR)’ye Genel Bir Bakış

ADR, SQL veritabanı altyapısı kurtarma işlemini yeniden tasarlayarak, özellikle uzun süren işlemlerin varlığında veritabanı kullanılabilirliğini artırır. ADR, SQL Server 2019’da tanıtıldı (15.x) ve SQL Server 2022’de geliştirildi (16.x).

ADR, Azure SQL Veritabanı, Azure SQL Managed Instance ve Azure Synapse Sql’deki veritabanları için de kullanılabilir. ADR, SQL Veritabanı ve SQL Managed Instance varsayılan olarak etkindir ve devre dışı bırakılamaz.

Hızlı ve Uyumlu Database Recovery

ADR’de, uzun süren işlemler genel recovery süresini etkilemez ve sistemdeki etkin işlem sayısına veya boyutlarına bakılmaksızın hızlı ve uyumlu bir database recovery sağlar.

Anlık İşlem Geri Alma

ADR’de, işlemin etkin olduğu süreye veya gerçekleştirilen güncelleme sayısına bakılmaksızın, işlemin geri alınması anlıktır.

Aggressive log truncation 

ADR ile transaction log , etkin uzun süren işlemler olduğunda bile aggressively(saldırganca) bir şekilde kesilir ve bu da kontrolden çıkmasını engeller.

ADR, veritabanı altyapısı recovery işlemini tamamen yeniden tasarlar.

  • Transaction log en eski etkin işlemin başından sonuna kadar taramak zorunda kalmaktan kaçınarak sabit zaman ve anlık hale getirilebilir. ADR ile transaction log yalnızca son başarılı denetim noktasından (veya en eski sayfa sıra numarasından (LSN)) işlenir. Sonuç olarak, kurtarma süresi uzun süren işlemlerden etkilenmez.
  • Artık tüm işlem için log işlemeye gerek olmadığından, gerekli transaction log alanını en aza indirin. Sonuç olarak, denetim noktaları ve yedeklemeler gerçekleştikçe transaction log aggressively şekilde kesilebilir.
  • Yüksek düzeyde ADR, tüm fiziksel veritabanı değişikliklerini sürümlendirerek ve yalnızca sınırlı olan ve neredeyse anında geri alınabilen mantıksal işlemleri geri alarak hızlı veritabanı kurtarma sağlar. Kilitlenme anında etkin olan tüm işlemler iptal edildi olarak işaretlenir ve bu nedenle, bu işlemler tarafından oluşturulan tüm sürümler eşzamanlı kullanıcı sorguları tarafından göz ardı edilebilir.

Yüksek düzeyde, ADR, tüm fiziksel veritabanı değişikliklerinin sürümünü oluşturarak ve yalnızca sınırlı olan ve neredeyse anında geri alınabilen mantıksal işlemleri geri alarak hızlı veritabanı kurtarma işlemi gerçekleştirir.

 

SQL Server 2022’deki Yeni ADR Geliştirmeleri

Multi-threaded version cleanup

SQL Server 2019’da (15.x), ADR cleanup işlemi bir SQL Server instance içinde single iş parçacıklıdır. SQL Server 2022 (16.x) ile başlayarak, bu işlem, aynı SQL Server instance altındaki birden çok veritabanının paralel olarak temizlenmesine olanak tanıyan multiple iş parçacıklı sürüm temizleme (MTVC) kullanır.

MTVC, SQL Server 2022’de varsayılan olarak etkindir ve SQL instance başına bir thread kullanır. Version cleanup için iş parçacığı sayısını ayarlamak üzere ADR Cleaner Thread Count ile

USE master;
GO
-- Enable show advanced option to see ADR Cleaner Thread Count
EXEC sp_configure 'show advanced option', '1';
-- List all advanced options
RECONFIGURE;
EXEC sp_configure; 
-- The following example sets the ADR Cleaner Thread Count to 4
EXEC sp_configure 'ADR Cleaner Thread Count', '4';
RECONFIGURE WITH OVERRIDE; 
-- Run RECONFIGURE to verify the number of threads allocated to ADR Version Cleaner.
RECONFIGURE;
EXEC sp_configure;


Script sonucu:

Yukarıdaki örnekte, ADR Cleanup Sayısı’nı iki veritabanına sahip bir sql örneğinde dört olacak şekilde yapılandırırsanız, ADR cleanup veritabanı başına yalnızca bir iş parçacığı ayırır ve kalan iki boşta bırakır.

Not: ADR Cleanup iş parçacığı sayısı üst sınırı, SQL Server instance tarafından kullanılan çekirdek sayısıyla sınırlıdır.

Örneğin, SQL Server sekiz çekirdekli bir makinede, sp_configure’daki değer daha büyük bir değere ayarlanmış olsa bile, altyapının kullanabileceği en fazla ADR cleanup iş parçacığı sayısı sekiz olacaktır.

User transaction cleanup

Bu iyileştirme, kullanıcı işlemlerinin, lock çakışmaları nedeniyle normal cleanup işlemi tarafından ele alınamayan sayfalarda cleanup çalıştırmasına olanak tanır. Bu, ADR cleanup işleminin daha verimli çalışmasını sağlamaya yardımcı olur.

Reducing memory footprint for PVS page tracker

Bu geliştirme, işlem anında değiştirilen sayfaları korumak için gereken sürümleri içerir.

Accelerated Data Recovery cleaner improvements

DRY cleaner, SQL Server’ın bir sayfanın iptal edilmiş sürümlerini nasıl izlediğini ve kaydettiğini iyileştirmek için version cleanup verimliliğini arttırdı ve bu da bellek kapasitede iyileştirmelere yol açmıştır.

Transaction-level persisted version store

Bu iyileştirme, ADR’nin sistemde iptal edilen işlemler olup olmadığına bakılmaksızın taahhüt edilen işlemlere ait sürümleri temizlemesine olanak tanır. Bu iyileştirme ile PVS sayfaları, cleanup işlemi iptal edilen işlem haritasını kırpmak için başarılı bir taramayı tamamlayamasa bile ayrılabilir.

Bu iyileştirmenin sonucu, ADR cleanup yavaş veya başarısız olsa bile PVS büyümesinin azalmasıdır.

Yeni genişletilmiş etkinlik
ADR ve multiple iş parçacıklı sürüm temizleyicide telemetri için yeni bir genişletilmiş olay olan tx_mvc2_sweep_status eklendi.

 

Özet olarak,  veritabanlarınızın genel kullanılabilirliğini ve ölçeklenebilirliğini daha da geliştiren SQL Server 2022 ADR geliştirmelerini ele aldık.

 

Referanslar

https://learn.microsoft.com/en-us/sql/relational-databases/accelerated-database-recovery-concepts?view=sql-server-ver16

Leave a Reply

Your email address will not be published. Required fields are marked *