Megosztás:


A főadatbázis visszaállítása Linuxon egyfelhasználós módban

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 CHECKPOINT folyamat nem lesz végrehajtva. Alapértelmezés szerint automatikusan fut indításkor.

Az SQL Server szolgáltatás leállítása

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

  1. A Linuxon futó SQL Server a mssql felhasználó alatt fut, ezért először erre a felhasználóra kell váltania. A parancs futtatásakor a rendszer a root jelszót kéri.

    su mssql
    

Sql Server indítása egyfelhasználós módban

  1. Ha a -m lehetőséget használja SQLCMD, korlátozhatja a kapcsolatokat egy adott ügyfélalkalmazásra (SQLCMD az á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 egy master adatbázis visszaállításához.

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

  1. 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 a localhost-t. <StringPassword> a SA-fiók jelszava.

A master adatbázis visszaállítása

  1. Futtassa az alábbi parancsokat a sqlcmdhasználatával. Ne feledje, hogy sqlcmd elvárja, hogy a szkript végén GO hajtsa 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;
    GO
    

    Az előző példában a master adatbázis biztonsági mentési fájljának elérési útja /var/opt/mssql/data/master.bak. Ezt az értéket a master adatbázis biztonsági mentési fájljának megfelelő elérési útjára kell cserélnie.

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

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