Condividi tramite


Ripristinare un database di SQL Server in un contenitore Linux.

Si applica a: SQL Server - Linux

Questa esercitazione illustra come spostare e ripristinare un file di backup di SQL Server in un'immagine del contenitore di SQL Server 2017 (14.x) su Linux in esecuzione in Docker.

Questa esercitazione illustra come spostare e ripristinare un file di backup di SQL Server in un'immagine del contenitore di SQL Server 2019 (15.x) su Linux in esecuzione in Docker.

Questa esercitazione illustra come spostare e ripristinare un file di backup di SQL Server in un'immagine del contenitore di SQL Server 2022 (16.x) su Linux in esecuzione in Docker.

  • Effettuare il pull ed eseguire l'immagine del contenitore di SQL Server per Linux più recente.
  • Copiare il file di database Wide World Importers nel contenitore.
  • Ripristinare il database nel contenitore.
  • Eseguire istruzioni Transact-SQL per visualizzare e modificare il database.
  • Eseguire il backup del database modificato.

Prerequisiti

Opzioni di distribuzione

Questa sezione fornisce le opzioni di distribuzione per l'ambiente in uso.

Attualmente sqlcmd non supporta il parametro MSSQL_PID durante la creazione di contenitori. Se si usano le istruzioni sqlcmd in questa esercitazione, si crea un contenitore con l'edizione Developer di SQL Server. Usa le istruzioni dell'interfaccia della riga di comando per creare un contenitore usando la licenza preferita. Per altre informazioni, vedere Implementare e connettersi a contenitori di SQL Server Linux.

Effettuare il pull ed eseguire l'immagine del contenitore

  1. Aprire un terminale Bash in Linux.

  2. Eseguire il pull dell'immagine del contenitore di SQL Server 2017 (14.x) in Linux dal Registro Container Microsoft.

    sudo docker pull mcr.microsoft.com/mssql/server:2017-latest
    
  3. Per eseguire l'immagine del contenitore con Docker, è possibile usare il comando seguente:

    sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \
       --name 'sql1' -p 1401:1433 \
       -v sql1data:/var/opt/mssql \
       -d mcr.microsoft.com/mssql/server:2017-latest
    

    Attenzione

    La password deve seguire i criteri password predefiniti di SQL Server. Per impostazione predefinita, la password deve essere composta da almeno otto caratteri e contenere caratteri di tre delle quattro categorie seguenti: lettere maiuscole, lettere minuscole, cifre in base 10 e simboli. Le password possono contenere fino a 128 caratteri. Usare password il più possibile lunghe e complesse.

    Questo comando crea un contenitore di SQL Server 2017 (14.x) con l'edizione Developer (impostazione predefinita). La porta 1433 di SQL Server è esposta nell'host come porta 1401. Il parametro facoltativo -v sql1data:/var/opt/mssql crea un contenitore del volume di dati denominato sql1data, che viene usato per salvare in modo permanente i dati creati da SQL Server.

    Importante

    Questo esempio usa un contenitore di volumi di dati all'interno di Docker. Per altre informazioni, vedere Configurare immagini dei contenitori SQL Server in Docker.

  4. Per visualizzare i contenitori, usare il comando docker ps.

    sudo docker ps -a
    
  5. Se nella colonna STATUS è impostato lo stato Up, SQL Server è in esecuzione nel contenitore e in ascolto sulla porta specificata nella colonna PORTS. Se la colonna STATUS del contenitore di SQL Server è impostata su Exited, vedere la Risoluzione dei problemi dei contenitori Docker di SQL Server.

$ sudo docker ps -a

CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                    NAMES
941e1bdf8e1d        mcr.microsoft.com/mssql/server/mssql-server-linux   "/bin/sh -c /opt/m..."   About an hour ago   Up About an hour    0.0.0.0:1401->1433/tcp   sql1
  1. Aprire un terminale Bash in Linux.

  2. Eseguire il pull dell'immagine del contenitore di SQL Server 2019 (15.x) in Linux dal Registro Container Microsoft.

    sudo docker pull mcr.microsoft.com/mssql/server:2019-latest
    
  3. Per eseguire l'immagine del contenitore con Docker, è possibile usare il comando seguente:

    sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \
       --name 'sql1' -p 1401:1433 \
       -v sql1data:/var/opt/mssql \
       -d mcr.microsoft.com/mssql/server:2019-latest
    

    Attenzione

    La password deve seguire i criteri password predefiniti di SQL Server. Per impostazione predefinita, la password deve essere composta da almeno otto caratteri e contenere caratteri di tre delle quattro categorie seguenti: lettere maiuscole, lettere minuscole, cifre in base 10 e simboli. Le password possono contenere fino a 128 caratteri. Usare password il più possibile lunghe e complesse.

    Questo comando crea un contenitore di SQL Server 2019 (15.x) con l'edizione Developer (impostazione predefinita). La porta 1433 di SQL Server è esposta nell'host come porta 1401. Il parametro facoltativo -v sql1data:/var/opt/mssql crea un contenitore del volume di dati denominato sql1data, che viene usato per salvare in modo permanente i dati creati da SQL Server.

    Importante

    Questo esempio usa un contenitore di volumi di dati all'interno di Docker. Per altre informazioni, vedere Configurare immagini dei contenitori SQL Server in Docker.

  4. Per visualizzare i contenitori, usare il comando docker ps.

    sudo docker ps -a
    
  5. Se nella colonna STATUS è impostato lo stato Up, SQL Server è in esecuzione nel contenitore e in ascolto sulla porta specificata nella colonna PORTS. Se la colonna STATUS del contenitore di SQL Server è impostata su Exited, vedere la Risoluzione dei problemi dei contenitori Docker di SQL Server.

    $ sudo docker ps -a
    
    CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                    NAMES
    941e1bdf8e1d        mcr.microsoft.com/mssql/server/mssql-server-linux   "/bin/sh -c /opt/m..."   About an hour ago   Up About an hour    0.0.0.0:1401->1433/tcp   sql1
    
  1. Aprire un terminale Bash in Linux.

  2. Eseguire il pull dell'immagine del contenitore di SQL Server 2022 (16.x) in Linux dal Registro Container Microsoft.

    sudo docker pull mcr.microsoft.com/mssql/server:2022-latest
    
  3. Per eseguire l'immagine del contenitore con Docker, è possibile usare il comando seguente:

    sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \
       --name 'sql1' -p 1401:1433 \
       -v sql1data:/var/opt/mssql \
       -d mcr.microsoft.com/mssql/server:2022-latest
    

    Attenzione

    La password deve seguire i criteri password predefiniti di SQL Server. Per impostazione predefinita, la password deve essere composta da almeno otto caratteri e contenere caratteri di tre delle quattro categorie seguenti: lettere maiuscole, lettere minuscole, cifre in base 10 e simboli. Le password possono contenere fino a 128 caratteri. Usare password il più possibile lunghe e complesse.

    Questo comando crea un contenitore di SQL Server 2022 (16.x) con l'edizione Developer (impostazione predefinita). La porta 1433 di SQL Server è esposta nell'host come porta 1401. Il parametro facoltativo -v sql1data:/var/opt/mssql crea un contenitore del volume di dati denominato sql1data, che viene usato per salvare in modo permanente i dati creati da SQL Server.

    Importante

    Questo esempio usa un contenitore di volumi di dati all'interno di Docker. Per altre informazioni, vedere Configurare immagini dei contenitori SQL Server in Docker.

  4. Per visualizzare i contenitori, usare il comando docker ps.

    sudo docker ps -a
    
  5. Se nella colonna STATUS è impostato lo stato Up, SQL Server è in esecuzione nel contenitore e in ascolto sulla porta specificata nella colonna PORTS. Se la colonna STATUS del contenitore di SQL Server è impostata su Exited, vedere la Risoluzione dei problemi dei contenitori Docker di SQL Server.

    $ sudo docker ps -a
    
    CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                    NAMES
    941e1bdf8e1d        mcr.microsoft.com/mssql/server/mssql-server-linux   "/bin/sh -c /opt/m..."   About an hour ago   Up About an hour    0.0.0.0:1401->1433/tcp   sql1
    

Cambiare la password dell'amministratore di sistema

L'account sa è un account di amministratore di sistema dell'istanza di SQL Server creato durante l'installazione. Dopo aver creato il contenitore SQL Server, la variabile di ambiente MSSQL_SA_PASSWORD specificata diventa individuabile eseguendo echo $MSSQL_SA_PASSWORD nel contenitore. Per motivi di sicurezza, modificare la sa password:

  1. Scegliere una password complessa da usare per l'account sa . La password deve seguire i criteri password predefiniti di SQL Server. Per impostazione predefinita, la password deve essere composta da almeno otto caratteri e contenere caratteri di tre delle quattro categorie seguenti: lettere maiuscole, lettere minuscole, cifre in base 10 e simboli. Le password possono contenere fino a 128 caratteri. Usare password il più possibile lunghe e complesse.

  2. Usare docker exec per eseguire l'utilità sqlcmd per modificare la password tramite un'istruzione Transact-SQL. Sostituire <old-password> e <new-password> con valori di password:

    Importante

    La variabile di ambiente SA_PASSWORD è deprecata. Utilizzare invece MSSQL_SA_PASSWORD.

    sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \
       -S localhost -U sa -P '<old-password>' \
       -Q 'ALTER LOGIN sa WITH PASSWORD="<new-password>"'
    
    docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd `
       -S localhost -U sa -P "<old-password>" `
       -Q "ALTER LOGIN sa WITH PASSWORD='<new-password>'"
    

Copiare un file di backup nel contenitore

Questa esercitazione usa il Database di esempio Wide World Importers per Microsoft SQL. Usare la procedura seguente per scaricare e copiare il file di backup del database Wide World Importers nel contenitore di SQL Server.

  1. Usare prima di tutto docker exec per creare una cartella di backup. Il comando seguente crea una directory /var/opt/mssql/backup nel contenitore di SQL Server.

    sudo docker exec -it sql1 mkdir /var/opt/mssql/backup
    
  2. Scaricare quindi il file WideWorldImporters-Full.bak nel computer host. I comandi seguenti consentono di passare alla directory home/user e di scaricare il file di backup come wwi.bak.

    cd ~
    curl -L -o wwi.bak 'https://github.com/Microsoft/sql-server-samples/releases/download/wide-world-importers-v1.0/WideWorldImporters-Full.bak'
    
  3. Usare docker cp per copiare il file di backup nel contenitore nella directory /var/opt/mssql/backup.

    sudo docker cp wwi.bak sql1:/var/opt/mssql/backup
    

Ripristinare il database

Il file di backup si trova ora all'interno del contenitore. Prima di ripristinare il backup, è importante conoscere i nomi dei file logici e i tipi di file all'interno del backup. I comandi Transact-SQL seguenti esaminano il backup ed eseguono il ripristino usando sqlcmd nel contenitore.

Suggerimento

Questa esercitazione usa sqlcmd nel contenitore, perché questo strumento è preinstallato nel contenitore, ma è anche possibile eseguire le istruzioni Transact-SQL con altri strumenti client esterni al contenitore, ad esempio l’estensione SQL Server per Visual Studio Code o Usare SQL Server Management Studio su Windows per gestire SQL Server in Linux. Per connettersi, usare la porta host di cui è stato eseguito il mapping alla porta 1433 nel contenitore. In questo esempio, si tratta della porta localhost,1401 nel computer host e di Host_IP_Address,1401 in remoto.

  1. Eseguire sqlcmd nel contenitore per elencare i nome dei file logici e i percorsi all'interno del backup. Questa operazione viene eseguita con l'istruzione Transact-SQL RESTORE FILELISTONLY.

    sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd -S localhost \
       -U sa -P '<new-password>' \
       -Q 'RESTORE FILELISTONLY FROM DISK = "/var/opt/mssql/backup/wwi.bak"' \
       | tr -s ' ' | cut -d ' ' -f 1-2
    

    L'output è simile al seguente:

    LogicalName   PhysicalName
    ------------------------------------------
    WWI_Primary   D:\Data\WideWorldImporters.mdf
    WWI_UserData   D:\Data\WideWorldImporters_UserData.ndf
    WWI_Log   E:\Log\WideWorldImporters.ldf
    WWI_InMemory_Data_1   D:\Data\WideWorldImporters_InMemory_Data_1
    
  2. Chiamare il comando RESTORE DATABASE per ripristinare il database nel contenitore. Specificare i nuovi percorsi per ogni file del passaggio precedente.

    sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \
       -S localhost -U sa -P '<new-password>' \
       -Q 'RESTORE DATABASE WideWorldImporters FROM DISK = "/var/opt/mssql/backup/wwi.bak" WITH MOVE "WWI_Primary" TO "/var/opt/mssql/data/WideWorldImporters.mdf", MOVE "WWI_UserData" TO "/var/opt/mssql/data/WideWorldImporters_userdata.ndf", MOVE "WWI_Log" TO "/var/opt/mssql/data/WideWorldImporters.ldf", MOVE "WWI_InMemory_Data_1" TO "/var/opt/mssql/data/WideWorldImporters_InMemory_Data_1"'
    

    L'output è simile al seguente:

    Processed 1464 pages for database 'WideWorldImporters', file 'WWI_Primary' on file 1.
    Processed 53096 pages for database 'WideWorldImporters', file 'WWI_UserData' on file 1.
    Processed 33 pages for database 'WideWorldImporters', file 'WWI_Log' on file 1.
    Processed 3862 pages for database 'WideWorldImporters', file 'WWI_InMemory_Data_1' on file 1.
    Converting database 'WideWorldImporters' from version 852 to the current version 869.
    Database 'WideWorldImporters' running the upgrade step from version 852 to version 853.
    Database 'WideWorldImporters' running the upgrade step from version 853 to version 854.
    Database 'WideWorldImporters' running the upgrade step from version 854 to version 855.
    Database 'WideWorldImporters' running the upgrade step from version 855 to version 856.
    Database 'WideWorldImporters' running the upgrade step from version 856 to version 857.
    Database 'WideWorldImporters' running the upgrade step from version 857 to version 858.
    Database 'WideWorldImporters' running the upgrade step from version 858 to version 859.
    Database 'WideWorldImporters' running the upgrade step from version 859 to version 860.
    Database 'WideWorldImporters' running the upgrade step from version 860 to version 861.
    Database 'WideWorldImporters' running the upgrade step from version 861 to version 862.
    Database 'WideWorldImporters' running the upgrade step from version 862 to version 863.
    Database 'WideWorldImporters' running the upgrade step from version 863 to version 864.
    Database 'WideWorldImporters' running the upgrade step from version 864 to version 865.
    Database 'WideWorldImporters' running the upgrade step from version 865 to version 866.
    Database 'WideWorldImporters' running the upgrade step from version 866 to version 867.
    Database 'WideWorldImporters' running the upgrade step from version 867 to version 868.
    Database 'WideWorldImporters' running the upgrade step from version 868 to version 869.
    RESTORE DATABASE successfully processed 58455 pages in 18.069 seconds (25.273 MB/sec).
    

Verificare il database ripristinato

Eseguire la query seguente per visualizzare un elenco di nomi di database nel contenitore:

sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \
   -S localhost -U sa -P '<new-password>' \
   -Q 'SELECT name FROM sys.databases'

Dovrebbe essere visualizzato WideWorldImporters nell’elenco di database.

Apportare una modifica

Seguire questa procedura per apportare una modifica al database.

  1. Eseguire una query per visualizzare i primi 10 elementi della tabella Warehouse.StockItems.

    sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \
       -S localhost -U sa -P '<new-password>' \
       -Q 'SELECT TOP 10 StockItemID, StockItemName FROM WideWorldImporters.Warehouse.StockItems ORDER BY StockItemID'
    

    Verrà visualizzato un elenco di identificatori e nomi degli elementi:

    StockItemID StockItemName
    ----------- -----------------
              1 USB missile launcher (Green)
              2 USB rocket launcher (Gray)
              3 Office cube periscope (Black)
              4 USB food flash drive - sushi roll
              5 USB food flash drive - hamburger
              6 USB food flash drive - hot dog
              7 USB food flash drive - pizza slice
              8 USB food flash drive - dim sum 10 drive variety pack
              9 USB food flash drive - banana
             10 USB food flash drive - chocolate bar
    
  2. Aggiornare la descrizione del primo elemento con l'istruzione UPDATE seguente:

    sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \
       -S localhost -U sa -P '<new-password>' \
       -Q 'UPDATE WideWorldImporters.Warehouse.StockItems SET StockItemName="USB missile launcher (Dark Green)" WHERE StockItemID=1; SELECT StockItemID, StockItemName FROM WideWorldImporters.Warehouse.StockItems WHERE StockItemID=1'
    

    L'output dovrebbe essere simile al seguente:

    (1 rows affected)
    StockItemID StockItemName
    ----------- ------------------------------------
              1 USB missile launcher (Dark Green)
    

Creare un nuovo backup

Dopo aver ripristinato il database in un contenitore, è anche possibile creare regolarmente backup del database all'interno del contenitore in esecuzione. I passaggi seguono uno schema simile a quello dei passaggi precedenti, ma in ordine inverso.

  1. Usare il comando Transact-SQL BACKUP DATABASE per creare un backup del database nel contenitore. Questa esercitazione crea un nuovo file di backup, wwi_2.bak, nella directory /var/opt/mssql/backup creata in precedenza.

    sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \
       -S localhost -U sa -P '<new-password>' \
       -Q "BACKUP DATABASE [WideWorldImporters] TO DISK = N'/var/opt/mssql/backup/wwi_2.bak' WITH NOFORMAT, NOINIT, NAME = 'WideWorldImporters-full', SKIP, NOREWIND, NOUNLOAD, STATS = 10"
    

    L'output dovrebbe essere simile al seguente:

    10 percent processed.
    20 percent processed.
    30 percent processed.
    40 percent processed.
    50 percent processed.
    60 percent processed.
    70 percent processed.
    Processed 1200 pages for database 'WideWorldImporters', file 'WWI_Primary' on file 1.
    Processed 53096 pages for database 'WideWorldImporters', file 'WWI_UserData' on file 1.
    80 percent processed.
    Processed 3865 pages for database 'WideWorldImporters', file 'WWI_InMemory_Data_1' on file 1.
    Processed 938 pages for database 'WideWorldImporters', file 'WWI_Log' on file 1.
    100 percent processed.
    BACKUP DATABASE successfully processed 59099 pages in 25.056 seconds (18.427 MB/sec).
    
  2. Copiare quindi il file di backup all'esterno del contenitore e nel computer host.

    cd ~
    sudo docker cp sql1:/var/opt/mssql/backup/wwi_2.bak wwi_2.bak
    ls -l wwi*
    

Usare i dati salvati in modo permanente

Oltre a eseguire backup del database per proteggere i dati, è anche possibile usare contenitori di volumi di dati. All'inizio di questa esercitazione è stato creato il contenitore sql1 con il parametro -v sql1data:/var/opt/mssql. Il contenitore del volume di dati sql1data salva in modo permanente i dati di /var/opt/mssql anche dopo la rimozione del contenitore. I passaggi seguenti rimuovono completamente il contenitore sql1e quindi creano un nuovo contenitore, sql2, con i dati salvati in modo permanente.

  1. Arrestare il contenitore sql1:

    sudo docker stop sql1
    
  2. Rimuovere il contenitore. Questa operazione non elimina il contenitore del volume di dati sql1data creato in precedenza né i dati salvati in modo permanente.

    sudo docker rm sql1
    
  3. Creare un nuovo contenitore, sql2, e riutilizzare il contenitore del volume di dati sql1data.

    sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \
       --name 'sql2' -e 'MSSQL_PID=Developer' -p 1401:1433 \
       -v sql1data:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest
    
  4. Il database Wide World Importers è ora nel nuovo contenitore. Eseguire una query per verificare la modifica precedente apportata.

    sudo docker exec -it sql2 /opt/mssql-tools/bin/sqlcmd \
       -S localhost -U sa -P '<new-password>' \
       -Q 'SELECT StockItemID, StockItemName FROM WideWorldImporters.Warehouse.StockItems WHERE StockItemID=1'
    

    La sa password non è la password specificata per il sql2 contenitore, MSSQL_SA_PASSWORD=<password>. Tutti i dati di SQL Server sono stati ripristinati da sql1, inclusa la password modificata in precedenza nell'esercitazione. Alcune opzioni come questa sono in effetti ignorate a causa del ripristino dei dati in /var/opt/mssql. Per questo motivo, la password è <new-password>, come mostrato qui.

  1. Arrestare il contenitore sql1:

    sudo docker stop sql1
    
  2. Rimuovere il contenitore. Questa operazione non elimina il contenitore del volume di dati sql1data creato in precedenza né i dati salvati in modo permanente.

    sudo docker rm sql1
    
  3. Creare un nuovo contenitore, sql2, e riutilizzare il contenitore del volume di dati sql1data.

    sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \
       --name 'sql2' -e 'MSSQL_PID=Developer' -p 1401:1433 \
       -v sql1data:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2019-latest
    
  4. Il database Wide World Importers è ora nel nuovo contenitore. Eseguire una query per verificare la modifica precedente apportata.

    sudo docker exec -it sql2 /opt/mssql-tools/bin/sqlcmd \
       -S localhost -U sa -P '<new-password>' \
       -Q 'SELECT StockItemID, StockItemName FROM WideWorldImporters.Warehouse.StockItems WHERE StockItemID=1'
    

    La sa password non è la password specificata per il sql2 contenitore, MSSQL_SA_PASSWORD=<password>. Tutti i dati di SQL Server sono stati ripristinati da sql1, inclusa la password modificata in precedenza nell'esercitazione. Alcune opzioni come questa sono in effetti ignorate a causa del ripristino dei dati in /var/opt/mssql. Per questo motivo, la password è <new-password>, come mostrato qui.

  1. Arrestare il contenitore sql1:

    sudo docker stop sql1
    
  2. Rimuovere il contenitore. Questa operazione non elimina il contenitore del volume di dati sql1data creato in precedenza né i dati salvati in modo permanente.

    sudo docker rm sql1
    
  3. Creare un nuovo contenitore, sql2, e riutilizzare il contenitore del volume di dati sql1data.

    sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \
       --name 'sql2' -e 'MSSQL_PID=Developer' -p 1401:1433 \
       -v sql1data:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2022-latest
    
  4. Il database Wide World Importers è ora nel nuovo contenitore. Eseguire una query per verificare la modifica precedente apportata.

    sudo docker exec -it sql2 /opt/mssql-tools/bin/sqlcmd \
       -S localhost -U sa -P '<new-password>' \
       -Q 'SELECT StockItemID, StockItemName FROM WideWorldImporters.Warehouse.StockItems WHERE StockItemID=1'
    

    La sa password non è la password specificata per il sql2 contenitore, MSSQL_SA_PASSWORD=<password>. Tutti i dati di SQL Server sono stati ripristinati da sql1, inclusa la password modificata in precedenza nell'esercitazione. In effetti, alcune opzioni come questa vengono ignorate a causa del ripristino dei dati in /var/opt/mssql. Per questo motivo, la password è <new-password>, come mostrato qui.

Attenzione

La password deve seguire i criteri password predefiniti di SQL Server. Per impostazione predefinita, la password deve essere composta da almeno otto caratteri e contenere caratteri di tre delle quattro categorie seguenti: lettere maiuscole, lettere minuscole, cifre in base 10 e simboli. Le password possono contenere fino a 128 caratteri. Usare password il più possibile lunghe e complesse.

Passaggio successivo

In questa esercitazione si è appreso come eseguire il backup di un database in Windows e come spostarlo in un server Linux che esegue SQL Server 2017 (14.x). Contenuto del modulo:

In questa esercitazione, si è appreso come eseguire il backup di un database in Windows e come spostarlo in un server Linux che esegue SQL Server 2019 (15.x). Contenuto del modulo:

In questa esercitazione, si è appreso come eseguire il backup di un database in Windows e come spostarlo in un server Linux che esegue SQL Server 2022 (16.x). Contenuto del modulo:

  • Creare immagini dei contenitori di SQL Server su Linux.
  • Copiare i backup del database di SQL Server in un contenitore.
  • Eseguire le istruzioni Transact-SQL con sqlcmd.
  • Creare ed estrarre i file di backup da un contenitore.
  • Usare i contenitori dei volumi di dati per salvare in modo permanente i dati di produzione di SQL Server.

Esaminare quindi altri scenari di configurazione e risoluzione dei problemi:

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