Aracılığıyla paylaş


sys.sp_persistent_version_cleanup (Transact-SQL)

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

Hızlandırılmış veritabanı kurtarmanın (ADR) önemli bir öğesi olan kalıcı sürüm deposu (PVS) temizleme işlemini el ile başlatır. Bu temizleyici, PVS'deki kaydedilmemiş verileri durdurulan işlemlerden de kaldırır.

genellikle sys.sp_persistent_version_cleanupkullanarak PVS temizleme işlemini el ile başlatmak gerekmez. Ancak bazı senaryolarda, meşgul OLTP etkinliğinden sonra bilinen bir dinlenme/kurtarma döneminde PVS temizleme işlemini el ile başlatmak isteyebilirsiniz.

ADR hakkında daha fazla bilgi için bkz. hızlandırılmış veritabanı kurtarma.

Transact-SQL söz dizimi kuralları

Sözdizimi

sp_persistent_version_cleanup
    [ [ @dbname = ] N'dbname' ]
    [ , [ @scanallpages = ] scanallpages ]
    [ , [ @clean_option = ] clean_option ]
[ ; ]

Bağımsız değişken

[ @dbname = ] N'dbname'

Opsiyonel. Temizlenmek üzere veritabanının adı. Sağlanmazsa geçerli veritabanı bağlamını kullanır. @dbname, varsayılanı ile sysname.

[ @scanallpages = ] tarama sayfaları

Opsiyonel. @scanallpages, varsayılan olarak olan 0. 1olarak ayarlandığında, bu seçenek sürüme alınmamış olsa bile tüm veritabanı sayfalarının temizlenmesini zorlar.

[ @clean_option = ] clean_option

Opsiyonel. Olası seçenekler, satır dışı PVS sayfasının geri kazanılıp geri kazanılmayacağını belirler. @clean_option, varsayılan olarak olan. Bu başvuru genellikle gerekli değildir ve varsayılan değer 0 önerilir.

Değer Açıklama
0 Varsayılan, seçenek belirtilmedi
1 tek tek PVS sayfa içeriğini denetlemeden satır dışı sürüm deposu
2 her PVS sayfası ziyaret edilen satır dışı sürüm deposu
3 yalnızca satır içi sürüm deposu
4 yalnızca iç kullanım

Dönüş kodu değerleri

0 (başarı) veya 1 (başarısızlık).

Sonuç kümesi

Hiç kimse.

İzinler

Veritabanında ALTER izni gerektirir.

Açıklamalar

sys.sp_persistent_version_cleanup saklı yordamı zaman uyumludur, yani tüm sürüm bilgileri geçerli PVS'den temizlenene kadar tamamlanmaz.

SQL Server 2019'da (15.x), PVS temizleme işlemi aynı anda yalnızca bir veritabanı için yürütülür. Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği'nde ve SQL Server 2022 (16.x) ile başlayarak PVS temizleme işlemi aynı örnekteki birden çok veritabanına paralel olarak yürütülebilir.

PVS temizleme işlemi istenen veritabanında zaten çalışıyorsa, bu saklı yordam başka bir PVS temizleme işlemi başlatılmadan önce engellenir. ADR'nin etkinleştirildiği aynı veritabanı altyapısı örneğindeki herhangi bir veritabanında etkin, uzun süre çalışan işlemler de PVS temizlemesini engelleyebilir.

Aşağıdaki örnek sorguyla işlemini arayarak sürüm temizleme görevini izleyebilirsiniz:

SELECT *
FROM sys.dm_exec_requests
WHERE command LIKE '%PERSISTED_VERSION_CLEANER%';

Etkin bir işlem PVS temizleme işleminin başlatılmasını engelleyebilir. Bu durumda, sys.sp_persistent_version_cleanup saklı yordamı çalıştıran oturum PVS_CLEANUP_LOCK bekleme türüyle bekler. İşlemin tamamlanmasını bekleyebilir veya mümkünse etkin bir işlemle engelleyici oturumunu sonlandırmayı düşünebilirsiniz.

ADR devre dışı bırakılırsa, pvs'de kalan önceki sürümleri temizlemek için sys.sp_persistent_version_cleanup çalıştırın.

Örnekler

PVS temizleme işlemini iş yükleri arasında veya bakım pencereleri sırasında el ile etkinleştirmek için aşağıdaki örnek betiği kullanın:

EXECUTE sys.sp_persistent_version_cleanup [database_name];

Mesela:

EXECUTE sys.sp_persistent_version_cleanup [WideWorldImporters];

Veya geçerli veritabanı bağlamını varsaymak için:

USE [WideWorldImporters];
GO

EXECUTE sys.sp_persistent_version_cleanup;
  • hızlandırılmış veritabanı kurtarma
  • hızlandırılmış veritabanı kurtarma izleme ve sorunlarını giderme
  • hızlandırılmış veritabanı kurtarma yönetme