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.
Bu makale, Azure SQL Veritabanı'nda bir veritabanını yansıtmak için otomatik yeniden izlemeyi kapsar.
Belirli koşullar altında, dokuya yansıtma işlemlerinde gecikme yaşanırsa, işlem günlüğü dosyası kullanımının artmasına neden olabilir. İşlenen değişiklikler yansıtılmış veritabanına çoğaltılana kadar işlem günlüğü kesilemez. İşlem günlüğü boyutu tanımlı sınır üst sınırına ulaştığında veritabanına yazma işlemi başarısız olur.
İşletimsel veritabanlarını kritik OLTP işlemleri için yazma hatalarına karşı korumak için Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği'nde yansıtma işlemi, işlem günlüğünün kesilmesini sağlayan ve veritabanı yansıtmasını Fabric'e yeniden başlatan otomatik yeniden tohumlama özelliğini kullanır.
Yeniden görüntülenen, yansıtılmış veritabanından Microsoft Fabric'e işlem akışını durdurur ve yansıtmayı mevcut durumda yeniden başlatıyor. Yeniden izleme, yansıtma için yapılandırılmış tabloların yeni bir ilk anlık görüntüsünü oluşturmayı ve bunu Microsoft Fabric'e çoğaltmayı içerir. Anlık görüntüden sonra artımlı değişiklikler çoğaltılır.
Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği'nde yeniden denetleme veritabanı düzeyinde veya tablo düzeyinde gerçekleşebilir.
Veritabanı düzeyi yeniden yüklendi: Yansıtma için etkinleştirilen veritabanındaki tüm tablolar için sürekli veri yansıtma durdurulur, işlem günlüğü kesilir ve yansıtma için etkinleştirilen tüm tabloların ilk anlık görüntüsü yeniden yayımlanarak veritabanı için yansıtma yeniden başlatılır. Ardından, artan değişiklikler sürekli kopyalanmaya devam eder.
Tablo düzeyinde yeniden tohumlama: Veri aynalama işlemi, yalnızca yeniden tohumlama gerektiren tablolar için durdurulur. Yansıtma, etkilenen tablolar için ilk anlık görüntü yeniden yayımlanarak yeniden başlatılır. Ardından, artan değişiklikler sürekli kopyalanmaya devam eder.
Veritabanı düzeyinde otomatik yeniden tohumlamanın nedenleri
Veritabanı düzeyinde yapılan yeniden tohumlama, işlem günlüğünün maksimum boyutuna ulaşmamasını sağlayarak veritabanı yazma kullanılabilirliğini korur. İşlem günlüğü boyutu üst sınırı, Azure SQL Veritabanı veya Azure SQL Yönetilen Örneği'nin veritabanı Hizmet Düzeyi Hedefi'ne bağlıdır. Fabric mirroring için etkinleştirilmiş bir veritabanının işlem günlüğü kullanımı büyümeye devam edebilir ve bu da günlük kısaltmayı engelleyebilir. İşlem günlüğü boyutu tanımlanan en yüksek sınıra ulaştığında veritabanına yazma işlemi başarısız olur.
Veri aynalama nedeniyle günlüklerin kısaltılmasının engellenmesi birden çok nedenden dolayı gerçekleşebilir.
- Kaynaktan yansıtılmış veritabanına veri yansıtmanın gecikmesi, çoğaltılmayı bekleyen işlemlerin işlem günlüğünden kesilmesini önler.
- Çoğaltılmış işlemleri çoğaltmayı bekleyen, uzun süre çalışan işlemler kesilemez ve işlem günlüğü alanını işgal eder.
- OneLake'te iniş bölgesine sürekli yazma hataları çoğaltmayı engelleyebilir.
Bu senaryo yetersiz izinlerden kaynaklanabilir. One Lake'te iniş bölgesine yazmak için Sistem Tarafından Atanan Yönetilen Kimlik (SAMI) veya Kullanıcı Tarafından Atanan Yönetilen Kimlik (UAMI) kullanılarak Fabric'e Yansıtma yapılır. Bu doğru yapılandırılmazsa, işlemlerin çoğaltılma işlemi tekrar tekrar başarısız olabilir.
Uyarı
Kullanıcı Tarafından Atanan Yönetilen Kimlik (UAMI) desteği şu anda önizleme aşamasındadır.
Çözümleme kapasitesi durdurulur ve yeniden başlatılırsa, yansıtılan veritabanı durumu Duraklatıldı olarak kalır. Sonuç olarak, kaynakta yapılan değişiklikler OneLake'e çoğaltılamaz. Yansıtmayı sürdürmek için Doku portalında yansıtılmış veritabanına gidin ve Çoğaltmayı sürdür'ü seçin. Yansıtma duraklatıldığı yerden devam eder.
Doku kapasitesi uzun süre duraklatılmış durumda kalırsa yansıtma, durdurma noktasından devam etmeyebilir ve verileri baştan yeniden depolar. Bunun nedeni, yansıtmanın uzun süre duraklatılmasının kaynak veritabanı işlem günlüğü kullanımının büyümesine ve günlük kesilmesinin engellenmesine neden olabilmesidir. Yansıtma sürdürülürken, kullanılan işlem günlüğü dosyası alanı dolmak üzereyse, tutulan günlük alanını serbest bırakmak için veritabanının yeniden tohumlanması başlatılır.
Tablo düzeyinde otomatik yeniden sıfırlama nedenleri
Yansıtma için etkinleştirilen kaynak tablolarda şema değişiklikleri gerçekleştiğinde, Doku'daki yansıtılmış tabloların şeması artık kaynakla eşleşmez. Bunun nedeni kaynakta aşağıdaki ALTER TABLE veri tanımı dili (DDL) T-SQL deyimleri olabilir:
- Sütun ekleme/bırakma/değiştirme/yeniden adlandırma
- Tabloyu kesme/yeniden adlandırma
- Kümelenmemiş birincil anahtar ekleme
Etkilenen tablolara sadece yeniden tohumlama uygulandı.
Tanılama
Doku yansıtmanın yansıtılmış bir veritabanı için günlük kesilmesini engelleyip engellemediğini belirlemek için sistem kataloğu görünümündeki sütunu log_reuse_wait_desc kontrol sys.databases ederek nedeninin olup REPLICATIONolmadığını denetleyin. Günlüğü yeniden kullanma bekleme türleri hakkında daha fazla bilgi için bkz . İşlem günlüğünün kesilmesini geciktiren faktörler. Örneğin:
SELECT [name], log_reuse_wait_desc
FROM sys.databases
WHERE is_data_lake_replication_enabled = 1;
Sorgu günlük yeniden kullanım bekleme türünü gösteriyorsa REPLICATION , doku yansıtması nedeniyle işlem günlüğü işlenen işlemleri boşaltamaz ve doldurmaya devam eder. Azure SQL Veritabanı'nda günlük kullanımıyla ilgili ek sorun giderme işlemleri için bkz. Azure SQL Veritabanı ile ilgili işlem günlüğü hatalarını giderme.
Toplam günlük alanını, geçerli günlük kullanımını ve kullanılabilir alanı denetlemek için aşağıdaki T-SQL betiğini kullanın:
USE <Mirrored database name>
GO
--initialize variables
DECLARE @total_log_size bigint = 0;
DECLARE @used_log_size bigint = 0;
DECLARE @size int;
DECLARE @max_size int;
DECLARE @growth int;
--retrieve total log space based on number of log files and growth settings for the database
DECLARE sdf CURSOR
FOR
SELECT SIZE*1.0*8192/1024/1024 AS [size in MB],
max_size*1.0*8192/1024/1024 AS [max size in MB],
growth
FROM sys.database_files
WHERE TYPE = 1
OPEN sdf
FETCH NEXT FROM sdf INTO @size,
@max_size,
@growth
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @total_log_size = @total_log_size +
CASE @growth
WHEN 0 THEN @size
ELSE @max_size
END
FETCH NEXT FROM sdf INTO @size,
@max_size,
@growth
END
CLOSE sdf;
DEALLOCATE sdf;
--current log space usage
SELECT @used_log_size = used_log_space_in_bytes*1.0/1024/1024
FROM sys.dm_db_log_space_usage;
-- log space used in percent
SELECT @used_log_size AS [used log space in MB],
@total_log_size AS [total log space in MB],
@used_log_size/@total_log_size AS [used log space in percentage];
Yeniden ekim sırasında
Yeniden izleme sırasında, Microsoft Fabric'teki yansıtılmış veritabanı öğesi kullanılabilir ancak yeniden kullanıma sunulana kadar artımlı değişiklikler almaz. içindeki reseed_statesys.sp_help_change_feed_settings sütun, yeniden depolanmış durumu gösterir.
Doku Yansıtma'da kaynak SQL veritabanı işlem günlüğü izlenir. Otomatik yanıtlanan yalnızca aşağıdaki üç koşul doğru olduğunda tetiklenir:
- İşlem günlüğü dolu yüzdeden fazladır
@autoreseedthreshold, örneğin,70. - Günlüğü yeniden kullanma nedeni şudur:
REPLICATION. -
REPLICATIONgünlük yeniden kullanım bekleme işlemi, işlem çoğaltması veya CDC gibi diğer özellikler için tetiklenebildiği için, otomatik yanıtlanan yalnızca = 1 olduğundasys.databases.is_data_lake_replication_enabledgerçekleşir. Bu değer Doku Yansıtma tarafından yapılandırılır.
Veritabanı düzeyinde yeniden tohumlamanın tetiklenip tetiklenmediğini kontrol edin
Veritabanının tamamı yeniden tohumlanıyorsa, aşağıdaki koşullara dikkat edin.
Kaynak SQL veritabanındaki sistem saklı yordamında bulunan
reseed_statesütunu,sys.sp_help_change_feed_settingskolonunun mevcut yeniden başlatma durumunu gösterir.-
0= Normal. -
1= Veritabanı, Doku'ya yeniden başlatma işlemini başlattı. Geçiş durumu. -
2= Veritabanı Doku'ya yeniden başlatılıyor ve çoğaltmanın yeniden başlatılmasını bekliyor. Geçiş durumu. Çoğaltma oluşturulduğunda, yeniden görüntülenen durum öğesine0taşınır.
Daha fazla bilgi için bkz. sys.sp_help_change_feed_settings.
-
Veritabanında yansıtma için etkinleştirilen tüm tabloların
7içindekistatesütunu,sys.sp_help_change_feed_tabledeğerine sahiptir.Daha fazla bilgi için bkz. sys.sp_help_change_feed_table.
Tablo düzeyinde bir yeniden başlatmanın tetiklenip tetiklenmediğini kontrol edin
Herhangi bir yeniden tohumlanan tablo için,
7içindekistatesütunundasys.sp_help_change_feed_tabledeğerini arayın.Daha fazla bilgi için bkz. sys.sp_help_change_feed_table.