Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
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:
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.
Megjegyzés:
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 Objektumkezelőben bontsa ki a [] Adatbázisok [].
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 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ó
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 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.
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:
Nyisson meg egy bash-munkamenetet Windows rendszeren.
A biztonsági mentési fájl másolása Linuxra
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\'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
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.
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 auser1Linux-géphez.ssh user1@192.168.2.9Parancsokat futtat a távoli Linux-kiszolgálón.
Lépjen be a szuperfelhasználói módba.
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/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.
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-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 kapnia az adatbázis sikeres visszaállításáról.
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'; GOAz 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
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; GOHa végzett a sqlcmdhasználatával, írja be a
exit.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 DATABASEparanccsal - 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.