Ripristinare un backup del log delle transazioni (SQL Server)
In questo argomento viene descritto il ripristino di un backup del log delle transazioni in SQL Server 2012 tramite SQL Server Management Studio o Transact-SQL.
Contenuto dell'argomento
Prima di iniziare:
Prerequisiti
Sicurezza
Per ripristinare un backup del log delle transazioni utilizzando:
SQL Server Management Studio
Transact-SQL
Attività correlate
Prima di iniziare
Prerequisiti
È necessario ripristinare i backup in base all'ordine in cui sono stati creati. Prima di ripristinare un determinato backup del log delle transazioni, è necessario ripristinare i backup precedenti riportati di seguito senza eseguire il rollback delle transazioni di cui non è stato eseguito il commit, ovvero utilizzando WITH NORECOVERY:
Il backup completo del database e l'eventuale ultimo backup differenziale che precedono il backup del log delle transazioni. Prima della creazione del backup completo o differenziale del database più recente, è necessario che il database utilizzi il modello di recupero con registrazione completa o il modello di recupero con registrazione minima delle operazioni bulk.
Tutti i backup del log delle transazioni eseguiti dopo il backup completo del database o il backup differenziale (in caso di ripristino di un backup) e prima del backup del log delle transazioni specifico. I backup del log devono essere applicati nella sequenza in cui sono stati creati, senza gap nella catena di log.
Per ulteriori informazioni sui backup del log delle transazioni, vedere Backup di log delle transazioni (SQL Server) e Applicazione dei backup di log delle transazioni (SQL Server).
Sicurezza
Autorizzazioni
Le autorizzazioni per l'istruzione RESTORE vengono assegnate ai ruoli in cui le informazioni sull'appartenenza sono sempre disponibili per il server. Poiché è possibile controllare l'appartenenza ai ruoli predefiniti del database solo quando il database è accessibile e non è danneggiato, condizioni che non risultano sempre vere quando si esegue un'operazione RESTORE, i membri del ruolo predefinito del database db_owner non dispongono delle autorizzazioni per l'istruzione RESTORE.
[Inizio pagina]
Utilizzo di SQL Server Management Studio
Attenzione |
---|
Il normale processo di ripristino prevede la selezione dei backup del log nella finestra di dialogo Ripristina database insieme ai backup differenziali e dei dati. |
Per ripristinare un backup del log delle transazioni
Dopo aver stabilito la connessione all'istanza appropriata di Microsoft Motore di database di SQL Server, in Esplora oggetti fare clic sul nome del server per espandere l'albero dei server.
Espandere Database e, a seconda del database, selezionare un database utente o espandere Database di sistema e selezionare un database di sistema.
Fare clic con il pulsante destro del mouse sul database, scegliere Attività, Ripristina, quindi fare clic su Log delle transazioni pe aprire la finestra di dialogo Ripristina log delle transazioni.
[!NOTA]
Se Log delle transazioni non è disponibile, potrebbe essere necessario ripristinare un backup completo o differenziale. Utilizzare la finestra di dialogo di backup Database.
Nella casella di riepilogo a discesa Database della pagina Generale selezionare il nome di un database. Tale elenco include solo database nello stato di ripristino in corso.
Per specificare l'origine e il percorso dei set di backup da ripristinare, fare clic su una delle opzioni seguenti:
Da backup precedenti del database
Selezionare il database da ripristinare dall'elenco a discesa. Nell'elenco sono inclusi solo i database di cui è stato eseguito il backup in base alla cronologia dei backup di msdb.
Da file o nastro
Fare clic sul pulsante Sfoglia (...) per aprire la finestra di dialogo Seleziona dispositivi di backup. Nella casella Tipi di supporti di backup selezionare uno dei tipi di dispositivi elencati. Per selezionare uno o più dispositivi per la casella Supporti di backup, fare clic su Aggiungi.
Dopo avere aggiunto i dispositivi desiderati nella casella di riepilogo Dispositivi di backup, fare clic su OK per tornare alla pagina Generale.
Nella griglia Selezionare i backup del log delle transazioni da ripristinare selezionare i backup che si desidera ripristinare. Nella griglia sono elencati i backup del log delle transazioni disponibili per il database selezionato. Un backup di log è disponibile solo se il relativo valore Primo LSN è maggiore del valore Ultimo LSN del database. I backup di log vengono elencati in base all'ordine dei numeri di sequenza del file di log (LSN) in essi contenuti e devono essere ripristinati in base a tale ordine.
Nella tabella seguente vengono elencate le intestazioni delle colonne della griglia con una descrizione dei rispettivi valori.
Intestazione
Valore
Ripristina
Le caselle di controllo selezionate indicano i set di backup da ripristinare.
Nome
Nome del set di backup.
Componente
Componente di cui viene eseguito il backup: Database, File o <vuoto> (nel caso dei log delle transazioni).
Database
Nome del database su cui viene eseguita l'operazione di backup.
Data inizio
Data e ora di inizio dell'operazione di backup, visualizzate in base alle impostazioni internazionali del client.
Data fine
Data e ora di fine dell'operazione di backup, visualizzate in base alle impostazioni internazionali del client.
Primo LSN
Numero di sequenza del file di log della prima transazione nel set di backup. Vuoto per i backup dei file.
Ultimo LSN
Numero di sequenza del file di log dell'ultima transazione nel set di backup. Vuoto per i backup dei file.
LSN checkpoint
Numero di sequenza del file di log del checkpoint più recente al momento della creazione del backup.
LSN completo
Numero di sequenza del file di log dell'operazione più recente di backup completo del database.
Server
Nome dell'istanza del motore di database in cui è stata eseguita l'operazione di backup.
Nome utente
Nome dell'utente che ha eseguito l'operazione di backup.
Dimensione
Dimensioni in byte del set di backup.
Posizione
Posizione del set di backup nel volume.
Scadenza
Data e ora di scadenza del set di backup.
Selezionare una delle opzioni seguenti:
Temporizzazione
Mantenere l'impostazione predefinita (Più recente) oppure selezionare una data e un'ora specifiche, facendo clic sul pulsante Sfoglia per visualizzare la finestra di dialogo Ripristino temporizzato.
Transazione contrassegnata
Consente di ripristinare il database fino a una transazione contrassegnata in precedenza. Se si seleziona questa opzione, verrà visualizzata la finestra di dialogo Seleziona transazione contrassegnata, che include una griglia in cui sono elencate le transazioni contrassegnate disponibili nei backup del log delle transazioni selezionati.
Per impostazione predefinita, il ripristino viene eseguito fino alla transazione contrassegnata esclusa. Per ripristinare anche la transazione contrassegnata, selezionare l'opzione Includi transazione contrassegnata.
Nella tabella seguente vengono elencate le intestazioni delle colonne della griglia con una descrizione dei rispettivi valori.
Intestazione
Valore
<vuota>
Consente di visualizzare una casella di controllo per selezionare il contrassegno.
Contrassegno transazione
Nome della transazione contrassegnata specificato dall'utente durante l'esecuzione del commit della transazione.
Date
Data e ora assegnate alla transazione quando ne è stato eseguito il commit. Vengono visualizzate la data e l'ora della transazione registrate nella tabella msdb gmarkhistory, non nella data e ora del computer client.
Descrizione
Eventuale descrizione della transazione contrassegnata specificata dall'utente quando è stato eseguito il commit della transazione.
LSN
Numero di sequenza del file di log (LSN) della transazione contrassegnata.
Database
Nome del database in cui è stato eseguito il commit della transazione contrassegnata.
Nome utente
Nome dell'utente database che ha eseguito il commit della transazione contrassegnata.
Per visualizzare o selezionare le opzioni avanzate, fare clic su Opzioni nel riquadro Selezione pagina.
Nella sezione Opzioni di ripristino le scelte disponibili sono:
Mantieni le impostazioni di replica (WITH KEEP_REPLICATION)
Consente di mantenere le impostazioni di replica durante il ripristino di un database pubblicato in un server diverso da quello in cui è stato creato il database.
Questa opzione è disponibile solo in combinazione con l'opzione Lascia il database pronto per l'utilizzo eseguendo il rollback delle transazioni di cui non è stato eseguito il commit... (descritta più avanti), equivalente al ripristino di un backup con l'opzione RECOVERY.
Questa opzione equivale all'utilizzo dell'opzione KEEP_REPLICATION in un'istruzione Transact-SQL RESTORE.
Chiedi conferma prima del ripristino di ogni backup
Prima di ripristinare ogni set di backup successivo al primo, questa opzione consente di visualizzare la finestra di dialogo Continua con il ripristino, in cui viene richiesta conferma della continuazione della sequenza di ripristino. In questa finestra di dialogo vengono visualizzati il nome del set di supporti successivo, se disponibile, il nome del set di backup e la descrizione del set di backup.
Questa opzione risulta particolarmente utile quando è necessario cambiare nastri per diversi set di supporti. Ad esempio, è possibile utilizzarla quando nel server è disponibile un solo dispositivo nastro. Attendere di essere pronti per procedere prima di fare clic su OK.
Se si fa clic su No, il database verrà mantenuto nello stato di ripristino in corso. Se lo si desidera, è possibile continuare la sequenza di ripristino dopo il completamento dell'ultimo ripristino. Se il backup successivo è un backup di dati o differenziale, utilizzare nuovamente l'attività Ripristina database. Se il backup successivo è un backup del log, utilizzare l'attività Ripristina log delle transazioni.
Limita accesso al database ripristinato (WITH RESTRICTED_USER)
Consente di rendere disponibile il database ripristinato solo ai membri di db_owner, dbcreator o sysadmin.
Questa opzione equivale all'utilizzo dell'opzione RESTRICTED_USER in un'istruzione Transact-SQL RESTORE.
Nel gruppo di opzioni Stato di recupero specificare lo stato desiderato per il database dopo l'operazione di ripristino.
Lascia il database pronto per l'utilizzo eseguendo il rollback delle transazioni di cui non è stato eseguito il commit. I log delle transazioni aggiuntivi non possono essere ripristinati. (RESTORE WITH RECOVERY)
Esegue il recupero del database. Questa opzione equivale all'utilizzo dell'opzione RECOVERY in un'istruzione Transact-SQL RESTORE.
Selezionare questa opzione solo se non sono disponibili file di log da ripristinare.
Lascia il database non operativo e non eseguire il rollback delle transazioni di cui non è stato eseguito il commit. I log delle transazioni aggiuntivi possono essere ripristinati. (RESTORE WITH NORECOVERY)
Il database viene lasciato nello stato RESTORING. Questa opzione equivale all'utilizzo dell'opzione NORECOVERY in un'istruzione Transact-SQL RESTORE.
Quando si seleziona questa opzione, l'opzione Mantieni le impostazioni di replica non è disponibile.
Importante Nel caso di un database mirror o secondario, selezionare sempre questa opzione.
Lascia il database in modalità sola lettura. Annulla le transazioni di cui non è stato eseguito il commit e salva le azioni di rollback in un file standby in modo che gli effetti del recupero possano essere annullati. (RESTORE WITH STANDBY)
Il database viene lasciato nello stato di standby. Questa opzione equivale all'utilizzo dell'opzione STANDBY in un'istruzione Transact-SQL RESTORE.
Se si seleziona questa opzione è necessario specificare un file standby.
Facoltativamente, specificare un nome per il file standby nella casella di testo File standby. Questa opzione è necessaria se il database viene lasciato in modalità sola lettura. È possibile cercare il file standby per selezionarlo oppure digitarne direttamente il percorso nella casella di testo.
[Inizio pagina]
Utilizzo di Transact-SQL
Importante |
---|
È consigliabile specificare sempre in modo esplicito WITH NORECOVERY oppure WITH RECOVERY in ogni istruzione RESTORE per evitare ambiguità. Questa precauzione è particolarmente importante durante la scrittura di script. |
Per ripristinare un backup del log delle transazioni
Eseguire l'istruzione RESTORE LOG per applicare il backup del log delle transazioni specificando:
Il nome del database a cui verrà applicato il log delle transazioni.
Il dispositivo di backup da cui verrà ripristinato il backup del log delle transazioni.
La clausola NORECOVERY.
La sintassi di base per questa istruzione è la seguente:
RESTORE LOG database_name FROM <dispositivo_backup> WITH NORECOVERY.
Dove database_name è il nome del database e <dispositivo_backup>è il nome del dispositivo che contiene il backup del log in fase di ripristino.
Ripetere il passaggio 1 per ogni backup del log delle transazioni che si desidera applicare.
Dopo aver ripristinato l'ultimo backup della sequenza di ripristino, per recuperare il database utilizzare una delle istruzioni seguenti:
Recuperare il database nell'ambito dell'ultima istruzione RESTORE LOG:
RESTORE LOG <database_name> FROM <backup_device> WITH RECOVERY; GO
Posticipare il recupero del database utilizzando un'istruzione RESTORE DATABASE separata:
RESTORE LOG <database_name> FROM <backup_device> WITH NORECOVERY; RESTORE DATABASE <database_name> WITH RECOVERY; GO
Il posticipo del recupero del database consente di verificare di avere ripristinato tutti i backup del log necessari. Questo approccio è spesso consigliato quando si esegue un ripristino temporizzato.
Importante Se si sta creando un database mirror, omettere il passaggio di recupero. Un database mirror deve rimanere nello stato RESTORING.
Esempi (Transact-SQL)
Per impostazione predefinita, il database AdventureWorks2012 utilizza il modello di recupero con registrazione minima. Per gli esempi seguenti è necessario modificare questo database in modo da utilizzare il modello di recupero con registrazione completa, come illustrato di seguito:
ALTER DATABASE AdventureWorks2012 SET RECOVERY FULL;
A.Applicazione di un singolo backup del log delle transazioni
Nell'esempio seguente viene innanzitutto ripristinato il database AdventureWorks2012 da un backup completo del database che risiede in un dispositivo di backup denominato AdventureWorks2012_1. Viene quindi applicato il primo backup del log delle transazioni che risiede nel dispositivo di backup denominato AdventureWorks2012_log e infine viene recuperato il database.
RESTORE DATABASE AdventureWorks2012
FROM AdventureWorks2012_1
WITH NORECOVERY;
GO
RESTORE LOG AdventureWorks2012
FROM AdventureWorks2012_log
WITH FILE = 1,
WITH NORECOVERY;
GO
RESTORE DATABASE AdventureWorks2012
WITH RECOVERY;
GO
B.Applicazione di più backup del log delle transazioni
Nell'esempio seguente viene innanzitutto ripristinato il database AdventureWorks2012 da un backup completo del database che risiede in un dispositivo di backup denominato AdventureWorks2012_1. Vengono quindi applicati in successione i primi tre backup del log delle transazioni che risiedono in uno dispositivo di backup denominato AdventureWorks2012_log e infine viene recuperato il database.
RESTORE DATABASE AdventureWorks2012
FROM AdventureWorks2012_1
WITH NORECOVERY;
GO
RESTORE LOG AdventureWorks2012
FROM AdventureWorks2012_log
WITH FILE = 1,
NORECOVERY;
GO
RESTORE LOG AdventureWorks2012
FROM AdventureWorks2012_log
WITH FILE = 2,
WITH NORECOVERY;
GO
RESTORE LOG AdventureWorks2012
FROM AdventureWorks2012_log
WITH FILE = 3,
WITH NORECOVERY;
GO
RESTORE DATABASE AdventureWorks2012
WITH RECOVERY;
GO
[Inizio pagina]
Attività correlate
Ripristino di un backup del database (SQL Server Management Studio)
Ripristino di un database fino a una transazione contrassegnata (SQL Server Management Studio)
[Inizio pagina]
Vedere anche
Riferimento
Concetti
Applicazione dei backup di log delle transazioni (SQL Server)