Megosztás a következőn keresztül:


SQL Server-adatbázis visszaállítása Linux-tárolóban

A következőkre vonatkozik:SQL Server Linux rendszeren

Ez az oktatóanyag bemutatja, hogyan helyezhet át és állíthat vissza SQL Server biztonsági mentési fájlt a Dockeren futó SQL Server 2017 (14.x) Linux-tárolórendszerképbe.

Ez az oktatóanyag bemutatja, hogyan helyezhet át és állíthat vissza SQL Server biztonsági mentési fájlt a Dockeren futó SQL Server 2019 (15.x) Linux-tárolórendszerképbe.

Ez az oktatóanyag bemutatja, hogyan helyezhet át és állíthat vissza SQL Server biztonsági mentési fájlt a Dockeren futó SQL Server 2022 (16.x) Linux-tárolórendszerképbe.

Ez az oktatóanyag bemutatja, hogyan helyezhet át és állíthat vissza SQL Server biztonsági mentési fájlt a Dockeren futó SQL Server 2025 (17.x) Linux-tárolórendszerképbe.

  • Kérje le és futtassa a legújabb SQL Server Linux-tárolórendszerképet.
  • Másolja a Wide World Importers adatbázisfájlt a tárolóba.
  • Állítsa vissza az adatbázist a tárolóban.
  • Futtassa Transact-SQL utasításokat az adatbázis megtekintéséhez és módosításához.
  • Készítsen biztonsági másolatot a módosított adatbázisról.

Előfeltételek

Üzembe helyezési lehetőségek

Ez a szakasz a környezete számára az üzembehelyezési lehetőségeket ismerteti.

sqlcmd jelenleg nem támogatja a MSSQL_PID paramétert tárolók létrehozásakor. Ha az oktatóanyag sqlcmd utasításait használja, hozzon létre egy tárolót az SQL Server Developer kiadásával. A parancssori felület (CLI) utasításaival hozzon létre egy tárolót a választott licenc használatával. További információ: Sql Server Linux-tárolók üzembe helyezése és csatlakoztatása.

A tárolórendszerkép lekérése és futtatása

  1. Nyisson meg egy Bash-terminált Linuxon.

  2. Kérje le az SQL Server 2017 (14.x) Linux tárolórendszerképét a Microsoft Container Registryből.

    sudo docker pull mcr.microsoft.com/mssql/server:2017-latest
    
  3. A tárolólemezkép Dockerrel való futtatásához használja a következő parancsot:

    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
    

    Figyelem

    A jelszónak az SQL Server alapértelmezett jelszóházirendetkell követnie. Alapértelmezés szerint a jelszónak legalább nyolc karakter hosszúnak kell lennie, és a következő négy készletből három karakterből kell állnia: nagybetűk, kisbetűk, 10 számjegyből és szimbólumokból. A jelszavak legfeljebb 128 karakter hosszúak lehetnek. Használjon olyan jelszavakat, amelyek a lehető legkomplexebbek és hosszúak.

    Ez a parancs létrehoz egy SQL Server 2017 -tárolót (14.x) a Developer kiadással (alapértelmezett). Az SQL Server 1433 portja a gazda gépen 1401portként van kitéve. Az opcionális -v sql1data:/var/opt/mssql paraméter létrehoz egy sql1datanevű adatkötet-tárolót. Ez az SQL Server által létrehozott adatok megőrzésére szolgál.

    Fontos

    Ez a példa egy adatkötet-tárolót használ a Dockeren belül. További információ: Sql Server-tárolólemezképek konfigurálása a Docker.

  4. A tárolók megtekintéséhez használja a docker ps parancsot.

    sudo docker ps -a
    
  5. Ha a STATUS oszlop Upállapotot mutat, akkor az SQL Server fut a tárolóban, és figyeli a PORTS oszlopban megadott portot. Ha az SQL Server-tárolóhoz tartozó STATUS oszlopban Exitedlátható, lásd a Az SQL Server Docker-tárolók hibaelhárításacímű témakört.

$ 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. Nyisson meg egy Bash-terminált Linuxon.

  2. Kérje le az SQL Server 2019 (15.x) Linux tárolórendszerképét a Microsoft Container Registryből.

    sudo docker pull mcr.microsoft.com/mssql/server:2019-latest
    
  3. A tárolólemezkép Dockerrel való futtatásához használja a következő parancsot:

    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
    

    Figyelem

    A jelszónak az SQL Server alapértelmezett jelszóházirendetkell követnie. Alapértelmezés szerint a jelszónak legalább nyolc karakter hosszúnak kell lennie, és a következő négy készletből három karakterből kell állnia: nagybetűk, kisbetűk, 10 számjegyből és szimbólumokból. A jelszavak legfeljebb 128 karakter hosszúak lehetnek. Használjon olyan jelszavakat, amelyek a lehető legkomplexebbek és hosszúak.

    Ez a parancs létrehoz egy SQL Server 2019 -tárolót (15.x) a Developer kiadással (alapértelmezett). Az SQL Server 1433 portja a gazda gépen 1401portként van kitéve. Az opcionális -v sql1data:/var/opt/mssql paraméter létrehoz egy sql1datanevű adatkötet-tárolót. Ez az SQL Server által létrehozott adatok megőrzésére szolgál.

    Fontos

    Ez a példa egy adatkötet-tárolót használ a Dockeren belül. További információ: Sql Server-tárolólemezképek konfigurálása a Docker.

  4. A tárolók megtekintéséhez használja a docker ps parancsot.

    sudo docker ps -a
    
  5. Ha a STATUS oszlop Upállapotot mutat, akkor az SQL Server fut a tárolóban, és figyeli a PORTS oszlopban megadott portot. Ha az SQL Server-tárolóhoz tartozó STATUS oszlopban Exitedlátható, lásd a Az SQL Server Docker-tárolók hibaelhárításacímű témakört.

    $ 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. Nyisson meg egy Bash-terminált Linuxon.

  2. Kérje le az SQL Server 2022 (16.x) Linux-tárolórendszerképet a Microsoft Container Registryből.

    sudo docker pull mcr.microsoft.com/mssql/server:2022-latest
    
  3. A tárolólemezkép Dockerrel való futtatásához használja a következő parancsot:

    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
    

    Figyelem

    A jelszónak az SQL Server alapértelmezett jelszóházirendetkell követnie. Alapértelmezés szerint a jelszónak legalább nyolc karakter hosszúnak kell lennie, és a következő négy készletből három karakterből kell állnia: nagybetűk, kisbetűk, 10 számjegyből és szimbólumokból. A jelszavak legfeljebb 128 karakter hosszúak lehetnek. Használjon olyan jelszavakat, amelyek a lehető legkomplexebbek és hosszúak.

    Ez a parancs létrehoz egy SQL Server 2022 -tárolót (16.x) a Developer kiadással (alapértelmezett). Az SQL Server 1433 portja a gazda gépen 1401portként van kitéve. Az opcionális -v sql1data:/var/opt/mssql paraméter létrehoz egy sql1datanevű adatkötet-tárolót. Ez az SQL Server által létrehozott adatok megőrzésére szolgál.

    Fontos

    Ez a példa egy adatkötet-tárolót használ a Dockeren belül. További információ: Sql Server-tárolólemezképek konfigurálása a Docker.

  4. A tárolók megtekintéséhez használja a docker ps parancsot.

    sudo docker ps -a
    
  5. Ha a STATUS oszlop Upállapotot mutat, akkor az SQL Server fut a tárolóban, és figyeli a PORTS oszlopban megadott portot. Ha az SQL Server-tárolóhoz tartozó STATUS oszlopban Exitedlátható, lásd a Az SQL Server Docker-tárolók hibaelhárításacímű témakört.

    $ 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. Nyisson meg egy Bash-terminált Linuxon.

  2. Kérje le az SQL Server 2025 (17.x) Linux-tárolórendszerképet a Microsoft Container Registryből.

    sudo docker pull mcr.microsoft.com/mssql/server:2025-latest
    
  3. A tárolólemezkép Dockerrel való futtatásához használja a következő parancsot:

    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:2025-latest
    

    Figyelem

    A jelszónak az SQL Server alapértelmezett jelszóházirendetkell követnie. Alapértelmezés szerint a jelszónak legalább nyolc karakter hosszúnak kell lennie, és a következő négy készletből három karakterből kell állnia: nagybetűk, kisbetűk, 10 számjegyből és szimbólumokból. A jelszavak legfeljebb 128 karakter hosszúak lehetnek. Használjon olyan jelszavakat, amelyek a lehető legkomplexebbek és hosszúak.

    Ez a parancs létrehoz egy SQL Server 2025 -tárolót (17.x) a Developer kiadással (alapértelmezett). Az SQL Server 1433 portja a gazda gépen 1401portként van kitéve. Az opcionális -v sql1data:/var/opt/mssql paraméter létrehoz egy sql1datanevű adatkötet-tárolót. Ez az SQL Server által létrehozott adatok megőrzésére szolgál.

    Fontos

    Ez a példa egy adatkötet-tárolót használ a Dockeren belül. További információ: Sql Server-tárolólemezképek konfigurálása a Docker.

  4. A tárolók megtekintéséhez használja a docker ps parancsot.

    sudo docker ps -a
    
  5. Ha a STATUS oszlop Upállapotot mutat, akkor az SQL Server fut a tárolóban, és figyeli a PORTS oszlopban megadott portot. Ha az SQL Server-tárolóhoz tartozó STATUS oszlopban Exitedlátható, lásd a Az SQL Server Docker-tárolók hibaelhárításacímű témakört.

    $ 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
    

A rendszergazda (SA) jelszavának módosítása

A sa fiók rendszergazda a telepítés során létrehozott SQL Server-példányon. Az SQL Server-tároló létrehozása után a megadott MSSQL_SA_PASSWORD környezeti változó echo $MSSQL_SA_PASSWORD a tárolóban való futtatásával felderíthető. Biztonsági okokból módosítsa a sa jelszavát:

  1. Válasszon erős jelszót a sa-fiókhoz. A jelszónak az SQL Server alapértelmezett jelszóházirendetkell követnie. Alapértelmezés szerint a jelszónak legalább nyolc karakter hosszúnak kell lennie, és a következő négy készletből három karakterből kell állnia: nagybetűk, kisbetűk, 10 számjegyből és szimbólumokból. A jelszavak legfeljebb 128 karakter hosszúak lehetnek. Használjon olyan jelszavakat, amelyek a lehető legkomplexebbek és hosszúak.

  2. Az docker exec használatával futtassa az sqlcmd segédprogramot a jelszó Transact-SQL utasítással történő módosításához. Cserélje le <old-password> és <new-password> a saját jelszóértékére:

    Fontos

    A SA_PASSWORD környezeti változó elavult. Használjon inkább 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>'"
    

Biztonsági mentési fájl másolása a tárolóba

Ez az oktatóanyag a Microsoft SQL Wide World Importers mintaadatbázisait használja. Az alábbi lépésekkel töltse le és másolja a Wide World Importers adatbázis biztonsági mentési fájlját az SQL Server-tárolóba.

  1. Először a docker exec használatával hozzon létre egy biztonsági mentési mappát. Az alábbi parancs létrehoz egy /var/opt/mssql/backup könyvtárat az SQL Server-tárolóban.

    sudo docker exec -it sql1 mkdir /var/opt/mssql/backup
    
  2. Ezután töltse le a WideWorldImporters-Full.bak fájlt a saját gazdagépére. Az alábbi parancsok a kezdőlapra vagy a felhasználói könyvtárra lépnek, és letöltik a biztonsági mentési fájlt 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. A docker cp használatával másolja a biztonsági mentési fájlt a /var/opt/mssql/backup könyvtár tárolójába.

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

Az adatbázis visszaállítása

A biztonsági mentési fájl most már a tárolóban található. A biztonsági mentés visszaállítása előtt fontos ismerni a biztonsági másolatban található logikai fájlneveket és fájltípusokat. Az alábbi Transact-SQL parancsok ellenőrzik a biztonsági mentést, és végrehajtják a visszaállítást sqlcmd használatával a tárolóban.

Borravaló

Ez az oktatóanyag sqlcmd használ a tárolón belül, mivel a tároló előre telepítve van ezzel az eszközzel. Azonban Transact-SQL utasításokat a tárolón kívül más ügyféleszközökkel is futtathat, például a SQL Server bővítményt a Visual Studio Code-hoz vagy használhatja a SQL Server Management Studio-t Windows rendszeren az SQL Server kezelésére Linuxon. A csatlakozáshoz használja a 1433-ra leképezett gazdagépportot a tárolóban. Ebben a példában a gazdagép és a port localhost,1401 a gazdagépen, és távolról Host_IP_Address,1401.

  1. Futtassa a tárolóban a sqlcmd parancsot, hogy listázza a mentésben található logikai fájlneveket és útvonalakat. Ez a RESTORE FILELISTONLY Transact-SQL utasítással történik.

    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
    

    Az eredményeknek az alábbi kimenethez hasonlóan kell kinéznie:

    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. Hívja meg a RESTORE DATABASE parancsot az adatbázis tárolón belüli visszaállításához. Az előző lépésben adjon meg új elérési utakat az egyes fájlokhoz.

    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"'
    

    Az eredményeknek az alábbi kimenethez hasonlóan kell kinéznie:

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

A visszaállított adatbázis ellenőrzése

Futtassa a következő lekérdezést az adatbázisnevek listájának megjelenítéséhez a tárolóban:

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

Az adatbázisok listájában WideWorldImporters kell megjelennie.

Módosítás

Az alábbi lépéseket követve módosíthatja az adatbázist.

  1. Lekérdezés futtatásával megtekintheti a Warehouse.StockItems tábla 10 legfontosabb elemét.

    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'
    

    Látnia kell az elemazonosítók és -nevek listáját:

    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. Frissítse az első elem leírását a következő UPDATE utasítással:

    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'
    

    A következő szöveghez hasonló kimenetnek kell megjelennie:

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

Új biztonsági mentés létrehozása

Miután visszaállította az adatbázist egy tárolóba, érdemes lehet rendszeresen adatbázis-biztonsági másolatokat létrehozni a futó tárolóban. A lépések az előző lépésekhez hasonló mintát követnek, de fordított sorrendben.

  1. A BACKUP DATABASE Transact-SQL paranccsal hozzon létre adatbázis-biztonsági mentést a tárolóban. Ez az oktatóanyag létrehoz egy új biztonsági mentési fájlt wwi_2.baka korábban létrehozott /var/opt/mssql/backup könyvtárban.

    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"
    

    Az eredményeknek az alábbi kimenethez hasonlóan kell kinéznie:

    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. Ezután másolja ki a biztonsági mentési fájlt a tárolóból, majd helyezze át a gépére.

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

A tárolt adatok használata

Amellett, hogy adatbázis-biztonsági mentéseket készít az adatok védelmére, adatkötet-tárolókat is használhat. Az oktatóanyag elején létrehozta a sql1 tárolót a -v sql1data:/var/opt/mssql paraméterrel. Az sql1data adatkötet tárolója a tároló eltávolítása után is megőrzi a /var/opt/mssql adatokat. Az alábbi lépések teljesen eltávolítják a sql1 tárolót, majd létrehoznak egy új tárolót, sql2, a tárolt adatokkal.

  1. Állítsa le a sql1 tárolót.

    sudo docker stop sql1
    
  2. Távolítsa el a tárolót. Ez nem törli a korábban létrehozott sql1data adatkötet-tárolót és a benne tárolt adatokat.

    sudo docker rm sql1
    
  3. Hozzon létre egy új tárolót, sql2, és használja újra a sql1data adatkötet-tárolót.

    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. A Wide World Importers adatbázis most már az új tárolóban van. Futtass egy lekérdezést az előző módosítás ellenőrzéséhez.

    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'
    

    A sa jelszó nem a sql2 tárolóhoz megadott jelszó, MSSQL_SA_PASSWORD=<password>. Az SQL Server összes adatát visszaállították sql1-ból, beleértve a korábban az oktatóanyagban módosított jelszót is. Az ilyen lehetőségek némelyikét a rendszer figyelmen kívül hagyja, mert visszaállítja az adatokat a /var/opt/mssql fájlban. Ezért a jelszó itt látható módon <new-password>.

  1. Állítsa le a sql1 tárolót.

    sudo docker stop sql1
    
  2. Távolítsa el a tárolót. Ez nem törli a korábban létrehozott sql1data adatkötet-tárolót és a benne tárolt adatokat.

    sudo docker rm sql1
    
  3. Hozzon létre egy új tárolót, sql2, és használja újra a sql1data adatkötet-tárolót.

    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. A Wide World Importers adatbázis most már az új tárolóban van. Futtass egy lekérdezést az előző módosítás ellenőrzéséhez.

    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'
    

    A sa jelszó nem a sql2 tárolóhoz megadott jelszó, MSSQL_SA_PASSWORD=<password>. Az SQL Server összes adatát visszaállították sql1-ból, beleértve a korábban az oktatóanyagban módosított jelszót is. Az ilyen lehetőségek némelyikét a rendszer figyelmen kívül hagyja, mert visszaállítja az adatokat a /var/opt/mssql fájlban. Ezért a jelszó itt látható módon <new-password>.

  1. Állítsa le a sql1 tárolót.

    sudo docker stop sql1
    
  2. Távolítsa el a tárolót. Ez nem törli a korábban létrehozott sql1data adatkötet-tárolót és a benne tárolt adatokat.

    sudo docker rm sql1
    
  3. Hozzon létre egy új tárolót, sql2, és használja újra a sql1data adatkötet-tárolót.

    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. A Wide World Importers adatbázis most már az új tárolóban van. Futtass egy lekérdezést az előző módosítás ellenőrzéséhez.

    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'
    

    A sa jelszó nem a sql2 tárolóhoz megadott jelszó, MSSQL_SA_PASSWORD=<password>. Az SQL Server összes adatát visszaállították sql1-ból, beleértve a korábban az oktatóanyagban módosított jelszót is. Az ilyen beállításokat a rendszer figyelmen kívül hagyja a /var/opt/mssqladatainak visszaállítása miatt. Ezért a jelszó itt látható módon <new-password>.

  1. Állítsa le a sql1 tárolót.

    sudo docker stop sql1
    
  2. Távolítsa el a tárolót. Ez nem törli a korábban létrehozott sql1data adatkötet-tárolót és a benne tárolt adatokat.

    sudo docker rm sql1
    
  3. Hozzon létre egy új tárolót, sql2, és használja újra a sql1data adatkötet-tárolót.

    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:2025-latest
    
  4. A Wide World Importers adatbázis most már az új tárolóban van. Futtass egy lekérdezést az előző módosítás ellenőrzéséhez.

    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'
    

    A sa jelszó nem a sql2 tárolóhoz megadott jelszó, MSSQL_SA_PASSWORD=<password>. Az SQL Server összes adatát visszaállították sql1-ból, beleértve a korábban az oktatóanyagban módosított jelszót is. Az ilyen beállításokat a rendszer figyelmen kívül hagyja a /var/opt/mssqladatainak visszaállítása miatt. Ezért a jelszó itt látható módon <new-password>.

Figyelem

A jelszónak az SQL Server alapértelmezett jelszóházirendetkell követnie. Alapértelmezés szerint a jelszónak legalább nyolc karakter hosszúnak kell lennie, és a következő négy készletből három karakterből kell állnia: nagybetűk, kisbetűk, 10 számjegyből és szimbólumokból. A jelszavak legfeljebb 128 karakter hosszúak lehetnek. Használjon olyan jelszavakat, amelyek a lehető legkomplexebbek és hosszúak.

Következő lépés

Ebben az oktatóanyagban megtanulta, hogyan készíthet biztonsági másolatot egy adatbázisról Windows rendszeren, és hogyan helyezheti át egy tárolóban lévő SQL Server 2017 -et (14.x) futtató Linux-kiszolgálóra. Megtanulta, hogyan:

Ebben az oktatóanyagban megtanulta, hogyan készíthet biztonsági másolatot egy adatbázisról Windows rendszeren, és hogyan helyezheti át egy TÁROLÓBAN lévő SQL Server 2019 -et (15.x) futtató Linux-kiszolgálóra. Megtanulta, hogyan:

Ebben az oktatóanyagban megtanulta, hogyan készíthet biztonsági másolatot egy adatbázisról Windows rendszeren, és hogyan helyezheti át egy tárolóban lévő SQL Server 2022 -t (16.x) futtató Linux-kiszolgálóra. Megtanulta, hogyan:

Ebben az oktatóanyagban megtanulta, hogyan készíthet biztonsági másolatot egy adatbázisról Windows rendszeren, és hogyan helyezheti át egy tárolóban lévő SQL Server 2025 (17.x) rendszert futtató Linux-kiszolgálóra. Megtanulta, hogyan:

  • SQL Server Linux-tárolólemezképek létrehozása.
  • Másolja az SQL Server-adatbázis biztonsági másolatait egy tárolóba.
  • Futtassa Transact-SQL utasításokat sqlcmd.
  • Biztonsági másolatfájlokat hozhat létre és nyerhet ki egy tárolóból.
  • Az adatmennyiség-tárolók használata az SQL Server éles adatainak tárolásához.

Ezután tekintse át a többi tárolókonfigurációt és hibaelhárítási forgatókönyvet:

Közreműködés az SQL dokumentációjában

Tudta, hogy saját maga szerkesztheti az SQL-tartalmakat? Ha így tesz, nem csak a dokumentáció fejlesztésében segít, hanem az oldal közreműködőjeként is jóváírást kap.

További információ: Microsoft Learn-dokumentáció szerkesztése.