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
Bizonyos körülmények között előfordulhat, hogy linuxos egyfelhasználós módban kell visszaállítania a master adatbázist egy SQL Server-példányon. A forgatókönyvek közé tartozik az új példányra való migrálás vagy az inkonzisztenciákból való helyreállítás.
Jegyzet
Az SQL Server a visszaállítás befejezése után automatikusan leáll. Ez a viselkedés terv szerint történik.
Az master adatbázis visszaállításához az SQL Servert egyfelhasználós módban kell elindítania a parancssorból -m indítási beállítással.
Egy SQL Server példányt egyfelhasználós módban indításához Windows alatt, lásd az SQL Server egyfelhasználós üzemmódot.
Előfeltételek
Ha egyfelhasználós módban indítja el az SQL Servert, a helyi rendszergazdai csoport bármely tagja csatlakozhat az SQL Serverhez a sysadmin rögzített kiszolgálói szerepkör tagjaként. További információ: Csatlakozás az SQL Serverhez, ha a rendszergazdákat kizárják.
Ha egyfelhasználós módban indítja el az SQL Server egy példányát:
- A kiszolgálóhoz csak egy felhasználó csatlakozhat.
- A
CHECKPOINTfolyamat nem lesz végrehajtva. Alapértelmezés szerint automatikusan fut indításkor.
Az SQL Server szolgáltatás leállítása
Az alábbi parancs leállítja az SQL Server-példányt, ha jelenleg fut:
systemctl stop mssql-server
Az aktuális felhasználó cseréje mssql-ra
A Linuxon futó SQL Server a
mssqlfelhasználó alatt fut, ezért először erre a felhasználóra kell váltania. A parancs futtatásakor a rendszer arootjelszót kéri.su mssql
Sql Server indítása egyfelhasználós módban
Ha a
-mlehetőséget használjaSQLCMD, korlátozhatja a kapcsolatokat egy adott ügyfélalkalmazásra (SQLCMDaz ábrán látható módon nagybetűvel kell megadni):/opt/mssql/bin/sqlservr -m"SQLCMD"Az előző példában
-m"SQLCMD"egyetlen kapcsolatra korlátozza a kapcsolatokat, és ennek a kapcsolatnak sqlcmd ügyfélprogramként kell azonosítania magát. Ezt a lehetőséget akkor használja, ha egyfelhasználós módban indítja el az SQL Servert egymasteradatbázis visszaállításához.Az SQL Server indításakor több naplóbejegyzést hoz létre. A kimenetben a következő sorokat keresve ellenőrizheti, hogy egyfelhasználós módban fut-e:
[...] 2022-05-24 04:26:27.24 Server Command Line Startup Parameters: -m "SQLCMD" [...] 2022-05-24 04:26:28.20 spid8s Warning ****************** 2022-05-24 04:26:28.21 spid8s SQL Server started in single-user mode. This an informational message only. No user action is required.
Csatlakozás az SQL Server-példányhoz
sqlcmd használatával csatlakozhat az SQL Server-példányhoz. A SQL Server indítása egyfelhasználós módban szakaszban leírt lépések elvégzése után láthatja, hogy az SQL Server interaktív módban fut. Ezért meg kell nyitnia egy új terminál munkamenetet sqlcmd elindításához az alábbiak szerint.
/opt/mssql-tools/bin/sqlcmd -S <ServerName> -U sa -P <password>Ha távolról csatlakozik, az előző példában
<ServerName>az SQL Servert futtató gazdagép neve. Ha közvetlenül a gazdagépen csatlakozik, ahol az SQL Server fut, kihagyhatja ezt a paramétert, vagy használhatja alocalhost-t.<StringPassword>a SA-fiók jelszava.
A master adatbázis visszaállítása
Futtassa az alábbi parancsokat a sqlcmdhasználatával. Ne feledje, hogy sqlcmd elvárja, hogy a szkript végén
GOhajtsa végre.USE [master]; GO RESTORE DATABASE [master] FROM DISK = N'/var/opt/mssql/data/master.bak' WITH FILE = 1, MOVE N'master' TO N'/var/opt/mssql/data/master.mdf', MOVE N'mastlog' TO N'/var/opt/mssql/data/mastlog.ldf', NOUNLOAD, REPLACE, STATS = 5; GOAz előző példában a
masteradatbázis biztonsági mentési fájljának elérési útja/var/opt/mssql/data/master.bak. Ezt az értéket amasteradatbázis biztonsági mentési fájljának megfelelő elérési útjára kell cserélnie.A kimenet az alábbi példához hasonlóan néz ki, ha a visszaállítás sikeres.
Processed 456 pages for database 'master', file 'master' on file 1. Processed 5 pages for database 'master', file 'mastlog' on file 1. The master database has been successfully restored. Shutting down SQL Server. SQL Server is terminating this process.
Az SQL Server szolgáltatás újraindítása
Az SQL Server újraindításához futtassa a következő parancsot.
systemctl start mssql-server
Megjegyzések
A master adatbázis biztonsági mentésének visszaállításakor a példányhoz a biztonsági mentést követően hozzáadott meglévő felhasználói adatbázisok nem lesznek láthatók a mastervisszaállítása után. A fájloknak továbbra is létezniük kell a tárolási rétegen, ezért manuálisan kell újrakontálnia ezeket a felhasználói adatbázisfájlokat az adatbázisok online állapotba helyezéséhez. További információ: Adatbázis csatolása.