You want to shrink all SQL Server databases transaction log files to clean up some space
SOLUTION:
Use the following script to shrink all databases transaction log files. You can use it also as a maintenance job using SQL Server Agent
DECLARE @Log_name VARCHAR(1000)
DECLARE @Db_name VARCHAR(1000)
DECLARE @Recovery_model_desc
VARCHAR(1000)
DECLARE @SQL
nvarchar(2000)
DECLARE @ParmDefinition
nvarchar(1000)
DECLARE @SizeAfter
int
DECLARE db_cursor
CURSOR FOR
SELECT
F.NAME AS [LOG_NAME],
DB.NAME AS [DB_NAME],
DB.RECOVERY_MODEL_DESC AS
[RECOVERY_MODEL_DESC]
FROM
MASTER.SYS.MASTER_FILES F INNER JOIN MASTER.SYS.DATABASES DB
ON DB.DATABASE_ID = F.DATABASE_ID
WHERE F.FILE_ID=2 AND DB.NAME <> 'tempdb'
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @Log_name, @Db_name, @Recovery_model_desc
WHILE @@FETCH_STATUS
= 0
BEGIN
SET @SQL = N'
ALTER DATABASE '+ @Db_name + N' SET RECOVERY SIMPLE WITH
NO_WAIT
SELECT F.SIZE
FROM MASTER.SYS.MASTER_FILES F INNER JOIN
MASTER.SYS.DATABASES DB
ON DB.DATABASE_ID = F.DATABASE_ID
WHERE F.NAME = ''' + @Log_name +''' AND DB.NAME = '''
+ @Db_name+'''
'
SET @SQL = @sql +'
USE [' + @Db_name
+ ']
DBCC SHRINKFILE (' + @Log_name + ', 10)';
SET @sql = @sql + N'
SELECT F.SIZE
FROM MASTER.SYS.MASTER_FILES F INNER JOIN
MASTER.SYS.DATABASES DB
ON DB.DATABASE_ID = F.DATABASE_ID
WHERE F.NAME = ''' + @Log_name +''' AND DB.NAME = '''+ @Db_name+'''
'
SET @SQL = @SQL + N'
ALTER DATABASE ' + @Db_name + N' SET RECOVERY ' + @Recovery_model_desc +
' WITH NO_WAIT
'
SET @ParmDefinition =N'@Size int OUTPUT';
EXECUTE sp_executesql @SQL ,@ParmDefinition,@Size = @SizeAfter OUTPUT;
FETCH NEXT FROM db_cursor INTO @Log_name, @Db_name, @Recovery_model_desc
END
CLOSE db_cursor
DEALLOCATE db_cursor
Thank you for putting it together.
ReplyDeleteHi Gilad,
ReplyDeleteThank you for the script :)
It would be better if you can change the DBCC shrink to
DBCC SHRINKFILE (''' + @Log_name + ''', 10)';
to prevent any syntax issue.
declare @db varchar(255)
ReplyDeletedeclare c cursor for
select name from sys.databases where is_read_only=0 and state=0
and name not in ('master','model','tempdb','msdb')
open c
fetch c into @db
while @@fetch_status=0
begin
EXEC('use '+@db+';ALTER DATABASE '+@db+' SET RECOVERY SIMPLE;DBCC SHRINKFILE ('+@db+'_Log, 1);ALTER DATABASE '+@db+' SET RECOVERY FULL; ');
fetch next from c into @db
end
close c
deallocate c
Why do you have to change the recovery mode to to simple? What if I want to shrink the trans logs without wiping out the trans history? Say I just ran a log backup job and want to shrink the logs of 60 databases on a SharePoint server? I def do not want to put them into simple mode.
ReplyDeleteDenizli
ReplyDeleteKonya
Denizli
ısparta
Bayburt
K204
Denizli
ReplyDeleteAnkara
Antep
Bursa
Eskişehir
8P5T
van
ReplyDeleteerzincan
sivas
ağrı
manisa
7BD
adıyaman
ReplyDeletesakarya
yalova
tekirdağ
amasya
PXCWK2
ankara parça eşya taşıma
ReplyDeletetakipçi satın al
antalya rent a car
antalya rent a car
ankara parça eşya taşıma
YER1TG
adana evden eve nakliyat
ReplyDeleteafyon evden eve nakliyat
istanbul evden eve nakliyat
burdur evden eve nakliyat
gümüşhane evden eve nakliyat
8HAE
8043E
ReplyDeleteDenizli Evden Eve Nakliyat
Kırşehir Evden Eve Nakliyat
Ağrı Evden Eve Nakliyat
Sivas Evden Eve Nakliyat
Tokat Evden Eve Nakliyat
B235E
ReplyDeleteAdana Parça Eşya Taşıma
Mardin Evden Eve Nakliyat
Aksaray Parça Eşya Taşıma
Yalova Şehirler Arası Nakliyat
Denizli Şehirler Arası Nakliyat
Iğdır Şehir İçi Nakliyat
Batman Lojistik
Çanakkale Lojistik
Trabzon Parça Eşya Taşıma
13C3C
ReplyDeleteBitlis Lojistik
Çanakkale Lojistik
Ünye Parke Ustası
Mersin Parça Eşya Taşıma
Gümüşhane Şehirler Arası Nakliyat
Denizli Parça Eşya Taşıma
Burdur Şehirler Arası Nakliyat
Bursa Lojistik
Trabzon Şehirler Arası Nakliyat
CFED3
ReplyDeleteKırşehir Lojistik
Muş Lojistik
Ort Coin Hangi Borsada
Tekirdağ Çatı Ustası
Kastamonu Şehir İçi Nakliyat
Referans Kimliği Nedir
Gümüşhane Evden Eve Nakliyat
Batman Lojistik
Eskişehir Şehirler Arası Nakliyat
D9074
ReplyDeletebinance %20 komisyon indirimi
D0D11
ReplyDeletebalıkesir sohbet uygulamaları
gümüşhane kadınlarla rastgele sohbet
nevşehir nanytoo sohbet
amasya görüntülü sohbet canlı
görüntülü canlı sohbet
yalova canli sohbet chat
yalova canlı görüntülü sohbet siteleri
maraş rastgele görüntülü sohbet uygulamaları
tunceli canli goruntulu sohbet siteleri
3B73C
ReplyDeletenevşehir telefonda kadınlarla sohbet
isparta bedava sohbet uygulamaları
görüntülü sohbet odaları
rize canlı sohbet ücretsiz
elazığ yabancı görüntülü sohbet uygulamaları
kırıkkale bedava sohbet uygulamaları
ucretsiz sohbet
ücretsiz görüntülü sohbet
bolu sesli sohbet siteler
1B055
ReplyDeleteçorum rastgele sohbet siteleri
samsun ücretsiz sohbet siteleri
ordu bedava sohbet uygulamaları
parasız sohbet
karabük bedava sohbet odaları
Kocaeli Sesli Sohbet Mobil
diyarbakır sesli sohbet
Burdur Kadınlarla Rastgele Sohbet
edirne mobil sesli sohbet
39664
ReplyDeleteArdahan Sesli Sohbet Sitesi
Artvin Canli Goruntulu Sohbet Siteleri
Diyarbakır Sohbet Sitesi
Tekirdağ Ücretsiz Sohbet Uygulamaları
Erzincan Görüntülü Canlı Sohbet
Kastamonu Yabancı Görüntülü Sohbet
bayburt random görüntülü sohbet
denizli sohbet muhabbet
gümüşhane ucretsiz sohbet
E1664
ReplyDeleteburdur telefonda kadınlarla sohbet
sakarya kadınlarla rastgele sohbet
çorum canlı sohbet siteleri ücretsiz
kırıkkale en iyi görüntülü sohbet uygulamaları
erzincan kadınlarla ücretsiz sohbet
karabük bedava sohbet odaları
bilecik ücretsiz sohbet sitesi
mobil sohbet chat
ücretsiz sohbet siteleri
02FE0
ReplyDeletearbitrum
arculus
onekey
arbitrum
quickswap
dappradar
shiba
zkswap
shiba
07C53
ReplyDeletedebank
uwulend finance
yearn finance
dao maker
pancakeswap
uniswap
bscpad
dappradar
DefiLlama