Delen via


Een SQL Server-database herstellen in een Linux-container

van toepassing op:SQL Server- - Linux

In deze zelfstudie ziet u hoe u een SQL Server-back-upbestand verplaatst en herstelt naar een Linux-containerinstallatiekopieën van SQL Server 2017 (14.x) die wordt uitgevoerd in Docker.

In deze zelfstudie ziet u hoe u een SQL Server-back-upbestand verplaatst en herstelt naar een Linux-containerinstallatiekopieën van SQL Server 2019 (15.x) die worden uitgevoerd in Docker.

Deze zelfstudie laat zien hoe u een SQL Server-back-upbestand verplaatst en herstelt naar een Linux-containerinstallatiekopieën van SQL Server 2022 (16.x) die wordt uitgevoerd op Docker.

  • Haal de meest recente installatiekopie van de SQL Server Linux-container op en voer deze uit.
  • Kopieer het wide World Importers-databasebestand naar de container.
  • Herstel de database in de container.
  • Voer Transact-SQL instructies uit om de database weer te geven en te wijzigen.
  • Maak een back-up van de gewijzigde database.

Voorwaarden

Implementatieopties

Deze sectie bevat implementatieopties voor uw omgeving.

sqlcmd- biedt momenteel geen ondersteuning voor de parameter MSSQL_PID bij het maken van containers. Als u de sqlcmd instructies in deze zelfstudie gebruikt, maakt u een container met de Developer-editie van SQL Server. Gebruik de CLI-instructies (opdrachtregelinterface) om een container te maken met behulp van de licentie van uw keuze. Zie Implementeren en verbinding maken met SQL Server Linux-containersvoor meer informatie.

De containerimage downloaden en draaien

  1. Open een bash-terminal in Linux.

  2. Haal de Linux-containerinstallatiekopie van SQL Server 2017 (14.x) op uit het Microsoft Container Registry.

    sudo docker pull mcr.microsoft.com/mssql/server:2017-latest
    
  3. Om de containerimage met Docker uit te voeren, kunt u de volgende opdracht gebruiken:

    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
    

    Voorzichtigheid

    Uw wachtwoord moet voldoen aan het standaard wachtwoordbeleid voor SQL Server . Standaard moet het wachtwoord ten minste acht tekens lang zijn en tekens bevatten uit drie van de volgende vier sets: hoofdletters, kleine letters, basis-10 cijfers en symbolen. Wachtwoorden mogen maximaal 128 tekens lang zijn. Gebruik wachtwoorden die zo lang en complex mogelijk zijn.

    Met deze opdracht maakt u een SQL Server 2017-container (14.x) met de Developer-editie (standaard). SQL Server-poort 1433 wordt weergegeven op de host als poort 1401. Met de optionele parameter -v sql1data:/var/opt/mssql maakt u een gegevensvolumecontainer met de naam sql1data. Dit wordt gebruikt om de gegevens die door SQL Server zijn gemaakt, te behouden.

    Belangrijk

    In dit voorbeeld wordt een gegevensvolumecontainer in Docker gebruikt. Zie SQL Server-containerinstallatiekopieën configureren op Dockervoor meer informatie.

  4. Gebruik de opdracht docker ps om uw containers weer te geven.

    sudo docker ps -a
    
  5. Als de kolom STATUS een status van Uptoont, wordt SQL Server in de container uitgevoerd en luistert het naar de poort die is opgegeven in de kolom PORTS. Als in de kolom STATUS voor uw SQL Server-container Exitedwordt weergegeven, zie Problemen oplossen met SQL Server Docker-containers.

$ 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. Open een bash-terminal in Linux.

  2. Haal de Linux-containerinstallatiekopie van SQL Server 2019 (15.x) op uit het Microsoft Container Registry.

    sudo docker pull mcr.microsoft.com/mssql/server:2019-latest
    
  3. Als u de containerafbeelding met Docker wilt uitvoeren, kunt u het volgende commando gebruiken:

    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
    

    Voorzichtigheid

    Uw wachtwoord moet voldoen aan het standaardwachtwoordbeleid van SQL Server . Standaard moet het wachtwoord ten minste acht tekens lang zijn en tekens bevatten uit drie van de volgende vier sets: hoofdletters, kleine letters, basis-10 cijfers en symbolen. Wachtwoorden mogen maximaal 128 tekens lang zijn. Gebruik wachtwoorden die zo lang en complex mogelijk zijn.

    Met deze opdracht maakt u een SQL Server 2019-container (15.x) met de Developer-editie (standaard). SQL Server-poort 1433 wordt weergegeven op de host als poort 1401. Met de optionele parameter -v sql1data:/var/opt/mssql maakt u een gegevensvolumecontainer met de naam sql1data. Dit wordt gebruikt om de gegevens die door SQL Server zijn gemaakt, te behouden.

    Belangrijk

    In dit voorbeeld wordt een gegevensvolumecontainer in Docker gebruikt. Zie SQL Server-containerinstallatiekopieën configureren op Dockervoor meer informatie.

  4. Gebruik de opdracht docker ps om uw containers weer te geven.

    sudo docker ps -a
    
  5. Als de kolom STATUS de status Uplaat zien, draait SQL Server in de container en luistert hij naar de poort die is opgegeven in de kolom PORTS. Als in de kolom STATUS voor uw SQL Server-container Exitedwordt weergegeven, bekijkt u : Problemen oplossen met SQL Server Docker-containers.

    $ 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. Open een bash-terminal in Linux.

  2. Haal de Linux-containerinstallatiekopie van SQL Server 2022 (16.x) op uit het Microsoft Container Registry.

    sudo docker pull mcr.microsoft.com/mssql/server:2022-latest
    
  3. Om de containerafbeelding uit te voeren met Docker, kun je de volgende opdracht gebruiken:

    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
    

    Voorzichtigheid

    Uw wachtwoord moet voldoen aan het standaardbeleid voor SQL Server wachtwoordbeleid. Standaard moet het wachtwoord ten minste acht tekens lang zijn en tekens bevatten uit drie van de volgende vier sets: hoofdletters, kleine letters, basis-10 cijfers en symbolen. Wachtwoorden mogen maximaal 128 tekens lang zijn. Gebruik wachtwoorden die zo lang en complex mogelijk zijn.

    Met deze opdracht maakt u een SQL Server 2022-container (16.x) met de Developer-editie (standaard). SQL Server-poort 1433 wordt weergegeven op de host als poort 1401. Met de optionele parameter -v sql1data:/var/opt/mssql maakt u een gegevensvolumecontainer met de naam sql1data. Dit wordt gebruikt om de gegevens die door SQL Server zijn gemaakt, te behouden.

    Belangrijk

    In dit voorbeeld wordt een gegevensvolumecontainer in Docker gebruikt. Zie SQL Server-containerinstallatiekopieën configureren op Dockervoor meer informatie.

  4. Gebruik de opdracht docker ps om uw containers weer te geven.

    sudo docker ps -a
    
  5. Als in de kolom STATUS een status van Upwordt weergegeven, is SQL Server actief in de container en luistert naar de poort die is opgegeven in de kolom PORTS. Als in de kolom STATUS voor uw SQL Server-container Exitedwordt weergegeven, raadpleegt u Problemen met SQL Server Docker-containers oplossen.

    $ 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
    

Het wachtwoord van de systeembeheerder (SA) wijzigen

Het sa-account is een systeembeheerder op het SQL Server-exemplaar dat wordt gemaakt tijdens de installatie. Nadat u uw SQL Server-container hebt gemaakt, is de MSSQL_SA_PASSWORD omgevingsvariabele die u hebt opgegeven, detecteerbaar door echo $MSSQL_SA_PASSWORD uit te voeren in de container. Wijzig uw sa-wachtwoord voor beveiligingsdoeleinden:

  1. Kies een sterk wachtwoord voor het sa-account. Uw wachtwoord moet voldoen aan het standaard wachtwoordbeleidvan SQL Server. Standaard moet het wachtwoord ten minste acht tekens lang zijn en tekens bevatten uit drie van de volgende vier sets: hoofdletters, kleine letters, basis-10 cijfers en symbolen. Wachtwoorden mogen maximaal 128 tekens lang zijn. Gebruik wachtwoorden die zo lang en complex mogelijk zijn.

  2. Gebruik docker exec om het hulpprogramma sqlcmd uit te voeren om het wachtwoord te wijzigen via een Transact-SQL instructie. Vervang <old-password> en <new-password> door uw eigen wachtwoordwaarden:

    Belangrijk

    De omgevingsvariabele SA_PASSWORD is afgeschaft. Gebruik in plaats daarvan 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>'"
    

Een back-upbestand naar de container kopiëren

In deze zelfstudie worden de Wide World Importers-voorbeelddatabases voor Microsoft SQLgebruikt. Gebruik de volgende stappen om het back-upbestand van de Wide World Importers-database te downloaden en te kopiëren naar uw SQL Server-container.

  1. Gebruik eerst docker exec om een back-upmap te maken. Met de volgende opdracht maakt u een /var/opt/mssql/backup map in de SQL Server-container.

    sudo docker exec -it sql1 mkdir /var/opt/mssql/backup
    
  2. Download vervolgens het WideWorldImporters-Full.bak-bestand naar uw hostcomputer. Met de volgende opdrachten navigeert u naar de map home/user en downloadt u het back-upbestand als 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. Gebruik docker cp om het back-upbestand te kopiëren naar de container in de map /var/opt/mssql/backup.

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

De database herstellen

Het back-upbestand bevindt zich nu in de container. Voordat u de back-up herstelt, is het belangrijk om de namen en bestandstypen van logische bestanden in de back-up te kennen. De volgende Transact-SQL opdrachten inspecteren de back-up en voeren de herstelbewerking uit met behulp van sqlcmd- in de container.

Tip

In deze zelfstudie wordt gebruikgemaakt van sqlcmd- in de container, omdat de container wordt geleverd met dit hulpprogramma dat vooraf is geïnstalleerd. U kunt echter ook Transact-SQL instructies uitvoeren met andere clienthulpprogramma's buiten de container, zoals SQL Server-extensie voor Visual Studio Code of SQL Server Management Studio in Windows gebruiken om SQL Server op Linux-te beheren. Gebruik de hostpoort die is toegewezen aan poort 1433 in de container om verbinding te maken. In dit voorbeeld zijn de host en poort localhost,1401 op de hostmachine en Host_IP_Address,1401 op afstand.

  1. Voer sqlcmd- in de container uit om namen en paden van logische bestanden in de back-up weer te geven. Dit gebeurt met de RESTORE FILELISTONLY Transact-SQL-instructie.

    sudo docker exec -it sql1 /opt/mssql-tools18/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
    

    De resultaten moeten er ongeveer uitzien als in de volgende uitvoer:

    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. Roep de opdracht RESTORE DATABASE aan om de database in de container te herstellen. Geef nieuwe paden op voor elk van de bestanden in de vorige stap.

    sudo docker exec -it sql1 /opt/mssql-tools18/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"'
    

    De resultaten moeten er ongeveer zo uitzien als het volgende resultaat:

    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).
    

De herstelde database controleren

Voer de volgende query uit om een lijst met databasenamen in uw container weer te geven:

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

U ziet WideWorldImporters in de lijst met databases.

Een wijziging aanbrengen

Volg deze stappen om een wijziging aan te brengen in de database.

  1. Voer een query uit om de tien belangrijkste items in de Warehouse.StockItems tabel weer te geven.

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

    U ziet nu een lijst met item-id's en namen:

    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. Werk de beschrijving van het eerste item bij met de volgende UPDATE instructie:

    sudo docker exec -it sql1 /opt/mssql-tools18/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'
    

    U zou een uitvoer moeten zien die lijkt op de volgende tekst:

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

Een nieuwe back-up maken

Nadat u de database in een container hebt hersteld, wilt u mogelijk ook regelmatig databaseback-ups maken in de actieve container. De stappen volgen een vergelijkbaar patroon als de vorige stappen, maar omgekeerd.

  1. Gebruik de opdracht BACKUP DATABASE Transact-SQL om een databaseback-up te maken in de container. In deze zelfstudie maakt u een nieuw back-upbestand, wwi_2.bak, in de eerder gemaakte /var/opt/mssql/backup map.

    sudo docker exec -it sql1 /opt/mssql-tools18/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"
    

    De resultaten zouden er vergelijkbaar uit moeten zien als de volgende uitvoer:

    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. Kopieer vervolgens het back-upbestand uit de container en naar uw hostcomputer.

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

De persistente gegevens gebruiken

Naast het maken van databaseback-ups voor het beveiligen van uw gegevens, kunt u ook containers voor gegevensvolumes gebruiken. Aan het begin van deze handleiding is de sql1-container gemaakt met de parameter -v sql1data:/var/opt/mssql. De sql1data gegevensvolumecontainer bewaart de /var/opt/mssql gegevens, zelfs nadat de container is verwijderd. Met de volgende stappen verwijdert u de sql1 container volledig en maakt u vervolgens een nieuwe container, sql2, met de persistente gegevens.

  1. Stop de sql1 container.

    sudo docker stop sql1
    
  2. Verwijder de container. Hiermee worden de eerder gemaakte sql1data gegevensvolumecontainer en de persistente gegevens hierin niet verwijderd.

    sudo docker rm sql1
    
  3. Maak een nieuwe container, sql2en hergebruik de sql1data gegevensvolumecontainer.

    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. De Wide World Importers-database bevindt zich nu in de nieuwe container. Voer een query uit om de vorige wijziging te controleren die u hebt aangebracht.

    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'
    

    Het sa wachtwoord is niet het wachtwoord dat u hebt opgegeven voor de sql2-container, MSSQL_SA_PASSWORD=<password>. Alle SQL Server-gegevens zijn hersteld vanuit sql1, inclusief het gewijzigde wachtwoord van eerder in de zelfstudie. Sommige opties zoals deze worden genegeerd vanwege het herstellen van de gegevens in /var/opt/mssql. Daarom wordt het wachtwoord <new-password> zoals hier wordt weergegeven.

  1. Stop de sql1 container.

    sudo docker stop sql1
    
  2. Verwijder de container. Hiermee worden de eerder gemaakte sql1data gegevensvolumecontainer en de persistente gegevens hierin niet verwijderd.

    sudo docker rm sql1
    
  3. Maak een nieuwe container, sql2en hergebruik de sql1data gegevensvolumecontainer.

    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. De Wide World Importers-database bevindt zich nu in de nieuwe container. Voer een query uit om de vorige wijziging te controleren die u hebt aangebracht.

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

    Het sa wachtwoord is niet het wachtwoord dat u hebt opgegeven voor de sql2-container, MSSQL_SA_PASSWORD=<password>. Alle SQL Server-gegevens zijn hersteld vanuit sql1, inclusief het gewijzigde wachtwoord van eerder in de zelfstudie. Sommige opties zoals deze worden genegeerd vanwege het herstellen van de gegevens in /var/opt/mssql. Daarom wordt het wachtwoord <new-password> zoals hier wordt weergegeven.

  1. Stop de sql1 container.

    sudo docker stop sql1
    
  2. Verwijder de container. Hiermee worden de eerder gemaakte sql1data gegevensvolumecontainer en de persistente gegevens hierin niet verwijderd.

    sudo docker rm sql1
    
  3. Maak een nieuwe container, sql2en hergebruik de sql1data gegevensvolumecontainer.

    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. De Wide World Importers-database bevindt zich nu in de nieuwe container. Voer een query uit om de vorige wijziging te controleren die u hebt aangebracht.

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

    Het sa wachtwoord is niet het wachtwoord dat u hebt opgegeven voor de sql2-container, MSSQL_SA_PASSWORD=<password>. Alle SQL Server-gegevens zijn hersteld vanuit sql1, inclusief het gewijzigde wachtwoord van eerder in de zelfstudie. Sommige opties zoals deze worden inderdaad genegeerd omdat de gegevens in /var/opt/mssqlworden hersteld. Daarom wordt het wachtwoord <new-password> zoals hier wordt weergegeven.

Voorzichtigheid

Uw wachtwoord moet voldoen aan het standaard wachtwoordbeleidvoor SQL Server. Standaard moet het wachtwoord ten minste acht tekens lang zijn en tekens bevatten uit drie van de volgende vier sets: hoofdletters, kleine letters, basis-10 cijfers en symbolen. Wachtwoorden mogen maximaal 128 tekens lang zijn. Gebruik wachtwoorden die zo lang en complex mogelijk zijn.

Volgende stap

In deze zelfstudie hebt u geleerd hoe u een back-up maakt van een database in Windows en deze verplaatst naar een Linux-server met SQL Server 2017 (14.x) in een container. U hebt geleerd hoe u het volgende kunt doen:

In deze zelfstudie hebt u geleerd hoe u een back-up maakt van een database in Windows en deze verplaatst naar een Linux-server met SQL Server 2019 (15.x) in een container. U hebt geleerd hoe u het volgende kunt doen:

In deze zelfstudie hebt u geleerd hoe u een back-up maakt van een database in Windows en deze verplaatst naar een Linux-server met SQL Server 2022 (16.x) in een container. U hebt geleerd hoe u het volgende kunt doen:

  • Sql Server Linux-containerinstallatiekopieën maken.
  • Kopieer back-ups van SQL Server-databases naar een container.
  • Voer Transact-SQL instructies uit met sqlcmd.
  • Back-upbestanden maken en extraheren uit een container.
  • Gebruik gegevensvolumecontainers om productiegegevens van SQL Server te behouden.

Bekijk vervolgens andere scenario's voor containerconfiguratie en probleemoplossing:

Bijdragen aan SQL-documentatie

Wist u dat u zelf SQL-inhoud kunt bewerken? Als u dit doet, helpt u niet alleen onze documentatie te verbeteren, maar wordt u ook als bijdrager aan de pagina vermeld.

Zie Bijdragen aan sql Server-documentatie voor meer informatie