Eseguire la migrazione di un database di SQL Server da Windows per Linux tramite backup e ripristinoMigrate a SQL Server database from Windows to Linux using backup and restore

QUESTO ARGOMENTO SI APPLICA A: noSQL Server su WindowssìSQL Server su LinuxnoDatabase SQL di AzurenoAzure SQL Data WarehousenoParallel Data Warehouse THIS TOPIC APPLIES TO: noSQL Server on WindowsyesSQL Server on LinuxnoAzure SQL DatabasenoAzure SQL Data WarehousenoParallel Data Warehouse

SQL Server di backup e ripristino è il modo consigliato per la migrazione di un database da SQL Server in Windows a 2017 di SQL Server in Linux.SQL Server's backup and restore feature is the recommended way to migrate a database from SQL Server on Windows to SQL Server 2017 on Linux. In questa esercitazione verrà illustrata i passaggi necessari per spostare un database in Linux con backup e ripristino tecniche.In this tutorial, you will walk through the steps required to move a database to Linux with backup and restore techniques.

  • Creare un file di backup in Windows con SQL Server Management StudioCreate a backup file on Windows with SSMS
  • Installare una shell Bash in WindowsInstall a Bash shell on Windows
  • Spostare il file di backup per Linux da della shell BashMove the backup file to Linux from the Bash shell
  • Ripristinare il file di backup in Linux con Transact-SQLRestore the backup file on Linux with Transact-SQL
  • Eseguire una query per verificare la migrazioneRun a query to verify the migration

PrerequisitiPrerequisites

Per completare questa esercitazione, sono necessari i seguenti prerequisiti:The following prerequisites are required to complete this tutorial:

  • Computer Windows con le operazioni seguenti:Windows machine with the following:

  • Computer Linux con installati i componenti seguenti:Linux machine with the following installed:

    • SQL Server 2017 (RHEL, SLES, o Ubuntu) con gli strumenti da riga di comando.SQL Server 2017 (RHEL, SLES, or Ubuntu) with command-line tools.

Creare un backup in WindowsCreate a backup on Windows

Esistono diversi modi per creare un file di backup di un database in Windows.There are several ways to create a backup file of a database on Windows. La procedura seguente utilizza SQL Server Management Studio (SSMS).The following steps use SQL Server Management Studio (SSMS).

  1. Avviare SQL Server Management Studio sul proprio computer Windows.Start SQL Server Management Studio on your Windows machine.

  2. Nella finestra di dialogo connessione immettere localhost.In the connection dialog, enter localhost.

  3. In Esplora oggetti espandere database.In Object Explorer, expand Databases.

  4. Il pulsante destro del database di destinazione, selezionare attività, quindi fare clic su eseguire il backup... .Right-click your target database, select Tasks, and then click Back Up....

    Utilizzare SQL Server Management Studio per creare un file di backup

  5. Nel Backup dei Database finestra di dialogo, verificare che tipo Backup è completo e backup su è disco.In the Backup Up Database dialog, verify that Backup type is Full and Back up to is Disk. Annotare nome e percorso del file.Note name and location of the file. Ad esempio, un database denominato YourDB in SQL Server 2016 è un percorso di backup predefinito di C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\YourDB.bak.For example, a database named YourDB on SQL Server 2016 has a default backup path of C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\YourDB.bak.

  6. Fare clic su OK per eseguire il backup del database.Click OK to back up your database.

Nota

Un'altra opzione consiste nell'eseguire una query Transact-SQL per creare il file di backup.Another option is to run a Transact-SQL query to create the backup file. Il comando Transact-SQL seguente esegue le stesse azioni i passaggi precedenti per un database denominato YourDB:The following Transact-SQL command performs the same actions as the previous steps for a database called YourDB:

BACKUP DATABASE [YourDB] TO  DISK =
N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\YourDB.bak'
WITH NOFORMAT, NOINIT, NAME = N'YourDB-Full Database Backup',
SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO

Installare una shell Bash in WindowsInstall a Bash shell on Windows

Per ripristinare il database, è necessario trasferire il file di backup da computer Windows per computer Linux di destinazione.To restore the database, you must first transfer the backup file from the Windows machine to the target Linux machine. In questa esercitazione è spostare il file di Linux da una shell Bash (finestra terminale) in esecuzione su Windows.In this tutorial, we move the file to Linux from a Bash shell (terminal window) running on Windows.

  1. Installare una shell Bash nel computer Windows che supporta il scp (protetto copia) e ssh comandi (account di accesso remoto).Install a Bash shell on your Windows machine that supports the scp (secure copy) and ssh (remote login) commands. Due esempi:Two examples include:

  2. Aprire una sessione Bash in Windows.Open a Bash session on Windows.

Copiare il file di backup in Linux Copy the backup file to Linux

  1. Nella sessione Bash, passare alla directory contenente il file di backup.In your Bash session, navigate to the directory containing your backup file. Esempio:For example:

    cd 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\'
    
  2. Utilizzare il scp comando per trasferire il file in computer Linux di destinazione.Use the scp command to transfer the file to the target Linux machine. I trasferimenti di esempio seguenti YourDB.bak della home directory di user1 sul server Linux con un indirizzo IP di 192.0.2.9:The following example transfers YourDB.bak to the home directory of user1 on the Linux server with an IP address of 192.0.2.9:

    scp YourDB.bak user1@192.0.2.9:./
    

    comando SCP

Suggerimento

Sono disponibili alternative all'utilizzo di scp per il trasferimento di file.There are alternatives to using scp for file transfer. Uno consiste nell'utilizzare Samba per configurare una condivisione di rete SMB tra Windows e Linux.One is to use Samba to configure an SMB network share between Windows and Linux. Per una procedura dettagliata in Ubuntu, vedere come creare una condivisione di rete tramite Samba.For a walkthrough on Ubuntu, see How to Create a Network Share Via Samba. Una volta stabilita, è possibile accedere come un file di rete condivisione da Windows, ad esempio \ \machinenameorip\condividere.Once established, you can access it as a network file share from Windows, such as \\machinenameorip\share.

Spostare il file di backup prima del ripristinoMove the backup file before restoring

A questo punto, il file di backup è nel server Linux nella home directory dell'utente.At this point, the backup file is on your Linux server in your user's home directory. Prima di ripristinare il database a SQL Server, è necessario inserire il backup in una sottodirectory di /var/opt/mssql.Before restoring the database to SQL Server, you must place the backup in a subdirectory of /var/opt/mssql.

  1. Nella stessa sessione di Windows Bash, connettersi in remoto al computer Linux di destinazione con ssh.In the same Windows Bash session, connect remotely to your target Linux machine with ssh. Nell'esempio seguente si connette al computer Linux 192.0.2.9 come utente user1.The following example connects to the Linux machine 192.0.2.9 as user user1.

    ssh user1@192.0.2.9
    

    Si stanno eseguendo i comandi nel server remoto di Linux.You are now running commands on the remote Linux server.

  2. Passare alla modalità utente con privilegi avanzati.Enter super user mode.

    sudo su
    
  3. Creare una nuova directory di backup.Create a new backup directory. Il parametro -p non esegue alcuna operazione se la directory esiste già.The -p parameter does nothing if the directory already exists.

    mkdir -p /var/opt/mssql/backup
    
  4. Spostare il file di backup in tale directory.Move the backup file to that directory. Nell'esempio seguente, il file di backup si trova nella home directory di user1.In the following example, the backup file resides in the home directory of user1. Modificare il comando in modo che corrisponda il percorso e il nome del file di backup.Change the command to match the location and file name of your backup file.

    mv /home/user1/YourDB.bak /var/opt/mssql/backup/
    
  5. Uscire dalla modalità utente con privilegi avanzati.Exit super user mode.

    exit
    

Ripristinare il database su LinuxRestore your database on Linux

Per ripristinare il backup del database, è possibile utilizzare il RESTORE DATABASE comando Transact-SQL (TQL).To restore the database backup, you can use the RESTORE DATABASE Transact-SQL (TQL) command.

Nota

I seguenti passaggi viene utilizzata la sqlcmd strumento.The following steps use the sqlcmd tool. Se non è ancora stato installare gli strumenti di SQL Server, vedere strumenti da riga di comando di installazione di SQL Server in Linux.If you haven’t install SQL Server Tools, see Install SQL Server command-line tools on Linux.

  1. In terminal stesso, avviare sqlcmd.In the same terminal, launch sqlcmd. Nell'esempio seguente si connette all'istanza locale di SQL Server con il SA utente.The following example connects to the local SQL Server instance with the SA user. Immettere la password quando richiesto, oppure specificare la password tramite l'aggiunta di -P parametro.Enter the password when prompted, or specify the password by adding the -P parameter.

    sqlcmd -S localhost -U SA
    
  2. Nel >1 richiesto, immettere quanto segue RESTORE DATABASE comando, premere INVIO dopo ogni riga (è possibile copiare e incollare l'intero comando su più righe in una sola volta).At the >1 prompt, enter the following RESTORE DATABASE command, pressing ENTER after each line (you cannot copy and paste the entire multi-line command at once). Sostituire tutte le occorrenze di YourDB con il nome del database.Replace all occurrences of YourDB with the name of your database.

    RESTORE DATABASE YourDB
    FROM DISK = '/var/opt/mssql/backup/YourDB.bak'
    WITH MOVE 'YourDB' TO '/var/opt/mssql/data/YourDB.mdf',
    MOVE 'YourDB_Log' TO '/var/opt/mssql/data/YourDB_Log.ldf'
    GO
    

    È necessario ottenere un messaggio che è stato ripristinato il database.You should get a message the database is successfully restored.

  3. Verificare il ripristino, elencando tutti i database nel server.Verify the restoration by listing all of the databases on the server. Il database ripristinato deve essere elencato.The restored database should be listed.

    SELECT Name FROM sys.Databases
    GO
    
  4. Eseguire altre query sul database migrato.Run other queries on your migrated database. Il comando seguente cambia il contesto per il YourDB seleziona le righe da una delle relative tabelle e database.The following command switches context to the YourDB database and selects rows from one of its tables.

    USE YourDB
    SELECT * FROM YourTable
    GO
    
  5. Al termine usando sqlcmd, tipo exit.When you are done using sqlcmd, type exit.

  6. Al termine lavorare in remoto ssh sessione, digitare exit nuovamente.When you are done working in the remote ssh session, type exit again.

Passaggi successiviNext steps

In questa esercitazione è stato descritto come eseguire il backup di un database in Windows e spostarlo in un server Linux in esecuzione SQL Server 2017.In this tutorial, you learned how to back up a database on Windows and move it to a Linux server running SQL Server 2017. Si è appreso per:You learned how to:

  • Utilizzare SQL Server Management Studio e Transact-SQL per creare un file di backup in WindowsUse SSMS and Transact-SQL to create a backup file on Windows
  • Installare una shell Bash in WindowsInstall a Bash shell on Windows
  • Utilizzare scp per spostare i file di backup da Windows per LinuxUse scp to move backup files from Windows to Linux
  • Utilizzare ssh connettersi in remoto ai computer LinuxUse ssh to remotely connect to your Linux machine
  • Spostare il file di backup di preparazione del ripristinoRelocate the backup file to prepare for restore
  • Utilizzare sqlcmd per eseguire i comandi Transact-SQLUse sqlcmd to run Transact-SQL commands
  • Ripristinare il backup di database con il RESTORE DATABASE comandoRestore the database backup with the RESTORE DATABASE command

Successivamente, è possibile esplorare altri scenari di migrazione per SQL Server in Linux.Next, explore other migration scenarios for SQL Server on Linux.