Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Denetim noktası, SQL Server Veritabanı Altyapısı'nın beklenmeyen bir kapatma veya kilitlenme sonrasında kurtarma sırasında günlükte yer alan değişiklikleri uygulamaya başlayabildiği bilinen bir iyi nokta oluşturur.
Genel Bakış
Performans nedenleriyle, Veritabanı Altyapısı bellekteki, arabellek önbelleğindeki veritabanı sayfalarında değişiklikler yapar ve her değişiklikten sonra bu sayfaları diske yazmaz. Bunun yerine, Veritabanı Altyapısı düzenli aralıklarla her veritabanında bir denetim noktası oluşturur. Denetim noktası geçerli bellek içi değiştirilmiş sayfaları ( kirli sayfalar olarak bilinir) ve işlem günlüğü bilgilerini bellekten diske yazar ve ayrıca bilgileri işlem günlüğüne kaydeder.
Veritabanı Altyapısı, çeşitli denetim noktası türlerini destekler: otomatik, dolaylı, elle ve içsel. Aşağıdaki tabloda denetim noktası türleri özetlenmiştir.
| İsim | Transact-SQL arabirimi | Description |
|---|---|---|
| Otomatik | EXEC sp_configure 'kurtarma aralığı', 'saniye' |
Kurtarma aralığı sunucusu yapılandırma seçeneği tarafından önerilen üst zaman sınırını karşılamak için arka planda otomatik olarak verilir. Otomatik denetim noktaları tamamlanmaya kadar çalışır. Otomatik denetim noktaları, bekleyen yazma sayısı ve Veritabanı Altyapısı'nın yazma gecikmesinde 50 milisaniyenin üzerinde bir artış algılayıp algılamadığı temelinde kısıtlanmıştır. Daha fazla bilgi için bkz: Kurtarma Aralığı Sunucu Yapılandırma Seçeneği'ni Yapılandırma. |
| Dolaylı | ALTER DATABASE ... SET TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | DAKİkA } | Belirli bir veritabanı için kullanıcı tarafından belirtilen hedef kurtarma süresini karşılamak için arka planda verilir. SQL Server 2016(13.x) sürümünden itibaren varsayılan değer 1 dakikadır. Eski sürümler için varsayılan değer 0'dır ve bu, veritabanının sıklığı sunucu örneğinin kurtarma aralığı ayarına bağlı olan otomatik denetim noktaları kullanacağını gösterir. Daha fazla bilgi için bkz. Veritabanının (SQL Server) Hedef Kurtarma Süresini Değiştirme. |
| Kılavuz | KONTROL NOKTASI [ kontrol_noktası_süresi ] | bir Transact-SQL CHECKPOINT komutu yürütürken verilir. Manuel kontrol noktası, bağlantınızın geçerli veritabanında gerçekleşir. Varsayılan olarak, manuel kontrol noktaları tamamlanana kadar çalışır. Kısıtlama, otomatik denetim noktalarıyla aynı şekilde çalışır. İsteğe bağlı olarak , checkpoint_duration parametresi, denetim noktasının tamamlanması için istenen süreyi saniye olarak belirtir. Daha fazla bilgi için bkz . CHECKPOINT (Transact-SQL). |
| İç | Hiç kimse | Disk görüntülerinin günlüğün geçerli durumuyla eşleşmesini sağlamak için yedek alma ve veritabanı anlık görüntüsü oluşturma gibi çeşitli sunucu işlemleri tarafından verilir. |
-k SQL Server gelişmiş kurulum seçeneği, veritabanı yöneticisinin bazı denetim noktası türleri için G/Ç alt sisteminin aktarım hızına göre denetim noktası G/Ç davranışını azaltmasına olanak tanır. Ayar -k seçeneği, otomatik denetim noktalarına ve aksi takdirde sınırsız manuel ve iç denetim noktalarına uygulanır.
Otomatik, el ile ve iç denetim noktaları için yalnızca en son denetim noktasından sonra yapılan değişikliklerin veritabanı kurtarma sırasında iletilmesi gerekir. Bu, veritabanını kurtarmak için gereken süreyi azaltır.
Önemli
Uzun süren, kaydedilmemiş işlemler tüm denetim noktası türleri için kurtarma süresini artırır.
TARGET_RECOVERY_TIME ve 'kurtarma aralığı' seçeneklerinin etkileşimi
Aşağıdaki tabloda sunucu genelindeki sp_configure 'recovery interval' ayar ile veritabanına özgü ALTER DATABASE ... TARGET_RECOVERY_TIME ayar arasındaki etkileşim özetlenmiştir.
| HEDEF KURTARMA SÜRESİ | geri kazanım aralığı | Kullanılan denetim noktası türü |
|---|---|---|
| 0 | 0 | hedef kurtarma aralığı 1 dakika olan otomatik denetim noktaları. |
| 0 | > 0 | Kullanıcı tanımlı sp_configure 'recovery interval' seçeneği ayarıyla hedef kurtarma süresi belirtilen otomatik denetim noktaları. |
| > 0 | Uygulanamaz | Hedef kurtarma süresi TARGET_RECOVERY_TIME ayarı tarafından belirlenen ve saniye cinsinden ifade edilen dolaylı denetim noktaları. |
Otomatik denetim noktaları
Log kaydı sayısı, Veritabanı Motoru'nun kurtarma aralığı sunucu yapılandırma seçeneğinde belirtilen süre boyunca işleyebileceğini tahmin ettiği sayıya her ulaştığında otomatik bir kontrol noktası gerçekleşir. Daha fazla bilgi için bkz: Sunucu Yapılandırma Seçeneğinde Kurtarma Aralığını Yapılandırma.
Kullanıcı tanımlı hedef kurtarma süresi olmayan her veritabanında Veritabanı Altyapısı otomatik denetim noktaları oluşturur. Sıklık, sistem yeniden başlatma sırasında belirli bir sunucu örneğinin veritabanını kurtarmak için kullanması gereken en uzun süreyi belirten kurtarma aralığı gelişmiş sunucu yapılandırma seçeneğine bağlıdır. Veritabanı Motoru, kurtarma aralığı içinde işleyebileceği en fazla günlük kaydı sayısını tahmin eder. Otomatik denetim noktaları kullanan bir veritabanı bu günlük kaydı sayısı üst sınırına ulaştığında, Veritabanı Altyapısı veritabanında bir denetim noktası verir.
Otomatik denetim noktaları arasındaki zaman aralığı yüksek oranda değişken olabilir. Önemli bir işlem iş yüküne sahip bir veritabanında, öncelikli olarak salt okunur işlemler için kullanılan bir veritabanından daha sık denetim noktaları bulunur. Basit kurtarma modeli altında, log dosyası yüzde 70 dolarsa otomatik olarak bir denetim noktası kuyruğa alınır.
Basit kurtarma modelinde, bir faktör günlüğun kesilmesini geciktirmiyorsa, otomatik bir kontrol noktası işlem günlüğünün kullanılmayan bölümünü keser. Buna karşılık, tam ve toplu günlüğe kaydetme kurtarma modellerinde, bir günlük yedekleme zinciri oluşturulduktan sonra otomatik denetim noktaları günlük kırpılmasına neden olmaz. Daha fazla bilgi için bkz . İşlem Günlüğü (SQL Server).
Sistem kilitlenmesinin ardından, belirli bir veritabanını kurtarmak için gereken süre büyük ölçüde kilitlenme sırasında kirli sayfaları yinelemek için gereken rastgele G/Ç miktarına bağlıdır. Bu, kurtarma aralığı ayarının güvenilir olmadığını gösterir. Doğru kurtarma süresini belirleyemez. Ayrıca, bir otomatik denetim noktası devam ederken, veriler için genel G/Ç etkinliği önemli ölçüde ve öngörülemez bir şekilde artar.
Kurtarma aralığının kurtarma performansı üzerindeki etkisi
Kısa işlemleri kullanan bir çevrimiçi işlem işleme (OLTP) sistemi için kurtarma süresini belirleyen birincil faktör kurtarma aralığıdır . Ancak kurtarma aralığı seçeneği, uzun süre çalışan bir işlemi geri almak için gereken süreyi etkilemez. Uzun süre çalışan bir işlemle veritabanının kurtarılması, kurtarma aralığı ayarında belirtilen süreden çok daha uzun sürebilir.
Örneğin, uzun süre çalışan bir işlemin sunucu örneği devre dışı bırakılmadan önce güncelleştirmeleri gerçekleştirmesi iki saat sürerse, gerçek kurtarmanın uzun işlemi kurtarmak için kurtarma aralığı değerinden çok daha uzun sürmesi gerekir. Uzun süre çalışan bir işlemin kurtarma süresi üzerindeki etkisi hakkında daha fazla bilgi için bkz. İşlem Günlüğü (SQL Server). Kurtarma işlemi hakkında daha fazla bilgi için bkz. Geri Yükleme ve Kurtarma'ya Genel Bakış (SQL Server).
Varsayılan değerler genellikle en iyi kurtarma performansını sağlar. Ancak, kurtarma aralığını değiştirmek aşağıdaki durumlarda performansı artırabilir:
Uzun süreli işlemler geri alınmadığında kurtarma işlemi rutin olarak 1 dakikadan belirgin şekilde uzun sürüyorsa.
Sık denetim noktalarının bir veritabanında performansı bozduğunu fark ederseniz.
Kurtarma aralığı ayarını artırmaya karar verirseniz, bunu küçük artışlarla kademeli olarak artırmanızı ve her artımlı artışın kurtarma performansı üzerindeki etkisini değerlendirmenizi öneririz. Kurtarma aralığı ayarı arttıkça veritabanı kurtarma işleminin tamamlanması bu kadar uzun sürdüğünden bu yaklaşım önemlidir. Örneğin, kurtarma aralığını 10 dakika olarak değiştirirseniz kurtarmanın tamamlanması, kurtarma aralığının 1 dakikaya ayarlanmasından yaklaşık 10 kat daha uzun sürer.
Dolaylı denetim noktaları
SQL Server 2012'de (11.x) kullanıma sunulan dolaylı denetim noktaları, otomatik denetim noktalarına yapılandırılabilir bir veritabanı düzeyi alternatifi sağlar. Bu, hedef kurtarma süresi veritabanı yapılandırma seçeneği belirtilerek yapılandırılabilir. Daha fazla bilgi için bkz. Veritabanının (SQL Server) Hedef Kurtarma Süresini Değiştirme. Sistem kilitlenmesi durumunda, dolaylı denetim noktaları otomatik denetim noktalarına göre potansiyel olarak daha hızlı, daha öngörülebilir kurtarma süresi sağlar.
Dolaylı denetim noktaları aşağıdaki avantajları sunar:
Dolaylı denetim noktaları, kirli sayfa sayısının belirli bir eşiğin altında olmasını sağlar, böylece veritabanı kurtarma hedef kurtarma süresi içinde tamamlar.
Kurtarma aralığı yapılandırma seçeneği, kirli sayfa sayısını kullanan dolaylı denetim noktalarının aksine kurtarma süresini belirlemek için işlem sayısını kullanır. Çok sayıda DML işlemi alan bir veritabanında dolaylı denetim noktaları etkinleştirildiğinde, arka plan yazıcısı, kurtarma gerçekleştirmek için gereken sürenin veritabanının hedef kurtarma süresi kümesi içinde olduğundan emin olmak için kirli arabellekleri diske agresif bir şekilde boşaltmaya başlayabilir. Bu, belirli sistemlerde ek G/Ç etkinliğine neden olabilir ve bu da disk alt sistemi G/Ç eşiğinin üzerinde veya yakınında çalışırken performans sorununa neden olabilir.
Dolaylı denetim noktaları, REDO sırasında rastgele G/Ç maliyetini göz önünde bulundurarak veritabanı kurtarma süresini güvenilir bir şekilde denetlemenizi sağlar. Bu, bir sunucu örneğinin belirli bir veritabanı için kurtarma sürelerinde üst sınır limitinde kalmasına olanak tanır (uzun süre çalışan bir işlemin aşırı UNDO sürelerine neden olması dışında).
Dolaylı denetim noktaları, arka planda diske sürekli kirli sayfalar yazarak denetim noktasıyla ilgili G/Ç artışını azaltır.
Ancak, dolaylı denetim noktaları için yapılandırılmış bir veritabanındaki çevrimiçi işlem iş yükü performans düşüşü yaşayabilir. Bunun nedeni, dolaylı denetim noktası tarafından kullanılan arka plan yazıcısının bazen bir sunucu örneğinin toplam yazma yükünü artırmasıdır.
Önemli
Yeni bir veritabanı oluşturulduğunda, SQL Server 2016 (13.x) 'daki varsayılan davranış, model ve tempdb veritabanları dahil olmak üzere dolaylı denetim noktasıdır.
Yerinde yükseltilen veya SQL Server'ın önceki bir sürümünden geri yüklenen veritabanları, dolaylı denetim noktası kullanmak üzere açıkça değiştirilmediği sürece önceki otomatik denetim noktası davranışını kullanır.
Geliştirilmiş dolaylı denetim noktası ölçeklenebilirliği
SQL Server 2019 (15.x)'dan önce, tempdb gibi çok sayıda kirli sayfa üreten bir veritabanı olduğunda yanıt vermeyen zamanlayıcı hatalarıyla karşılaşabilirsiniz. SQL Server 2019 (15.x), yoğun UPDATE/INSERT iş yüküne sahip veritabanlarında bu hataları önlemeye yardımcı olacak dolaylı denetim noktası için geliştirilmiş ölçeklenebilirlik sunar.
İç denetim noktaları
İç Denetim Noktaları, disk görüntülerinin günlüğün geçerli durumuyla eşleşmesini sağlamak için çeşitli sunucu bileşenleri tarafından oluşturulur. İç denetim noktaları aşağıdaki olaylara yanıt olarak oluşturulur:
Veritabanı dosyaları ALTER DATABASE kullanılarak eklendi veya kaldırıldı.
Veritabanı yedeği alınır.
DBCC CHECKDB için açıkça veya dahili olarak bir veritabanı anlık görüntüsü oluşturulur.
Veritabanı kapatma gerektiren bir etkinlik gerçekleştirilir. Örneğin, AUTO_CLOSE AÇıK ve veritabanına son kullanıcı bağlantısı kapatılır veya veritabanının yeniden başlatılmasını gerektiren bir veritabanı seçeneği değişikliği yapılır.
SQL Server (MSSQLSERVER) hizmeti durdurularak SQL Server örneği durdurulur. Bu eylem, SQL Server örneğindeki her veritabanında bir denetim noktasına neden olur.
SQL Server yük devretme kümesi örneğini (FCI) çevrimdışı duruma getirme.
Sonraki Adımlar
- Kurtarma aralığını yapılandırma Sunucu Yapılandırma Seçeneği
- Veritabanının Hedef Kurtarma Süresini Değiştirme (SQL Server)
- CHECKPOINT (Transact-SQL)