Backup e ripristino di database SQL Server in Linux

Si applica a: SQL Server - Linux

È possibile eseguire il backup dei database da SQL Server in Linux con molte opzioni diverse. In un server Linux, per connettersi a SQL Server ed eseguire backup è possibile usare sqlcmd. Da Windows è possibile connettersi a SQL Server in Linux ed eseguire backup tramite l'interfaccia utente. La funzionalità di backup è identica in tutte le piattaforme. È ad esempio possibile eseguire il backup di database in locale, in unità remote o nel backup di SQL Server su URL per Microsoft Azure Blob Storage.

Importante

SQL Server in Linux supporta solo il backup nell'archiviazione BLOB di Azure usando BLOB in blocchi. L'uso di una chiave di archiviazione per il backup e il ripristino comporterà l'uso di un BLOB di pagine, che non è supportato. Usare una firma di accesso condiviso in alternativa. Per informazioni sulle differenze tra i BLOB in blocchi e i BLOB di pagine, vedere Confronto tra BLOB in blocchi e BLOB di pagine.

Eseguire il backup di un database

Nell'esempio seguente, sqlcmd si connette all'istanza di SQL Server locale ed esegue un backup completo di un database utente denominato demodb.

sqlcmd -S localhost -U SA -Q "BACKUP DATABASE [demodb] TO DISK = N'/var/opt/mssql/data/demodb.bak' WITH NOFORMAT, NOINIT, NAME = 'demodb-full', SKIP, NOREWIND, NOUNLOAD, STATS = 10"

Quando si esegue il comando, SQL Server richiede una password. Dopo l'immissione della password, la shell restituisce i risultati dello stato del backup. Ad esempio:

Password:
10 percent processed.
21 percent processed.
32 percent processed.
40 percent processed.
51 percent processed.
61 percent processed.
72 percent processed.
80 percent processed.
91 percent processed.
Processed 296 pages for database 'demodb', file 'demodb' on file 1.
100 percent processed.
Processed 2 pages for database 'demodb', file 'demodb_log' on file 1.
BACKUP DATABASE successfully processed 298 pages in 0.064 seconds (36.376 MB/sec).

Eseguire il backup del log delle transazioni

Se il database è nel modello di recupero con registrazione completa, è anche possibile creare backup del log delle transazioni per avere opzioni di ripristino più granulari. Nell'esempio seguente, sqlcmd si connette all'istanza di SQL Server locale ed esegue il backup del log delle transazioni.

sqlcmd -S localhost -U SA -Q "BACKUP LOG [demodb] TO DISK = N'/var/opt/mssql/data/demodb_LogBackup.bak' WITH NOFORMAT, NOINIT, NAME = N'demodb_LogBackup', NOSKIP, NOREWIND, NOUNLOAD, STATS = 5"

Ripristinare un database

Nell'esempio seguente, sqlcmd si connette all'istanza locale di SQL Server e ripristina il database demodb. Viene usata l'opzione NORECOVERY per consentire operazioni di ripristino aggiuntive di backup dei file di log. Se non si prevede di ripristinare ulteriori file di log, rimuovere l'opzione NORECOVERY.

sqlcmd -S localhost -U SA -Q "RESTORE DATABASE [demodb] FROM DISK = N'/var/opt/mssql/data/demodb.bak' WITH FILE = 1, NOUNLOAD, REPLACE, NORECOVERY, STATS = 5"

Suggerimento

Se si usa accidentalmente NORECOVERY senza avere il backup di altri file di log, eseguire il comando RESTORE DATABASE demodb senza parametri aggiuntivi. Questa operazione termina il ripristino e lascia operativo il database.

Ripristinare il log delle transazioni

Il comando seguente ripristina il backup del log delle transazioni precedente.

sqlcmd -S localhost -U SA -Q "RESTORE LOG demodb FROM DISK = N'/var/opt/mssql/data/demodb_LogBackup.bak'"

Backup e ripristino con SQL Server Management Studio (SSMS)

È possibile usare SSMS da un computer Windows per connettersi a un database Linux ed eseguirne il backup tramite l'interfaccia utente.

Nota

Per connettersi a SQL Server, usare la versione di SSMS più recente. Per scaricare e installare la versione più recente, vedere Scaricare SQL Server Management Studio (SSMS). Per ulteriori informazioni sull'uso di SSMS, vedere Usare SQL Server Management Studio in Windows per gestire SQL Server in Linux.

La procedura seguente illustra in dettaglio l'esecuzione di un backup con SSMS.

  1. Avviare SSMS e connettersi all'istanza di SQL Server in Linux.

  2. In Esplora oggetti, fare clic con il pulsante destro del mouse sul database, selezionare Attività e quindi Backup....

  3. Nella finestra di dialogo Backup database verificare i parametri e le opzioni e selezionare OK.

SQL Server completerà il backup del database.

Eseguire il ripristino con SQL Server Management Studio (SSMS)

La procedura seguente illustra in dettaglio il ripristino di un database con SSMS.

  1. In SSMS fare clic con il pulsante destro del mouse su Database e scegliere Ripristina database...

  2. In Origine selezionare Dispositivo: e quindi i puntini di sospensione (...).

  3. Individuare il file di backup del database e selezionare OK.

  4. In Piano di ripristino verificare il file e le impostazioni del backup. Seleziona OK.

  5. SQL Server ripristina il database.

Contribuire alla documentazione di SQL

Il contenuto SQL può essere modificato. L'autore delle modifiche contribuirà a migliorare la documentazione e verrà accreditato come collaboratore alla realizzazione della pagina.

Per maggiori informazioni, vedere Come contribuire alla documentazione di SQL Server