MSSQL backup e restore: differenze tra le versioni
Jump to navigation
Jump to search
| (6 versioni intermedie di uno stesso utente non sono mostrate) | |||
| Riga 1: | Riga 1: | ||
==salvataggio== |
==salvataggio== |
||
| ⚫ | |||
| ⚫ | |||
Verificare il Recovery Model del database: |
Verificare il Recovery Model del database: |
||
SELECT name,recovery_model_desc FROM sys.databases WHERE name = 'MioDatabase' |
SELECT name,recovery_model_desc FROM sys.databases WHERE name = 'MioDatabase' |
||
GO |
GO |
||
Eventualmente modificarlo: |
|||
| ⚫ | |||
ALTER DATABASE <database_name> SET RECOVERY FULL |
|||
| ⚫ | |||
Salvataggio |
|||
| ⚫ | |||
go |
|||
| ⚫ | |||
BACKUP LOG MioDatabase TO DISK = '/backup/MioDatabase_20260611.trn' WITH INIT, FORMAT, COMPRESSION |
BACKUP LOG MioDatabase TO DISK = '/backup/MioDatabase_20260611.trn' WITH INIT, FORMAT, COMPRESSION |
||
go |
|||
Per verificare svuotamento del transaction log: |
Per verificare svuotamento del transaction log: |
||
SELECT * FROM sys.dm_db_log_space_usage; |
SELECT * FROM sys.dm_db_log_space_usage; |
||
go |
|||
Con versioni |
Con versioni precedenti alla 2019: |
||
DBCC SQLPERF(LOGSPACE); |
DBCC SQLPERF(LOGSPACE); |
||
go |
|||
Riferimenti: [https://learn.microsoft.com/it-it/sql/t-sql/statements/restore-statements-transact-sql?view=sql-server-ver17] |
|||
==ripristino== |
==ripristino== |
||
Versione attuale delle 12:19, 17 giu 2026
salvataggio
Verificare il Recovery Model del database:
SELECT name,recovery_model_desc FROM sys.databases WHERE name = 'MioDatabase' GO
Eventualmente modificarlo:
ALTER DATABASE <database_name> SET RECOVERY FULL go
Salvataggio
backup database MioDatabase to disk = '/backup/MioDatabase.bak' go
Per per salvare solo il transaction log:
BACKUP LOG MioDatabase TO DISK = '/backup/MioDatabase_20260611.trn' WITH INIT, FORMAT, COMPRESSION go
Per verificare svuotamento del transaction log:
SELECT * FROM sys.dm_db_log_space_usage; go
Con versioni precedenti alla 2019:
DBCC SQLPERF(LOGSPACE); go
Riferimenti: [1]
ripristino
caso semplice
Per leggere il contenuto di un backup, serve eventualmente per modificare i percorsi dei files da restorare
RESTORE HEADERONLY FROM DISK = '/backup/MioDatabase.bak'; GO
restore database MioDatabase from disk = '/backup/MioDatabase.bak' with recovery go
con spostamento di percorso
RESTORE FILELISTONLY FROM DISK = '/backup/MioDatabase.bak';
RESTORE DATABASE MioDatabase FROM DISK = '/backup/MioDatabase.bak'; WITH RECOVERY, MOVE 'MioDatabase_Data' TO '/nuovo_percorso/MioDatabase_Data.mdf', MOVE 'MioDatabase_Log' TO '/nuovo_percorso/MioDatabase_Log.ldf'; GO
ripristino da completo, incrementali e transaction log
Per restore database e transaction log:
Utile per capire quando è stato eseguito il backup dei log e quale intervallo di tempo copre:
RESTORE HEADERONLY FROM DISK='/backup/MioDB_log_001.trn'; GO
restore database MioDatabase from disk = '/backup/MioDatabase_full.bak' with norecovery go restore database MioDatabase from disk = '/backup/MioDatabase_incremental.bak' with norecovery go restore log MioDatabase from disk = '/backup/MioDatabase_log01.bak' with norecovery go
L'ultimo backup del transaction log viene ripristinato con l'opzione recovery:
restore log MioDatabase from disk = '/backup/MioDatabase_log02.bak' with recovery go
Per point in time:
restore log MioDatabase from disk = '/backup/MioDatabase_log02.bak' with stopat='2026-06-10T15:30:00',recovery go
post restore
SELECT name,state_desc,recovery_model_desc FROM sys.databases WHERE name = 'MioDatabase'; GO
Eventualmente cambiare il compatibility level
select name,compatibility_level from sys.databases go
alter database MioDatabase set compatibility_level=170 go