MSSQL backup e restore: differenze tra le versioni
Jump to navigation
Jump to search
(→backup) |
|||
| (21 versioni intermedie di uno stesso utente non sono mostrate) | |||
| Riga 1: | Riga 1: | ||
== |
==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 |
|||
| ⚫ | |||
go |
|||
Salvataggio |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
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: [https://learn.microsoft.com/it-it/sql/t-sql/statements/restore-statements-transact-sql?view=sql-server-ver17] |
|||
== |
==ripristino== |
||
===caso semplice=== |
|||
Per leggere il contenuto di un backup, serve eventualmente per modificare i percorsi dei files da restorare |
Per leggere il contenuto di un backup, serve eventualmente per modificare i percorsi dei files da restorare |
||
RESTORE HEADERONLY FROM DISK = '/backup/MioDatabase.bak'; |
RESTORE HEADERONLY FROM DISK = '/backup/MioDatabase.bak'; |
||
GO |
GO |
||
restore database MioDatabase from disk = '/backup/MioDatabase.bak' with recovery |
restore database MioDatabase from disk = '/backup/MioDatabase.bak' with recovery |
||
go |
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 <code>recovery</code>: |
|||
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 |
Eventualmente cambiare il compatibility level |
||
select name,compatibility_level from sys.databases |
select name,compatibility_level from sys.databases |
||
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