Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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.
- Készíts biztonsági mentést a Windows-on az SQL Server Management Studio (SSMS) segítségével
- Bash shell telepítése a Windows rendszeren
- A biztonsági mentési fájlt helyezze át Linuxra a Bash rendszerhéjban.
- A biztonsági mentés fájl visszaállítása Linuxon Transact-SQL-vel (T-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: Konfigurálja az SQL Server Always On elérhetőségi csoportját Windows-on és Linuxon (cross-platform) esetén.
Prerequisites
Az oktatóanyag elvégzéséhez a következő előfeltételek szükségesek:
Windows rendszerű gépen:
- SQL Server telepítve.
- SQL Server Management Studio telepítve.
- A migrálni kívánt céladatbázis.
Linux rendszerű gépen:
- Sql Server (Red Hat Enterprise Linux, SUSE Linux Enterprise Servervagy Ubuntu) parancssori eszközökkel.
Note
Az SQL Server 2025 -től (17.x) kezdődően a SUSE Linux Enterprise Server (SLES) nem támogatott.
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.
Indítsa el SQL Server Management Studio a Windows rendszerű gépen.
A kapcsolat párbeszédpanelen adja meg localhost.
Az Object Explorerben bontsa ki a Databases (Adatbázisok) elemet.
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.
A Back Up Database párbeszédpanelen ellenőrizze, hogy a Biztonsági mentés típusa beállítás értéke Teljes, és a Biztonsági mentés helye beállítás értéke Disk. Figyeld meg a fájl nevét és helyét. Az SQL Server 2019-en (15.x) futó
YourDBnevű adatbázis példáulC:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Backup\YourDB.bakalapértelmezett biztonsági mentési útvonalával rendelkezik.Az adatbázis biztonsági mentéséhez válassza az OK lehetőséget.
Egy másik lehetőség, hogy egy T-SQL lekérdezést futtatsz a biztonsági mentési fájl létrehozásához. A következő T-SQL parancs ugyanazokat a műveleteket hajtja végre, mint az előző lépések egy adatbázis esetében:YourDB
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 a Windows rendszeren
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 linuxosra helyezzük át egy Windows futó Bash-rendszerhéjból (terminálablakból).
Telepítsen egy Bash-rendszerhéjat a Windows gépen, amely támogatja a scp (biztonságos másolat) és a ssh (távoli bejelentkezés) parancsokat. Két példa:
Nyiss egy Bash szekciót Windows-on.
A biztonsági mentési fájl másolása Linuxra
A Bash ülésedben menj a biztonsági mentést tartalmazó könyvtárhoz. Például:
cd 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Backup\'A scp paranccsal vigye át a fájlt a cél Linux-gépre. Az alábbi példa
YourDB.baktovábbítását mutatja be auser1kezdő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
Tip
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.
Ugyanabban a Windows Bash munkamenetben csatlakozz távolról a cél Linux gépedhez ssh-val. Az alábbi példa azt mutatja be, hogy a
192.168.2.9felhasználó hogyan csatlakozik auser1Linux-géphez.ssh user1@192.168.2.9Parancsokat futtat a távoli Linux-kiszolgálón.
Adja meg a superuser módot.
sudo suHozzon létre egy új biztonsági mentési könyvtárat. A
-pparaméter nem tesz semmit, ha a könyvtár már létezik.mkdir -p /var/opt/mssql/backupHelyezze á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/Kilépés a superuser módból.
exit
Adatbázis visszaállítása Linuxon
Az adatbázis mentésének visszaállításához használhatod a RESTORE DATABASE T-SQL 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.
Ugyanabban a terminálban indítsa el a elemet
sqlcmd. Az alábbi példa a helyi SQL Server-példányhoz csatlakozik asa-fiókkal. Amikor a rendszer kéri, adja meg a jelszót, vagy adja meg a jelszót a-Pparaméter hozzáadásával.sqlcmd -S localhost -U saA
>1parancssorba írja be a következőRESTORE DATABASEparancsot, é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 aYourDBö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 kapnod, hogy az adatbázis sikeresen helyreállítódott.
RESTORE DATABASEa 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 DATABASEzá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'; GOOlyan listát kell kapnod, mint a következő példa (csak az első két oszlopot tartalmazza):
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
MOVEzáradékokat hozhat létre a további fájlokhoz. Ebben a példában aRESTORE DATABASEa 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'; GOEllenő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; GOFuttasson más lekérdezéseket a migrált adatbázisban. Az alábbi parancs a környezetet a
YourDBadatbázisra váltja, és kiválasztja az egyik táblájának sorait.USE YourDB; SELECT * FROM YourTable; GOMiután végzett a használatával
sqlcmd, írja be a következőtexit: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 végrehajtani az alábbi műveleteket:
- Használd az SSMS-t és T-SQL-t biztonsági mentés fájl létrehozásához a Windows-on
- 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
- A T-SQL-parancsok futtatásához használja a(z)
sqlcmdelemet. - Az adatbázis biztonsági mentésének visszaállítása a
RESTORE DATABASEparanccsal - 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.