MS-SQL 2005 – Backup dei log, SHRINKFILE e cancella i backup log

BACKUP  LOG
Esegue il backup solo del log delle transazioni. Il backup del log viene eseguito dal punto dell’ultimo backup del log completato correttamente fino alla fine corrente del log.

— — Esecuzione backup dei LOG su DB DBNAME
use DBNAME
DECLARE @BackupName varchar(100);
SET @BackupName = ‘C:BCK_LOGDBNAME_log_’+ convert(char(8), getdate(),112) + ‘.BAK’;
BACKUP LOG DBNAME TO DISK = @BackupName
WITH RETAINDAYS = 15, NOFORMAT, NOINIT, NAME = N’DBNAME-Transaction Log Backup’, SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO

SHRINKFILE
Compatta le dimensioni del file di dati o di log specificato per il database corrente o svuota un file spostando i dati dal file specificato ad altri file dello stesso filegroup, consentendo la rimozione del file dal database. È possibile compattare un file fino a dimensioni inferiori rispetto a quelle specificate al momento della creazione. Le dimensioni minime del file verranno reimpostate sul nuovo valore.
Nell’esempio seguente le dimensioni di un file di dati denominato DataFile1 nel database DBNAME vengono compattate fino a 1024 MB.

— Esecuzione SHRINKFILE del file di log su DB DBNAME a 1024Mbyte
BACKUP LOG DBNAME WITH NO_LOG
DBCC SHRINKFILE(datafile1, 1024)

Il seguente codice elimina i file all’interno di una cartella più vecchi di 30 giorni. L’esecuzione si rende possibile utilizzando una stored procedure di sistema (xp_delete_file), interagendo con il file system richiede che l’utente  abbia accesso al file/cartella. 

— Esegue il delete dei file di log vecchi di 30gg
DECLARE @currentdate  datetime
DECLARE @olddate datetime
SET @currentdate = CURRENT_TIMESTAMP
SET @olddate= @currentdate  -30
EXECUTE master.dbo.xp_delete_file 0,N’G:BCK_LOG’,N’bak’,@olddate,1

Attenzione:
I backup creati nella versione più recente di SQL Server non possono essere ripristinati nelle versioni precedenti di SQL Server.

Lascia un commento