SQL Server 2012 Target Recovery Time

24 Ağustos 2014 Pazar

Target Recovery Time, SQL Server 2012’de gelmiş yeni bir özellik. Veritabanı moturunda veri sayfalarında yaptığı işlemleri RAM'de yapar (Data Cache'te) ve yaptığı her değişiklikten sonra hemen diske yazmaz bu değişiklikleri. Zaman zaman, aşağıda çeşitlerini açıkladığım gibi değişik Checkpoint tiplerini kullanarak yapar değişiklikleri diske yazma işlemini. Checkpoint işlemi, hafızadaki o anda bulunan (kirli sayfalar da denilen) veri sayfalarını ve Transaction Log bilgisini hafızadan diske yazma işlemidir.
SQL Server'da 4 çeşit Checkpoint var:

Automatic: Otomatik Checkpoint'ler "EXEC sp_configure 'recovery interval', 'seconds'" ayarına bağlı olarak tetiklenir. Ayrıca veritabanı motoru yazma işlemlerindeki gecikme 20 milisaniyeyi geçtiğinde de bunu tetikler.

 Indirect: Bu, veritabanı bazında bir ayardır ve "ALTER DATABASE … SET TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | MINUTES }" komutuyla belirlenir. Bu ayar, Instance düzeyinde belirlenen <I>Automatic</I> ayarı ezer. Varsayılan değeri 0'dır ve bu durumda diğer tipler işler.

Manuel: Transaction SQL komutu olan CHECKPOINT komutu çalıştırılarak tetiklenebilir.

Internal: Yedek alma veya veritabanı Snapshot'ı oluşturma gibi işlemlerde otomatik olarak veritabanı moturu tarafından tetiklenir. Bu tip için sizin müdahale etme şansınız yok.

 Target Recovery Time özelliğini SQL Server Management Studio (SSMS) arayüzünden de değiştirebilirsiniz. Bunun için ilgili veritabanının özelliklerine gidip, Options sayfasındaki Recovery bölümünden aşağıdaki ekran görüntüsünde işaretlediğim ayarı değiştirmelisiniz. Örneğin bu ayarı 30 yaparsanız, her 30 saniyede bir veritabanınız için Checkpoint komutu çalıştırılacaktır ve Dirty Page'ler diske yazılacaktır.


Share/Bookmark

0 comments :