Aracılığıyla paylaş


Değişiklik İzlemeyi Etkinleştirme ve Devre Dışı Bırakma (SQL Server)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

Bu makalede, veritabanı ve tablo için değişiklik izlemeyi etkinleştirme ve devre dışı bırakma işlemleri açıklanmaktadır.

Veritabanı için Değişiklik İzlemeyi Etkinleştirme

Değişiklik izlemeyi kullanabilmeniz için önce veritabanı düzeyinde değişiklik izlemeyi etkinleştirmeniz gerekir. Aşağıdaki örnekte ALTER DATABASE SET seçeneklerini kullanarak değişiklik izlemeyi etkinleştirme gösterilmektedir.

ALTER DATABASE AdventureWorks2022
SET CHANGE_TRACKING = ON
(CHANGE_RETENTION = 2 DAYS, AUTO_CLEANUP = ON)

Veritabanı Özellikleri (ChangeTracking Page) iletişim kutusunu kullanarak DA SQL Server Management Studio'da değişiklik izlemeyi etkinleştirebilirsiniz. Veritabanında bellek için iyileştirilmiş tablolar varsa, SQL Server Management Studio ile değişiklik izlemeyi etkinleştiremezsiniz. Etkinleştirmek için T-SQL kullanın.

Değişiklik izlemeyi etkinleştirdiğinizde ve CHANGE_RETENTION seçeneklerini belirtebilir AUTO_CLEANUP ve değişiklik izleme etkinleştirildikten sonra istediğiniz zaman değerleri değiştirebilirsiniz.

Değişiklik saklama değeri, değişiklik izleme bilgilerinin tutulduğu süreyi belirtir. Bu süreden daha eski olan değişiklik izleme bilgileri düzenli aralıklarla kaldırılır. Bu değeri ayarlarken uygulamaların veritabanındaki tablolarla ne sıklıkta eşitleneceğini göz önünde bulundurmanız gerekir. Belirtilen saklama süresi, eşitlemeler arasındaki maksimum süre kadar uzun olmalıdır. Bir uygulama değişiklikleri daha uzun aralıklarla alırsa, değişiklik bilgilerinden bazıları büyük olasılıkla kaldırılmış olduğundan döndürülen sonuçlar yanlış olabilir. Yanlış sonuçlar almaktan kaçınmak için, bir uygulama eşitlemeler arasındaki aralığın çok uzun olup olmadığını belirlemek için CHANGE_TRACKING_MIN_VALID_VERSION sistem işlevini kullanabilir.

Eski değişiklik izleme bilgilerini kaldıran temizleme görevini etkinleştirmek veya devre dışı bırakmak için seçeneğini kullanabilirsiniz AUTO_CLEANUP . Bu, uygulamaların eşitlenmesini engelleyen geçici bir sorun olduğunda ve bekletme süresinden eski değişiklik izleme bilgilerini kaldırma işleminin sorun çözülene kadar duraklatılması gerektiğinde yararlı olabilir.

Değişiklik izleme kullanan tüm veritabanları için aşağıdakilere dikkat edin:

  • Değişiklik izlemeyi kullanmak için veritabanı uyumluluk düzeyinin 90 veya daha büyük olması gerekir. Bir veritabanının uyumluluk düzeyi 90'dan azsa, değişiklik izlemeyi yapılandırabilirsiniz. Ancak, değişiklik izleme bilgilerini almak için kullanılan CHANGETABLE işlevi bir hata döndürür.

  • Anlık görüntü yalıtımını kullanmak, tüm değişiklik izleme bilgilerinin tutarlı olduğundan emin olmanıza yardımcı olmak için en kolay yoldur. Bu nedenle, veritabanı için anlık görüntü yalıtımının olarak ayarlanmasını ON kesinlikle öneririz. Daha fazla bilgi için bkz . Değişiklik izleme (SQL Server) ile çalışma.

Tablo için Değişiklik İzlemeyi Etkinleştirme

İzlenmek istediğiniz her tablo için değişiklik izleme etkinleştirilmelidir. Değişiklik izleme etkinleştirildiğinde, tablodaki DML işleminden etkilenen tüm satırlar için değişiklik izleme bilgileri korunur.

Aşağıdaki örnekte, ALTER TABLEkullanarak bir tablo için değişiklik izlemenin nasıl etkinleştirileceği gösterilmektedir.

ALTER TABLE Person.Contact
ENABLE CHANGE_TRACKING
WITH (TRACK_COLUMNS_UPDATED = ON)

Ayrıca, Veritabanı Özellikleri (ChangeTracking Page) iletişim kutusunu kullanarak SQL Server Management Studio'da bir tablo için değişiklik izlemeyi etkinleştirebilirsiniz.

TRACK_COLUMNS_UPDATED seçeneği olarak ayarlandığındaON, SQL Server Veritabanı Altyapısı hangi sütunların iç değişiklik izleme tablosuna güncelleştirildiği hakkında ek bilgi depolar. Sütun izleme, uygulamanın yalnızca güncelleştirilmiş sütunları eşitlemesini sağlayabilir. Bu, verimliliği ve performansı artırabilir. Ancak sütun izleme bilgilerinin korunması ek depolama yükü eklediğinden bu seçenek varsayılan olarak olarak ayarlanır OFF .

Tablo veya Veritabanı için Değişiklik İzlemeyi Devre Dışı Bırakma

Değişiklik izlemenin veritabanı için olarak ayarlanabilmesi OFF için önce tüm değişiklik izlenen tablolarda değişiklik izleme devre dışı bırakılmalıdır. Veritabanı için değişiklik izleme özelliğinin etkinleştirildiği tabloları belirlemek için sys.change_tracking_tables katalog görünümünü kullanın.

Aşağıdaki örnekte, ALTER TABLEkullanarak bir tablo için değişiklik izlemeyi devre dışı bırakma gösterilmektedir.

ALTER TABLE Person.Contact
DISABLE CHANGE_TRACKING;

Veritabanında hiçbir tablo değişiklikleri izlemediğinde, veritabanı için değişiklik izlemeyi devre dışı bırakabilirsiniz. Aşağıdaki örnekte , ALTER DATABASE SET seçeneklerini kullanarak veritabanı için değişiklik izlemeyi devre dışı bırakma gösterilmektedir.

ALTER DATABASE AdventureWorks2022
SET CHANGE_TRACKING = OFF