Backup e ripristino di database SQL Server in LinuxBackup and restore SQL Server databases on Linux

SI APPLICA A: sìSQL Server (solo Linux) noDatabase SQL di Azure noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse APPLIES TO: yesSQL Server (Linux only) noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

È possibile eseguire il backup dei database da SQL Server 2017 in Linux con molte opzioni diverse.You can take backups of databases from SQL Server 2017 on Linux with many different options. In un server Linux, per connettersi a SQL Server ed eseguire backup è possibile usare sqlcmd.On a Linux server, you can use sqlcmd to connect to the SQL Server and take backups. Da Windows è possibile connettersi a SQL Server in Linux ed eseguire backup tramite l'interfaccia utente.From Windows, you can connect to SQL Server on Linux and take backups with the user interface. La funzionalità di backup è identica in tutte le piattaforme.The backup functionality is the same across platforms. È ad esempio possibile eseguire il backup di database in locale, in unità remote o nel servizio di archiviazione BLOB di Microsoft Azure.For example, you can backup databases locally, to remote drives, or to Microsoft Azure Blob storage service.

Eseguire il backup di un databaseBackup a database

Nell'esempio seguente, sqlcmd si connette all'istanza di SQL Server locale ed esegue un backup completo di un database utente denominato demodb.In the following example sqlcmd connects to the local SQL Server instance and takes a full backup of a user database called 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.When you run the command, SQL Server will prompt for a password. Dopo l'immissione della password, la shell restituisce i risultati dello stato del backup.After you enter the password, the shell will return the results of the backup progress. Esempio:For example:

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 transazioniBackup the transaction log

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.If your database is in the full recovery model, you can also make transaction log backups for more granular restore options. Nell'esempio seguente, sqlcmd si connette all'istanza di SQL Server locale ed esegue il backup del log delle transazioni.In the following example, sqlcmd connects to the local SQL Server instance and takes a transaction log backup.

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 databaseRestore a database

Nell'esempio seguente, sqlcmd si connette all'istanza locale di SQL Server e ripristina il database demodb.In the following example sqlcmd connects to the local instance of SQL Server and restores the demodb database. Si noti che viene usata l'opzione NORECOVERY per consentire operazioni di ripristino aggiuntive di backup dei file di log.Note that the NORECOVERY option is used to allow for additional restores of log file backups. Se non si prevede di ripristinare altri file di log, rimuovere l'opzione NORECOVERY.If you do not plan to restore additional log files, remove the NORECOVERY option.

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.If you accidentally use NORECOVERY but do not have additional log file backups, run the command RESTORE DATABASE demodb with no additional parameters. Questa operazione termina il ripristino e lascia operativo il database.This finishes the restore and leaves your database operational.

Ripristinare il log delle transazioniRestore the transaction log

Il comando seguente ripristina il backup del log delle transazioni precedente.The following command restores the previous transaction log backup.

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)Backup and Restore with 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.You can use SSMS from a Windows computer to connect to a Linux database and take a backup through the user-interface.

Nota

Per connettersi a SQL Server, usare la versione di SSMS più recente.Use the latest version of SSMS to connect to SQL Server. Per scaricare e installare la versione più recente, vedere Scaricare SSMS.To download and install the latest version, see Download SSMS. Per altre informazioni sull'uso di SSMS, vedere Usare SSMS per gestire SQL Server in Linux.For more information on how to use SSMS, see Use SSMS to Manage SQL Server on Linux.

La procedura seguente illustra in dettaglio l'esecuzione di un backup con SSMS.The following steps walk through taking a backup with SSMS.

  1. Avviare SSMS e connettersi al server in SQL Server 2017 in Linux.Start SSMS and connect to your server in SQL Server 2017 on Linux.

  2. In Esplora oggetti, fare clic con il pulsante destro del mouse sul database, fare clic su Attività e quindi su Backup... .In Object Explorer, right-click on your database, Click Tasks, and then click Back Up....

  3. Nella finestra di dialogo Backup database verificare i parametri e le opzioni e fare clic su OK.In the Backup Up Database dialog, verify the parameters and options, and click OK.

SQL Server completerà il backup del database.SQL Server completes the database backup.

Eseguire il ripristino con SQL Server Management Studio (SSMS)Restore with SQL Server Management Studio (SSMS)

La procedura seguente illustra in dettaglio il ripristino di un database con SSMS.The following steps walk you through restoring a database with SSMS.

  1. In SSMS fare clic con il pulsante destro del mouse su Database e fare clic su Ripristina database.. .In SSMS right-click Databases and click Restore Databases....

  2. In Origine fare clic su Dispositivo: e quindi fare clic sui puntini (...).Under Source click Device: and then click the ellipses (...).

  3. Individuare il file di backup del database e fare clic su OK.Locate your database backup file and click OK.

  4. In Piano di ripristino verificare il file e le impostazioni del backup.Under Restore plan, verify the backup file and settings. Fare clic su OK.Click OK.

  5. SQL Server ripristina il database.SQL Server restores the database.

Vedere ancheSee also