SQL Server’da Veritabanlarının Log Dosyalarını Shrink ile Küçültmek

Herkese merhaba,

Bu yazıda SQL Server’da veritabanlarının log dosyalarını shrink ile küçültmek hakkında bilgi vereceğim.

Basit olarak shrink nedir ona değinelim.

Shrink kısaca küçültmek demektir. Burada yapılacak işlem de log dosyalarının küçültülmesi işlemidir.

Aşağıdaki kod veritabanlarınızın log dosyalarını shrink ile küçültecektir. Bu sayede diskte yer açmış da olacaksınız.

Uyarı : Aşağıdaki kodu canlı veritabanınız üzerinde herhangi bir yedek almadan, işlemin ne olduğunu bilmeden lütfen denemeyin. Aksi takdirde sorumluluk size aittir. Eğer bu işlemi denemek ve ne olduğunu anlamak istiyorsanız local veritabanınız üzerinde işlemi test edin.

DECLARE @LogDBAdi NVARCHAR(100),
        @DBAdi NVARCHAR(100),
        @SQL NVARCHAR(500);
DECLARE db_cursor CURSOR FOR
SELECT lg.name AS LogDBAdi,
       db.name AS DBAdi
FROM sys.master_files lg
    INNER JOIN sys.databases db
        ON db.database_id = lg.database_id
WHERE lg.type = 1
      AND db.name NOT IN ( 'master', 'model', 'msdb', 'tempdb', 'ReportServer$YAVUZSELIM',
                           'ReportServer$YAVUZSELIMTempDB'
                         ); --Bu kısımda shrink edilmek istenmeyen veritabanları seçilir. 
OPEN db_cursor;
FETCH NEXT FROM db_cursor
INTO @LogDBAdi,
     @DBAdi;
WHILE @@FETCH_STATUS = 0
BEGIN
    SET @SQL = N'USE ' + @DBAdi + N';';
    SET @SQL
        = @SQL + CHAR(13) + CHAR(10) + N'ALTER DATABASE [' + @DBAdi + N'] SET RECOVERY SIMPLE WITH NO_WAIT;' + CHAR(13)
          + CHAR(10) + N'DBCC SHRINKFILE(' + @LogDBAdi + N');' + CHAR(13) + CHAR(10) + N'ALTER DATABASE [' + @DBAdi
          + N'] SET RECOVERY FULL WITH NO_WAIT;' + CHAR(13) + CHAR(10);
    EXECUTE sp_executesql @SQL;
    FETCH NEXT FROM db_cursor
    INTO @LogDBAdi,
         @DBAdi;
END;
CLOSE db_cursor;
DEALLOCATE db_cursor;

Shrink edilmesini istemediğiniz veritabanlarını seçtikten sonra shrink işlemine başlayabilirsiniz.

Kodu çalıştırdığınızda aşağıdaki gibi bir sonuç göreceksiniz.

SQL Server’da Veritabanlarının Log Dosyalarını Shrink ile Küçültmek

Görüldüğü üzere 4 adet veritabanı için shrink yapılmış oldu. Bu sizin seçiminize göre değişecektir.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

119 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!