Megosztás:


SQL Server-adatbázis áttelepítése Windowsról Linuxra biztonsági mentéssel és visszaállítással

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

Az SQL Server biztonsági mentési és visszaállítási funkciója az adatbázis windowsos SQL Serverről linuxos SQL Serverre való migrálásának ajánlott módja. Ebben az oktatóanyagban végigvezeti az adatbázis Linuxra való áthelyezéséhez szükséges lépéseket biztonsági mentési és visszaállítási technikákkal.

  • Biztonsági mentési fájl létrehozása Windows rendszeren az SSMS használatával
  • Bash shell telepítése Windowsra
  • A biztonsági mentési fájl áthelyezése Linuxra a bash shellből.
  • A biztonsági mentési fájl visszaállítása Linuxon Transact-SQL
  • Lekérdezés futtatása az áttelepítés ellenőrzéséhez

Sql Server Always On rendelkezésre állási csoportot is létrehozhat az SQL Server-adatbázisok Windowsról Linuxra való migrálásához. Lásd a következőt: sql-server-linux-availability-group-cross-platform.

Előfeltételek

Az oktatóanyag elvégzéséhez a következő előfeltételek szükségesek:

Biztonsági mentés létrehozása Windows rendszeren

Az adatbázis biztonsági mentési fájlját többféleképpen is létrehozhatja Windows rendszeren. Az alábbi lépések az SQL Server Management Studiót (SSMS) használják.

  1. Indítsa el SQL Server Management Studio a Windows rendszerű gépen.

  2. A kapcsolat párbeszédpanelen adja meg localhost.

  3. Az Objektumkezelőben bontsa ki a [] Adatbázisok [].

  4. Kattintson a jobb gombbal a céladatbázisra, válassza a Feladatoklehetőséget, majd válassza a Biztonsági mentés...lehetőséget.

    Képernyőkép arról, hogy az SSMS használatával hoz létre biztonsági mentési fájlt.

  5. A Adatbázis biztonsági mentése párbeszédpanelen ellenőrizze, hogy a Biztonsági mentés típusa beállítás Teljes, és a Biztonsági mentés opció Lemez. Jegyezze fel a fájl nevét és helyét. Az SQL Server 2019-en (15.x) futó YourDB nevű adatbázis például C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Backup\YourDB.bakalapértelmezett biztonsági mentési útvonalával rendelkezik.

  6. Az adatbázis biztonsági mentéséhez válassza az OK lehetőséget.

Egy másik lehetőség egy Transact-SQL lekérdezés futtatása a biztonsági mentési fájl létrehozásához. Az alábbi Transact-SQL parancs ugyanazokat a műveleteket hajtja végre, mint a YourDBnevű adatbázis előző lépései:

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

Bash shell telepítése Windowsra

Az adatbázis visszaállításához először át kell vinnie a biztonsági mentési fájlt a Windows-gépről a cél Linux-gépre. Ebben az oktatóanyagban a fájlt egy Windows rendszeren futó Bash-rendszerhéjból (terminálablakból) helyezzük át Linuxra.

  1. Telepítsen egy bash shellt a Windows-gépen, amely támogatja a scp (biztonságos másolás) és ssh (távoli bejelentkezés) parancsokat. Két példa:

  2. Nyisson meg egy bash-munkamenetet Windows rendszeren.

A biztonsági mentési fájl másolása Linuxra

  1. A bash-munkamenetben keresse meg a biztonsági mentési fájlt tartalmazó könyvtárat. Például:

    cd 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Backup\'
    
  2. A scp paranccsal vigye át a fájlt a cél Linux-gépre. Az alábbi példa YourDB.bak továbbítását mutatja be a user1 kezdőkönyvtárába a Linux szerveren, ami a 192.168.2.9 IP-címmel rendelkezik .

    scp YourDB.bak user1@192.168.2.9:./
    

    A várt kimenet a következő:

    The authenticity of host 192.168.2.9(192.168.2.9)' can't be established.
    ECDSA key fingerprint is SHA256: aB1cD2eF-3gH4iJ5kL6-mN7oP8qR=
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '192.168.2.9' (ECDSA) to the list of known hosts.
    Password:
    YourDB.bak                                      100% 8960KB 7.4MB/s 00:01
    

Borravaló

A fájlátvitelhez vannak alternatívák scp használatán kívül. Az egyik, hogy Samba használatával konfiguráljon egy SMB hálózati megosztást Windows és Linux között. Az Ubuntu bemutatása: Samba fájlkiszolgálóként. Miután létrejött, hálózati fájlmegosztásként is hozzáférhet a Windowsból, például \\machinenameorip\share.

A biztonsági mentési fájl áthelyezése a visszaállítás előtt

Ezen a ponton a biztonsági mentési fájl a linuxos kiszolgálón található a felhasználó kezdőlapján. Mielőtt visszaállítja az adatbázist az SQL Serverre, a biztonsági másolatot egy alkönyvtárba /var/opt/mssqlkell helyeznie, mivel ez a könyvtár a felhasználó mssql és a csoport mssqltulajdonában van. Ha módosítani szeretné az alapértelmezett biztonsági mentési helyet, olvassa el a Konfigurálás mssql-conf című cikket.

  1. Ugyanabban a Windows bash-munkamenetben csatlakozzon távolról a cél Linux-géphez ssh. Az alábbi példa azt mutatja be, hogy a 192.168.2.9felhasználó hogyan csatlakozik a user1 Linux-géphez.

    ssh user1@192.168.2.9
    

    Parancsokat futtat a távoli Linux-kiszolgálón.

  2. Lépjen be a szuperfelhasználói módba.

    sudo su
    
  3. Hozzon létre egy új biztonsági mentési könyvtárat. A -p paraméter nem tesz semmit, ha a könyvtár már létezik.

    mkdir -p /var/opt/mssql/backup
    
  4. Helyezze át a biztonsági mentési fájlt a könyvtárba. Az alábbi példában a biztonsági mentési fájl a user1kezdőkönyvtárában található. Módosítsa a parancsot úgy, hogy megfeleljen a biztonsági mentési fájl helyének és fájlnevének.

    mv /home/user1/YourDB.bak /var/opt/mssql/backup/
    
  5. Lépjen ki a felügyelői módból.

    exit
    

Adatbázis visszaállítása Linuxon

Az adatbázis biztonsági mentésének visszaállításához használhatja a RESTORE DATABASE Transact-SQL (TQL) parancsot.

Az alábbi lépések az sqlcmd eszközt használják. Ha még nem telepített SQL Server-eszközöket, olvassa el az sqlcmd és a bcp SQL Server parancssori eszközeinek linuxos telepítésével kapcsolatos témakört.

  1. Ugyanabban a terminálban indítsa el sqlcmd. Az alábbi példa a helyi SQL Server-példányhoz csatlakozik a sa-fiókkal. Amikor a rendszer kéri, adja meg a jelszót, vagy adja meg a jelszót a -P paraméter hozzáadásával.

    sqlcmd -S localhost -U sa
    
  2. A >1 parancssorba írja be a következő RESTORE DATABASE parancsot, és nyomja le az ENTER billentyűt minden sor után (a teljes többsoros parancsot nem másolhatja és illessze be egyszerre). Cserélje le a YourDB összes előfordulását az adatbázis nevére.

    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
    

    Üzenetet kell kapnia az adatbázis sikeres visszaállításáról.

    RESTORE DATABASE a következő példához hasonló hibát adhat vissza:

    File 'YourDB_Product' cannot be restored to 'Z:\Microsoft SQL Server\MSSQL15.GLOBAL\MSSQL\Data\YourDB\YourDB_Product.ndf'. Use WITH MOVE to identify a valid location for the file.
    Msg 5133, Level 16, State 1, Server servername, Line 1
    Directory lookup for the file "Z:\Microsoft SQL Server\MSSQL15.GLOBAL\MSSQL\Data\YourDB\YourDB_Product.ndf" failed with the operating system error 2(The system cannot find the file specified.).
    

    Ebben az esetben az adatbázis másodlagos fájlokat tartalmaz. Ha ezek a fájlok nincsenek megadva a MOVERESTORE DATABASE záradékában, a visszaállítási eljárás megpróbálja őket az eredeti kiszolgálóval azonos elérési úton létrehozni.

    A biztonsági mentésben szereplő összes fájlt listázhatja:

    RESTORE FILELISTONLY FROM DISK = '/var/opt/mssql/backup/YourDB.bak';
    GO
    

    Az alábbi példához hasonló listát kell kapnia (csak az első két oszlopot sorolja fel):

    LogicalName         PhysicalName                                                                 ..............
    ------------------- ---------------------------------------------------------------------------- ---------------
    YourDB              Z:\Microsoft SQL Server\MSSQL15.GLOBAL\MSSQL\Data\YourDB\YourDB.mdf          ..............
    YourDB_Product      Z:\Microsoft SQL Server\MSSQL15.GLOBAL\MSSQL\Data\YourDB\YourDB_Product.ndf  ..............
    YourDB_Customer     Z:\Microsoft SQL Server\MSSQL15.GLOBAL\MSSQL\Data\YourDB\YourDB_Customer.ndf ..............
    YourDB_log          Z:\Microsoft SQL Server\MSSQL15.GLOBAL\MSSQL\Data\YourDB\YourDB_Log.ldf      ..............
    

    Ezzel a listával MOVE záradékokat hozhat létre a további fájlokhoz. Ebben a példában a RESTORE DATABASE a következő:

    RESTORE DATABASE YourDB FROM DISK = '/var/opt/mssql/backup/YourDB.bak'
        WITH MOVE 'YourDB' TO '/var/opt/mssql/data/YourDB.mdf',
        MOVE 'YourDB_Product' TO '/var/opt/mssql/data/YourDB_Product.ndf',
        MOVE 'YourDB_Customer' TO '/var/opt/mssql/data/YourDB_Customer.ndf',
        MOVE 'YourDB_Log' TO '/var/opt/mssql/data/YourDB_Log.ldf';
    GO
    
  3. Ellenőrizze a visszaállítást a kiszolgálón található összes adatbázis listázásával. A visszaállított adatbázisnak szerepelnie kell a listán.

    SELECT name
    FROM sys.databases;
    GO
    
  4. Futtasson más lekérdezéseket a migrált adatbázisban. Az alábbi parancs a környezetet a YourDB adatbázisra váltja, és kiválasztja az egyik táblájának sorait.

    USE YourDB;
    
    SELECT *
    FROM YourTable;
    GO
    
  5. Ha végzett a sqlcmdhasználatával, írja be a exit.

  6. Ha végzett a távoli ssh munkamenetben, írja be újra a exit.

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 SQL Servert futtató Linux-kiszolgálóra. Megtanulta, hogyan:

  • Biztonsági mentési fájl létrehozása windowsos SSMS és Transact-SQL használatával
  • Bash shell telepítése a Windows rendszeren
  • Biztonsági mentési fájlok áthelyezése Windowsról Linuxra scp használatával
  • Az ssh használatával távolról csatlakozhat Linux-gépéhez
  • A biztonsági mentési fájl áthelyezése a visszaállításra való felkészüléshez
  • Transact-SQL parancsok futtatásához használja sqlcmd
  • Az adatbázis biztonsági mentésének visszaállítása a RESTORE DATABASE paranccsal
  • A lekérdezés futtatása az áttelepítés ellenőrzéséhez

Ezután ismerkedjen meg a Linuxon futó SQL Server egyéb migrálási forgatókönyvekkel.