İşlem günlüğünün fiziksel yapısı

İşlem günlüğü, veritabanı ve veri kurtarma için veri bütünlük güvence altına almak için kullanılır.Bu bölümdeki konular, işlem günlüğünün fiziksel yapısı hakkında bilgi sağlar.Fiziksel mimarisi anlama etkinliğinizi zirveye hareket günlüklerini yönetme de artırabilir.

Bir veritabanı işlem günlüğünün eşler veya daha fazla fiziksel dosyaları.Kavramsal olarak, günlük dosyası olan bir dize günlük kayıtları.Günlük kayıtlarının sırasını verimli olarak depolanan fiziksel olarak küme işlem günlüğü uygulayan fiziksel dosya.

The SQL Server Veritabanı Altyapısı divides each physical log file internally into a number of virtual log files.Sanal günlük dosyaları sabit boyut vardır ve hiçbir fiziksel bir günlük dosyası sanal günlük dosyaları sabit bir sayı yoktur.The Veritabanı Altyapısı chooses the size of the virtual log files dynamically while it is creating or extending log files.The Veritabanı Altyapısı tries to maintain a small number of virtual files.Genişletilmiş günlük dosyası sonra sanal dosyaların boyutu varolan günlüğü boyutunu ve yeni dosya artış boyutu toplamıdır.Boyut veya sanal günlük dosyalarının sayısı yapılandırılmış veya getirilemez yönetici tarafından küme.

Sanal günlük dosyaları, sistem performansını etkileyen tek günlük dosyaları küçük tarafından tanımlanmış olan saat size ve growth_increment değerler.Bu günlük dosyaları nedeniyle birçok küçük adımlarla büyük bir boyuta ulaşması, sanal günlük dosyaları çok sayıda sahip oldukları.Bu yavaş kapalı veritabanı başlatma ve aynı zamanda günlük yedeği ve geri yükleme işlemleri.Günlük dosyaları atamak öneririz bir size en son boyutuna yakın bir değere gerekli ve aynı zamanda sahip göreceli olarak büyük bir growth_increment değer

İşlem günlüğü etrafında dosyadır.Örneğin, bir veritabanı ile fiziksel bir günlük dosyası sanal günlük dosyaları dört bölünmüş ele alalım.Veritabanı oluşturulduğunda, mantıksal günlük dosyasının fiziksel günlük dosyasının başlangıcında başlar.Yeni günlük kayıtları mantıksal günlük sonuna eklenir ve fiziksel günlük sonuna doğru genişletin.Günlük kesilme minimum kurtarma önünde görünür tüm kayıtları günlük sıra numarası (MinLSN) herhangi bir sanal günlükler boşaltır.The MinLSN is the log sequence number of the oldest log record that is required for a successful database-wide rollback.Örnek veritabanı hareket günlüğüne aşağıdaki resimde bir benzer olacaktır.

Dört sanal günlük dosyasına bölünmüş günlük dosyası

Mantıksal günlüğünün sonuna fiziksel günlük dosyasının sonuna ulaştığında, yeni günlük kayıtları etrafında fiziksel günlük dosyasının başlangıcına kaydır.

Günlük kayıtları günlük dosyasının başına döner

Bu döngü sonsuz, mantıksal günlük başına hiçbir zaman mantıksal günlüğünün sonuna ulaşıncaya kadar yineler.Eski günlük kaydı her zaman bırakın yeterli oda için sonraki denetim noktası oluşturulan tüm yeni günlük kayıtları için yeterince sık kesiliyor, günlük hiçbir zaman doldurur.Mantıksal günlüğün başlangıcındaki mantıksal günlüğünün sonuna ulaşmak, ancak iki şeyden biri oluşur:

  • FILEGROWTH için günlük etkinse ve disk üzerinde kullanılabilir boş alan, dosya belirtilen tutar olarak uzatılmış growth_increment ve yeni günlük kayıtları için uzantısı eklenir.FILEGROWTH ayarı hakkında daha fazla bilgi için bkz: ALTER DATABASE (Transact-SQL).

  • FILEGROWTH ayarı etkin değildir veya günlük dosyası tutan disk belirtilen tutardan daha az boş alan varsa growth_increment, hata 9002 oluşturulur.

Günlük, birden çok fiziksel günlük dosyaları içeriyorsa, önce ilk fiziksel günlük dosyasının başlangıcına geri sarar mantıksal günlük tüm fiziksel günlük dosyaları taşıyın.