Aracılığıyla paylaş


Hızlandırılmış veritabanı kurtarma

Şunlar için geçerlidir: SQL Server 2019 (15.x) ve sonraki sürümleri Azure SQL VeritabanıMicrosoft Fabric'de Azure SQL Yönetilen ÖrneğiSQL veritabanı

Hızlandırılmış veritabanı kurtarma (ADR), veritabanı altyapısı kurtarma işlemini yeniden tasarlayarak özellikle uzun süre çalışan işlemlerin varlığında veritabanı kullanılabilirliğini geliştirir.

ADR, SQL Server 2019 'da (15.x) tanıtıldı ve SQL Server 2022 (16.x) ve SQL Server 2025 (17.x) Preview'da geliştirildi. ADR, Azure SQL Veritabanı, Azure SQL Yönetilen Örneği, Azure Synapse Analytics (yalnızca ayrılmış SQL havuzu) ve Microsoft Fabric'teki SQL veritabanında da kullanılabilir.

Uyarı

ADR, Azure SQL Veritabanı, Azure SQL Yönetilen Örneği ve Fabric'deki SQL veritabanında her zaman etkindir.

Bu makalede ADR'ye genel bir bakış sağlanır. ADR ile çalışmak için Hızlandırılmış veritabanı kurtarmayı yönetme makalesini gözden geçirin.

İşlem günlüğü ve veritabanı kurtarma hakkında daha fazla bilgi için bkz. SQL Server işlem günlüğü mimarisi ve yönetim kılavuzu ve Geri yükleme ve kurtarmaya genel bakış (SQL Server).

Genel Bakış

ADR'nin birincil avantajları şunlardır:

  • Hızlı ve tutarlı veritabanı kurtarma

    Uzun süre çalışan işlemler genel kurtarma süresini etkilemez ve sistemdeki etkin işlemlerin sayısından veya boyutlarından bağımsız olarak hızlı ve tutarlı veritabanı kurtarmasını etkinleştirir.

  • Anlık işlem geri alma

    İşlem geri alma işlemi, işlemin etkin olduğu zamandan veya yapılan güncelleştirmelerin sayısından bağımsız olarak anlık olarak gerçekleşir.

  • Agresif günlük kısaltma

    İşlem günlüğü, uzun süre çalışan aktif işlemler olsa bile, kontrolsüz büyümesini önlemek amacıyla agresif bir şekilde kısaltılır.

Geleneksel veritabanı kurtarma işlemi

ADR olmadan, veritabanı kurtarma ARIES kurtarma modelini izler ve aşağıdaki diyagramda daha ayrıntılı olarak gösterilen ve açıklanan üç aşamadan oluşur:

Geçerli kurtarma işleminin diyagramı.

  • Analiz aşaması

    Veritabanı altyapısı, son başarılı denetim noktasının başından (veya en eski kirli sayfa günlüğü sıra numarasından (LSN)) sonuna kadar işlem günlüğünde ileriye doğru bir tarama gerçekleştirir ve altyapı durdurulduğu sırada her işlemin durumunu belirler.

  • Tekrar yapma aşaması

    Veritabanı altyapısı, en eski kaydedilmemiş işlemden sonuna kadar işlem günlüğünü ileri doğru tarar. Bu işlem, veritabanını kilitlenmenin meydana geldiği andaki durumuna geri yüklemek için tüm tamamlanmış işlemleri yineler.

  • Geri alma aşaması

    Kilitlenme sırasında etkin olan her işlem için veritabanı motoru günlüğü geriye doğru tarayarak bu işlemin gerçekleştirdiği işlemleri geri alır.

  • Geleneksel veritabanı kurtarma süreci ile, uzun süren bir işlem etkinse çökme sonrasında kurtarma işlemi uzun sürebilir.

    Veritabanı altyapısının beklenmeyen bir yeniden başlatmadan kurtarma süresi (kabaca) kilitlenme sırasında sistemdeki en uzun etkin işlemin boyutuyla orantılıdır. Kurtarma için tüm eksik işlemlerin geri alınması gerekir. Gereken süre, işlemin gerçekleştirdiği çalışmayla ve etkin olduğu süreyle orantılıdır.

  • Daha önce açıklandığı gibi aynı geri alma kurtarma aşamasını kullandığından büyük bir işlemin iptali veya geri alınması uzun sürebilir.

  • Kurtarma ve geri alma işlemleri için gerekli log kayıtları gerektiğinden, uzun süreli işlemler olduğu zaman veritabanı motoru işlem günlüğünü kesemez. Sonuç olarak işlem günlüğü çok büyüyebilir ve çok fazla depolama alanı tüketebilir.

Hızlandırılmış veritabanı kurtarma işlemi

ADR, veritabanı altyapısı kurtarma işlemini şu şekilde tamamen yeniden tasarlayarak geleneksel kurtarma modeliyle ilgili önceki sorunları giderir:

  • En eski etkin işlemin başından itibaren işlem günlüğünü taramaya gerek kalmadığından kurtarma süresini sabit hale getirin. ADR ile işlem günlüğü yalnızca son başarılı denetim noktasından (veya en eski kirli sayfa LSN'sinden) işlenir. Sonuç olarak, kurtarma süresi uzun süre çalışan işlemlerden etkilenmez ve genellikle anlık olarak gerçekleşir.

  • İşlemin tamamı için günlüğü tutma gereksinimi kalmadığından gerekli işlem günlüğü alanını minimuma indirin. Sonuç olarak, denetim noktaları ve yedeklemeler gerçekleştikçe işlem günlüğü agresif bir şekilde kısaltılabilir.

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 geri alınamayan işlemleri geri alarak hızlı veritabanı kurtarması sağlar. Bir çökme sırası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 yoksayılabilir.

ADR kurtarma işlemi, geleneksel kurtarma işlemiyle aynı üç aşamaya sahiptir. Bu aşamaların ADR ile nasıl çalıştığı aşağıdaki diyagramda gösterilmiştir:

ADR kurtarma işleminin diyagramı.

  • Analiz aşaması

    İşlem, ikincil günlük akışını (SLOG) yeniden yapılandırma ve sürüm içermeyen işlemler için günlük kayıtlarını kopyalama ile geleneksel kurtarma modeliyle aynı kalır.

  • Tekrar yapma aşaması

    İki alt aşamaya ayrılmış

    • Alt Aşama 1

      SLOG'dan (son denetim noktasına kadar en eski kaydedilmemiş işlem) yineleyin. Geri alma işlemi hızlıdır, çünkü yalnızca SLOG'dan birkaç kaydı işlemesi gerekebilir.

    • Alt Aşama 2

      İşlem günlüğünden yineleme işlemi son başarılı denetim noktasından başlar (en eski kaydedilmemiş işlem yerine).

  • Geri alma aşaması

    ADR ile geri alma aşaması, sürümsüz işlemleri geri almak için SLOG'u ve satır düzeyinde sürüm tabanlı geri alma gerçekleştirmek üzere mantıksal geri dönüştürmeyi kullanarak kalıcı sürüm depoyu (PVS) neredeyse anında tamamlar.

Hızlandırılmış veritabanı kurtarma işleminin açıklaması için şu sekiz dakikalık videoyu izleyin:

ADR kurtarma bileşenleri

ADR'nin dört temel bileşeni şunlardır:

  • Kalıcı sürüm deposu (PVS)

    Kalıcı sürüm deposu (PVS), veritabanındaki geleneksel sürüm deposu tempdb yerine satır sürümlerinin doğrudan veritabanında kalıcı hale gelmesine yönelik bir veritabanı motoru mekanizmasıdır. PVS, kaynak yalıtımını etkinleştirir ve okunabilir ikincil kaynakların kullanılabilirliğini artırır.

    PVS, satır sürümlerini doğrudan değiştirilen veri sayfalarında veya ayrı bir sistem tablosunda depolar. Daha fazla bilgi için bkz. kalıcı sürüm deposu (PVS) tarafından kullanılan Alanı.

  • Mantıksal geri döndürme

    Mantıksal geri döndürme, satır düzeyinde sürüm tabanlı geri alma işlemi gerçekleştirmekten ve tüm sürümlenmiş işlemler için anlık işlem geri alma ve geri yükleme sağlamaktan sorumlu olan zaman uyumsuz bir süreçtir.

    • Durdurulan tüm işlemleri izler
    • Tüm kullanıcı işlemleri için PVS kullanarak geri alma gerçekleştirir
    • İşlem durdurulduktan hemen sonra tüm kilitleri serbest bırakır
  • SLOG

    SLOG, sürümlendirilmemiş işlemler (meta veri önbelleği geçersizleştirmesi, kilit edinimleri vb.) için günlük kayıtlarını depolayan ikincil bir bellek içi günlük akışıdır. SLOG şöyledir:

    • Düşük ses seviyesi ve bellek içi
    • Denetim noktası işlemi sırasında diskte kalıcı hale getirilir
    • İşlemler tamamlandıkça düzenli aralıklarla kesiliyor.
    • Yalnızca ters çevrilmemiş işlemleri işleyerek yinelemeyi ve geri almayı hızlandırır
    • Agresif işlem günlüğü kesilmesini, yalnızca gerekli günlük kayıtlarını koruyarak etkinleştirir.
  • Temizleyici

    Zaman uyumsuz olarak çalışan temizleyici, belirli aralıklarla uyanarak eski satır sürümlerini PVS'den temizleyen bir işlemdir.

ADR'den yararlanan iş yükleri

ADR çoğu iş yüküne avantaj sağlar ve aşağıdakilere sahip iş yükleri için özellikle yararlıdır:

  • Uzun süre çalışan işlemler.
  • İşlem günlüğünün önemli ölçüde büyümesine neden olan etkin işlemler.
  • Uzun süredir devam eden iyileştirmeler nedeniyle (beklenmedik hizmet yeniden başlatma veya manuel işlem geri alma gibi) uzun süreli veritabanı erişim kesintileri.

ADR, eski ve kullanım dışı yüksek kullanılabilirlik özelliği olan veritabanı yansıtma kullanan veritabanlarında desteklenmez.

ADR için en iyi yöntemler

  • Gereksiz uzun süre çalışan işlemlerden kaçının. ADR, uzun süre çalışan işlemlerde bile veritabanı kurtarmayı hızlandırsa da, bu tür işlemler sürüm temizlemeyi geciktirebilir ve PVS boyutunu artırabilir.

  • DDL işlemleri içeren büyük işlemlerden kaçının. ADR, kurtarmada kullanılan DDL işlemlerini izlemek için ikincil günlük akışı (SLOG) mekanizmasını kullanır. SLOG yalnızca işlem etkinken kullanılır. SLOG denetim noktası oluşturulur, bu nedenle SLOG kullanan büyük işlemlerden kaçınmak genel performansa yardımcı olabilir. Bu senaryolar SLOG'un daha fazla alan kaplamasına neden olabilir:

    • Birçok DLL tek bir işlemde yürütülür. Örneğin, bir işlemde hızlı bir şekilde geçici tabloları oluşturup silmek.
    • Tabloda değiştirilmiş çok fazla sayıda bölüm/dizin vardır. Örneğin, bu tür bir tablodaki bir DROP TABLE işlem, işlem günlüğünün kesilmesini geciktiren ve geri alma/yineleme işlemlerini geciktiren büyük bir SLOG belleği rezervasyonu gerektirir. Geçici bir çözüm olarak, dizinleri ayrı ayrı ve aşamalı olarak bırakın, ardından tabloyu bırakın.

    SLOG hakkında daha fazla bilgi için bkz. ADR kurtarma bileşenleri.

  • Gereksiz durdurulan işlemleri engelleyin veya azaltın. Yüksek işlem durdurma oranı PVS temizleyici üzerinde baskı oluşturur ve ADR performansını düşürür. İptaller yüksek oranda kilitlenme, yinelenen anahtar, kısıtlama ihlalleri, sorgu zaman aşımları veya diğer özel durumlardan kaynaklanabilir. sys.dm_tran_aborted_transactions DMV, veritabanı altyapısı örneğinde durdurulan tüm işlemleri gösterir. sütun, nested_abort işlemin tamamlandığını gösterir ancak PVS temizleme işlemini geciktirebilecek iptal edilen bölümler (kaydetme noktaları veya iç içe işlemler) vardır.

  • Veritabanında PVS kullanımını hesaba eklemek için yeterli alan olduğundan emin olun. Veritabanının PVS'nin büyümesi için yeterli alanı yoksa, ADR sürüm oluşturamayabilir ve bu da DML deyimlerinin başarısız olmasına neden olabilir.

  • YAZMA yoğunluklu iş yükleriyle ADR etkinleştirildiğinde, PVS'ye yazılan satır sürümleri günlüğe kaydedildiğinden işlem günlüğü oluşturma oranı önemli ölçüde artabilir. Bu işlem günlüğü yedeklemelerinin boyutunu artırabilir.

  • İşlem çoğaltması, anlık görüntü çoğaltma veya değişiklik verisi yakalama (CDC) kullandığınızda, ADR'nin agresif günlük kesme davranışı, günlük okuyucunun işlem günlüğünden değişiklik toplamasına izin vermek için devre dışı bırakılır. İşlem günlüğünün yeterince büyük olduğundan emin olun.

    Azure SQL Veritabanı'nda CDC veya değişiklik akışı kullanıyorsanız, tüm iş yüklerinizin gereksinimleri için yeterli işlem günlüğü alanının kullanılabilir olduğundan emin olmak için hizmet katmanınızı veya işlem boyutunuzu artırmanız gerekebilir. Benzer şekilde, Azure SQL Yönetilen Örneği'nde örneğinizin maksimum depolama boyutunu artırmanız gerekebilir.

  • SQL Server için katmanlı performans depolama alanı kullanılabilir olduğunda PVS dosya grubunu daha yüksek katman depolama alanına yerleştirmeyi göz önünde bulundurun. Daha fazla bilgi için bkz. PVS dosya grubunu değiştirme.

  • SQL Server 2022'den (16.x) başlayarak, tek iş parçacıklı temizleyici performansı yetersizse çok iş parçacıklı PVS temizlemeyi etkinleştirmeyi göz önünde bulundurun. Daha fazla bilgi için bkz. Sunucu yapılandırması: ADR Cleaner Thread Sayısı.

  • SQL Server 2025 (17.x) Önizleme sürümünden başlayarak, içinde ADR'yi tempdbetkinleştirirseniz veri dosyalarında tempdb PVS verileri için ek alan ayırmanız gerekebilir. içindeki tempdb PVS'nin boyutu, kullanıcı veritabanındakiyle aynı şekilde izlenebilir .

  • PVS tarafından yüksek veritabanı alanı kullanımı veya yavaş PVS temizleme gibi sorunlar gözlemlerseniz Hızlandırılmış veritabanı kurtarmayı izleyin ve sorun giderin bölümüne bakın.

SQL Server 2025'te ADR geliştirmeleri

  • tempdb'de ADR

    SQL Server 2025 (17.x) Önizleme sürümünden itibaren ADR tempdb veritabanında etkinleştirilebilir.

    ADR olmadan ve tempdb içinde kullanılan minimum günlüklere rağmen, geçici tablolar, tablo değişkenleri veya tempdb içinde oluşturulan kalıcı olmayan tablolar gibi nesneleri içeren işlemler, uzun geri alma süresi ve yüksek işlem günlüğü kullanımı nedeniyle etkilenebilir. İşlem günlüğü alanının dolması tempdb önemli kesintilere ve uygulamanın kesintiye uğramasına neden olabilir.

    SQL Server 2025 (17.x) Önizlemesi, işlemleri kullanan iş yükleri için ADR'nin Anında işlem geri alma ve tempdb avantajlarını sağlar.

    içinde ADR'yi tempdbetkinleştirmek için bkz. ADR'yi etkinleştirme.

SQL Server 2022'de ADR geliştirmeleri

Kalıcı sürüm deposu (PVS) depolamasını ele almak ve genel ölçeklenebilirliği geliştirmek için çeşitli geliştirmeler vardır. SQL Server 2022'nin (16.x) yeni özellikleri hakkında daha fazla bilgi için bkz. SQL Server 2022'deki yenilikler.

Aynı geliştirmeler Azure SQL Veritabanı, Azure SQL Yönetilen Örneği, Azure Synapse Analytics (yalnızca ayrılmış SQL havuzu) ve Microsoft Fabric'teki SQL veritabanında da kullanılabilir.

  • Kullanıcı işlemleri temizliği

    Kilit alma hatası nedeniyle normal işlemle temizlenemeyen sayfaları temizleyin.

    Bu özellik, tablo düzeyinde kilit çakışmaları nedeniyle normal temizleme işlemi tarafından ele alınamayan sayfalarda kullanıcı işlemlerinin temizleme yapılmasına olanak sağlar. Bu geliştirme, kullanıcı iş yükleri tablo düzeyi kilitleri alamadığı için ADR temizleme işleminin süresiz olarak başarısız olmamasını sağlamaya yardımcı olur.

  • PVS sayfa izleyicisi için bellek ayak izini azaltma

    Bu geliştirme, sürümlenmiş sayfaları korumak için gereken bellek ayak izini azaltmak için PVS sayfalarını kapsam düzeyinde izler.

  • PVS temizlik iyileştirmeleri

    PVS temizleyicisi, veritabanı altyapısının durdurulan işlemler için satır sürümlerini izleme ve kaydetme biçimini iyileştirmek için sürüm temizleme verimliliğini artırdı. Bu, bellek ve depolama kullanımında iyileştirmelere yol açar.

  • İşlem düzeyi kalıcı sürüm deposu (PVS)

    Bu geliştirme, ADR'nin sistemde durdurulan işlemler olup olmadığından bağımsız olarak kaydedilmiş işlemlere ait sürümleri temizlemesine olanak tanır. Bu iyileştirmeyle, PVS sayfaları, durdurulan işlem haritasını kırpmak için temizlik işlemi başarılı bir süpürme işlemi gerçekleştiremese bile serbest bırakılabilir.

    Bu iyileştirmenin sonucu, PVS temizleme işlemi yavaş olsa veya başarısız olsa bile PVS büyümesi azalır.

  • Çok iş parçacıklı versiyon temizlemesi

    SQL Server 2019'da (15.x), temizleme işlemi bir veritabanı motoru örneği içinde tek bir iş parçacığı kullanılarak gerçekleştirilir.

    SQL Server 2022 (16.x) ile başlangıç olarak, çok iş parçacıklı sürüm temizleme özelliği desteklenir. Bu, aynı veritabanı altyapısı örneğindeki birden çok veritabanının paralel olarak veya tek bir veritabanının daha hızlı temizlenmesine olanak tanır. Daha fazla bilgi için bkz. Sunucu yapılandırması: ADR Cleaner Thread Sayısı.

    ADR PVS çok iş parçacıklı sürüm temizleyicisinin izlenmesi için yeni bir genişletilmiş olay tx_mtvc2_sweep_stats eklendi.