Come Ripristinare Più Database in SQL Server (3 Metodi)

Come ripristinare più database in SQL Server contemporaneamente? Normalmente puoi utilizzare uno script T-SQL efficiente, o provare un potente software con meno restrizioni.

Amelia

Di Amelia / L'Ultimo Aggiornamento 08.02.2025

Condividi questo: instagram reddit

Puoi ripristinare più database SQL contemporaneamente?

È spiacevole che l"interfaccia grafica di SSMS supporti solo il ripristino di un database alla volta. Se hai effettuato il backup di più database in file .bak separati, è possibile ripristinarli tutti in un"unica operazione?

La risposta è SÌ. In generale, è possibile utilizzare uno script T-SQL valido per ripristinare più database contemporaneamente, a patto che i file di backup siano denominati esattamente come i database corrispondenti e non contengano altre informazioni come data/ora.

Se desideri effettuare un ripristino in modo più flessibile, c"è anche un"alternativa facile tramite interfaccia grafica. Scegli il metodo che preferisci.

sql server

Prerequisiti per il ripristino di più database in SQL Server

Il ripristino di più database in SQL Server può essere un processo complesso. Per ridurre al minimo il tempo di inattività, è necessario soddisfare alcuni prerequisiti prima di iniziare:

  • Avere privilegi amministrativi e accesso ai file di backup.
  • Deve esserci un solo backup del database per ogni file di backup.
  • Il file di backup del database può contenere solo due file: file di log e file di dati.
  • Siccome utilizziamo il nome del database per denominare i file fisici sul disco, i caratteri ammessi per i nomi dei file fisici nel nuovo database da ripristinare devono essere consentiti.

Metodo 1. Ripristino di più database da file bak tramite xp_cmdshell

Puoi utilizzare uno script per ripristinare più database in SQL Server da una cartella. Ma prima di farlo, connettiti all"istanza e abilita xp_cmdshell.

1. Fai clic su Nuova query e immetti il seguente comando:

-- Per consentire la modifica delle opzioni avanzate.
EXEC sp_configure "show advanced options", 1;

GO
-- Per aggiornare il valore correntemente configurato per le opzioni avanzate.
RECONFIGURE;
GO
-- Per abilitare la funzionalità.
EXEC sp_configure "xp_cmdshell", 1;
GO
-- Per aggiornare il valore correntemente configurato per questa funzionalità.
RECONFIGURE;
GO

Esegui la query e la funzionalità verrà abilitata.

abilita xp cmdshell

2. Successivamente, è possibile ripristinare più database di SQL Server utilizzando lo script (sostituire "D:\backup\" con la propria cartella contenente tutti i file di backup):

DECLARE @FilesCmdshell TABLE (
outputCmd NVARCHAR (255)
)
DECLARE @FilesCmdshellCursor CURSOR
DECLARE @FilesCmdshellOutputCmd AS NVARCHAR(255)

INSERT INTO @FilesCmdshell (outputCmd) EXEC master.sys.xp_cmdshell "dir /B D:\backup\*.bak"
SET @FilesCmdshellCursor = CURSOR FOR SELECT outputCmd FROM @FilesCmdshell

OPEN @FilesCmdshellCursor
FETCH NEXT FROM @FilesCmdshellCursor INTO @FilesCmdshellOutputCmd
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @cmd NVARCHAR(MAX) = "RESTORE DATABASE [" SUBSTRING(@FilesCmdshellOutputCmd, 0, CHARINDEX(".", @FilesCmdshellOutputCmd)) "] FROM DISK = N"'D:\backup\" SUBSTRING(@FilesCmdshellOutputCmd, 0, CHARINDEX(".", @FilesCmdshellOutputCmd)) ".bak"' WITH FILE = 1, NOUNLOAD, STATS = 10"
EXEC(@cmd)

FETCH NEXT FROM @FilesCmdshellCursor INTO @FilesCmdshellOutputCmd
END

ripristina database multipli

✎Nota: Se si riceve un errore "La coda del log per il database non è stato eseguito il backup. Utilizza BACKUP LOG CON NORECOVERY per eseguire il backup del log se contiene le operazioni che non vuoi perdere. Utilizzare la clausola WITH REPLACE o WITH STOPAT dello statement di RESTORE per sovrascrivere solo i contenuti del log", la soluzione è esattamente come indicato.

Per esempio, è possibile modificare il comando di ripristino in "…WITH FILE = 1, REPLACE, NOUNLOAD, STATS = 10"

.

Modo 2. Generare uno script per ripristinare tutti i database in SQL Server

In alternativa, è possibile utilizzare uno script per generare comandi di ripristino per tutti i database in SQL Server e combinarli in un nuovo script da eseguire.

1. Fare clic su Nuova Query e inserire i seguenti comandi nella finestra SQLQuery:

DECLARE @folderpath VARCHAR (1000)
SELECT @folderpath = "D:\Backup\" -- Posizione del backup
SELECT "RESTORE DATABASE[" NAME "] FROM DISK = "'" @folderpath name ".bak"' WITH NORECOVERY,
REPLACE, STATS = 5"
FROM master.sys.databases
WHERE name NOT IN ("master","model","msdb","tempdb","distribution")

Questo genererà una serie di comandi per ripristinare più database in SQL Server da file bak con nomi corrispondenti.

2. Fare clic con il pulsante destro del mouse su un qualsiasi comando in Risultati, scegliere Seleziona tutto e quindi Copia (o utilizzare Ctrl A e Ctrl C).

generare comandi

3. Incollare questi comandi nella finestra SQLQuery come nuovo script da Eseguire. Ripristinerà tutti i database di SQL Server dai file bak con i nomi corrispondenti.

ripristinare tutti i database

Modo 3. Backup e ripristino di più database SQL tramite GUI (il più semplice)

Gli script precedenti sono applicabili solo quando i file bak sono denominati esattamente come i database SQL, il che è piuttosto restrittivo nella pratica. Pertanto, desidero fornire un modo più conveniente per eseguire il backup e il ripristino di più database, o addirittura dell"intera istanza.

AOMEI Cyber Backup è una soluzione affidabile di gestione centralizzata per il backup e il ripristino di database SQL su tutti i desktop, laptop e server all"interno della LAN.

Funziona su Windows 11/10/8.1/8/7, Windows Server 2022/2019/2016/2012 (R2)/2008 (R2), e supporta il backup di SQL Server 2005 fino al 2022. Oltre al database SQL, supporta anche il backup delle macchine virtuali di Hyper-V e VMware.

Scarica la versione di prova gratuitaMicrosoft SQL Server 2005-2022
Backup centralizzato e sicuro di SQL
  • Esegui il file .exe scaricato per installare AOMEI Cyber Backup e avvia la sua interfaccia principale. Fai clic su Dispositivo Sorgente -> Microsoft SQL -> Aggiungi Microsoft SQL.

Microsoft SQL

  • Scegli Programma proxy di download o Copia link per scaricare il programma Agentee installalo sul dispositivo con SQL Server installato. Successivamente, passa a Proxy già installato per selezionare il dispositivo.
  • Successivamente, fai clic su icon -> Autenticazione per convalidare l"istanza del database. Puoi scegliere Autenticazione Windows o Autenticazione SQL.

Aggiungi Dispositivo

Ecco fatto, ora puoi pianificare il backup dei dati per il server SQL aggiunto.

Come eseguire il backup di più database in SQL Server:

1. Fai clic su Attività di Backup -> Crea Nuova Attività, e scegli il Tipo di Backup come Backup Microsoft SQL.

Tipo di backup

2. Clicca su Nome dispositivo per specificare l"istanza SQL e i database da backup. Puoi selezionare uno o più database a tua scelta.

Seleziona Database

3. Seleziona un storage Destinazione per salvare i tuoi backup SQL. Puoi specificare un percorso locale o di rete.

Scegli Destinazione

4. Configura la Pianificazione per eseguire il backup del database SQL ogni giorno, settimana o mese e scegli il metodo di backup come Backup Completo, Incrementale o Differenziale.

Pianificazione Backup

Clicca su Avvia Backup per creare ed eseguire il task. Una volta terminato, lo troverai nella scheda Task di Backup.

✍Altre funzionalità utili:

  • Pulizia Backup ti aiuta a eliminare automaticamente le vecchie versioni di backup e risparmiare spazio di archiviazione.
  • Notifiche via Email ti permette di ricevere notifiche via email in caso di anomalie o successo del task.
  • Archivio ti aiuta a archiviare i file di backup su un storage AWS S3.

Come ripristinare più database da un backup:

1. Clicca su Task di Backup nella barra di navigazione a sinistra, individua il task che desideri ripristinare, e clicca su icona -> Ripristina.

Ripristino

2. Seleziona una versione di backup da cui desideri ripristinare i database SQL.

Seleziona Contenuto

3. Successivamente, seleziona la posizione di destinazione in cui desideri ripristinare. Ci sono 2 opzioni:

  • Ripristino nella posizione originale (impostazione predefinita): recupero sul posto che può riportare i database SQL a una versione precedente.
  • Ripristino in una posizione nuova: seleziona un"altra destinazione per eseguire il ripristino dello spazio. Puoi specificare il nome del nuovo database e modificare la posizione di archiviazione.

Ripristino nella Posizione Originale

Sovrascrivi il database con lo stesso nome: Selezionando questa opzione, i database di backup sovrascriveranno i database obiettivo con gli stessi nomi. Se lasci la casella deselezionata, i database obiettivo con gli stessi nomi verranno omessi durante il ripristino.

4. Dopo aver configurato tutte le impostazioni, fai clic su Inizia Ripristino per avviare il processo di ripristino e attendi pazientemente il completamento. Puoi cliccare sul pulsante icon per visualizzare i dettagli del ripristino o annullarlo.

Avvia Ripristino

✍Note:

  • "Ripristina nella posizione originale" deve confermare che la posizione originale esista. Altrimenti, puoi selezionare solo "Ripristina in una nuova posizione".
  • "Ripristina nella posizione originale" sovrascriverà o cancellerà i dati originali del database, se il database originale contiene dati importanti, è consigliabile scegliere "Ripristina in una nuova posizione".

Conclusioni

L"interfaccia grafica di ripristino di SSMS consente di ripristinare solo un database alla volta. Se si desidera ripristinare più database contemporaneamente in SQL Server, l"approccio più comune è utilizzare uno script T-SQL. Tuttavia, ci sono restrizioni severe sui nomi dei file di backup e diventa complicato eseguire operazioni come il ripristino dei database in un"altra istanza. Pertanto, è possibile provare anche il software di backup SQL - AOMEI Cyber Backup.

Rende l"operazione molto più facile. Ad esempio, è possibile eseguire il backup automatico dei database SQL con pochi semplici clic e ripristinare contemporaneamente più database tramite un"operazione altrettanto semplice.

Amelia
Amelia · Editore
Amelia è una redattrice di AOMEI. Esperta in sistemi professionali, è specializzata nella risoluzione di problemi relativi a database aziendali, macchine virtuali e ambienti fisici. Con un forte senso di responsabilità, si dedica alla protezione dei dati aziendali e alla sicurezza.