Transaction Log Dosyasını Silmek

Bazen log dosyasının bulunduğu disk dolduğu için geçici bir çözüm olarak başka bir disk üzerinde ikinci bir log dosyası oluşturabiliriz. Zamanla bu geçici olarak oluşan log dosyalarını silmezsek log dosya sayımız artar. İlk log dosyasının bulunduğu diskte yer açıldığı zaman, ya da bu ilk log dosyasını yeterli alan olan başka bir diske taşıdığımız zaman, geçici olarak oluşturduğumuz bu log dosyalarını silebiliriz. İkinci bir log dosyasının veritabanına nasıl eklendiğini görmek için “Veritabanına İkinci Log Dosyasını Eklemek” isimli makalemi okumak isteyebilirsiniz.

 

 

Veritabanınızın recovery model’i Full ise, log dosyasını silebilmek için öncelikle log dosyasının truncate olması için log backup almanızı öneririm. Aşağıdaki makalelerimi okumak isteyebilirsiniz.

 

Veritabanı Recovery Modelleri“,

SQL Server Log Dosyasını Shrink Etmek

 

 

Log backup aldıktan sonra silmek istediğimi log dosyasını shrink etmemiz gerekiyor. Öncelikle veritabanı üzerinde sağ tıklayarak Tasks->Shrink->Files diyoruz.

 

 

Karşımıza gelen ekranda aşağıdaki gibi File type kısmından Log seçeneğini seçiyoruz.

 

File name kısmından shrink etmek istediğimiz file’ı seçiyoruz.

 

Shrink action kısmından da, Empty file by migrating the data to other files in the same filegroup seçeneğini seçiyoruz. Bu şekilde log dosyamızın içindeki verilerin diğer log dosyasına aktarılmasını sağlamış oluyoruz. Bu işlemi yapmadan sol üste Script yazan yere tıklayarak script’ini alalım.

 

 

 

Bu işlemi yapmadan sol üste Script yazan yere tıklayarak script’ini alalım. Karşımıza aşağıdaki gibi bir script çıkacaktır.

USE [Test]
GO
DBCC SHRINKFILE (N'Test_YeniLog' , EMPTYFILE)
GO

 

Daha sonra cancel diyerek bu ekranı kapatalım ve veritabanına sağ tıklayarak properties diyelim. Karşımıza gelen ekranda Files’ı seçerek sağ tarafta beliren veritabanı dosyalarından silmek istediğimiz log dosyasını seçelim ve sağ altta çıkan remove butonuna tıklayarak yine script’ini alalım. Karşımıza aşağıdaki gibi bir script çıkacaktır.

USE [Test]
GO
ALTER DATABASE [Test]  REMOVE FILE [Test_YeniLog]
GO

 

Bu iki script’i aşağıdaki gibi birleştirerek log dosyanızı kaldırabilirsiniz.

USE [Test]
GO
DBCC SHRINKFILE (N'Test_YeniLog' , EMPTYFILE)
GO
ALTER DATABASE [Test]  REMOVE FILE [Test_YeniLog]
GO

Log dosyanızı kaldırdıktan sonra veritabanında bir süre kaldırılmamış gibi gözükebilir. Endişe etmeyin bu normal bir durumdur. Bir süre sonra kendi kendine düzelecektir.

Loading

Leave Your Comment