Biraz yeni bir DBA ve ben adil bir aktivite miktarına sahip bir SQL Server 2012 örneği yönetiyorum. Tam Kurtarma modunda çalışıyorum çünkü zaman içinde kurtarmaya ihtiyacımız var.
Şu anda, her gün 05:00 de veritabanlarının ve günlüklerin tam bir yedeğini alıyorum. Günlük dosyalarının bazıları 300 gb'a kadar balonlandı ve yedek aldıktan sonra bile boyutu küçülmüyor. Ben benzer bir şey çalıştırarak boyutunu azaltmak için alabilirsiniz:
BACKUP LOG db1 TO DISK = '\\server\share\db1_log1.trn';
DBCC ShrinkFile([db1_log], 0);
BACKUP LOG db1 TO DISK = '\\server\share\db1_log2.trn';
DBCC ShrinkFile([db1_log], 0);
BACKUP LOG db1 TO DISK = '\\server\share\db1_log3.trn';
DBCC ShrinkFile([db1_log], 0);
Yedekleme dosyalarının LSN'lerini kontrol ettiğimde şöyle bir şey görüyorum:
RESTORE headeronly FROM DISK = N'\\server\share\db1_log1.trn'
FirstLSN: 15781000014686200001
SecondLSN: 15802000000665000001
RESTORE headeronly FROM DISK = N'\\server\share\db1_log2.trn'
FirstLSN: 15802000000665000001
SecondLSN: 15805000000004100001
RESTORE headeronly FROM DISK = N'\\server\share\db1_log3.trn'
FirstLSN: 15805000000004100001
SecondLSN: 15808000000004200001
Günlük dosyalarını daraltarak günlük zincirimi kırdığımı sanmıyorum. Bunu okurken, performansımı incittiğime inanıyorum çünkü bu küçülen günlük dosyaları kendilerini yeniden büyütmek zorunda.
Sorular:
- Yedeklemelerden sonra günlük dosyası neden küçülmüyor? Taahhütsüz işlemler olduğu için mi?
- İlk başta her 05:00 yedeklemeden sonra günlük dosyalarını küçültmek gerektiğini düşünüyordum. Performans için bunun ne kadar kötü olduğunu okuduktan sonra, gün boyunca her birkaç saatte bir düzenli günlük yedeklemeleri almam gerektiğine inanıyorum. Bu doğru mu?
- Veritabanının / günlüklerin normal tam yedeğimi her gün 05: 00'da gerçekleşir ve bazen 3 saat sürer. Günlük yedeklemelerini her saat gerçekleşecek şekilde zamanlarsam, günlük yedeklemesi 05:00 ile yedeklendiğinde ne olur?