Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server – Linux
Under vissa omständigheter kan du behöva återställa master-databasen på en instans av SQL Server i enanvändarläge i Linux. Scenarier omfattar migrering till en ny instans eller återställning från inkonsekvenser.
Anteckning
SQL Server stängs automatiskt av när återställningen är klar. Det här beteendet är avsiktligt.
Om du vill återställa master databas måste du starta SQL Server i enanvändarläge med startalternativet -m från kommandoraden.
Information om hur du startar en SQL Server-instans i enanvändarläge i Windows finns i Läge för en användare för SQL Server.
Förutsättningar
Om du startar SQL Server i enanvändarläge kan alla medlemmar i den lokala administratörsgruppen ansluta till SQL Server som medlem i sysadmin fast serverroll. För mer information, se Anslut till SQL Server när systemadministratörer är utelåsta.
När du startar en instans av SQL Server i enanvändarläge:
- Endast en användare kan ansluta till servern.
-
CHECKPOINT-processen körs inte. Som standard körs den automatiskt vid start.
Stoppa SQL Server-tjänsten
Följande kommando stoppar SQL Server-instansen om den körs för närvarande:
systemctl stop mssql-server
Ändra aktuell användare till mssql
SQL Server på Linux körs under den
mssqlanvändaren, så du måste växla till den här användaren först. Du uppmanas att angerootlösenord när du kör det här kommandot.su mssql
Starta SQL Server i enanvändarläge
När du använder alternativet
-mmedSQLCMDkan du begränsa anslutningarna till ett angivet klientprogram (SQLCMDmåste ha versaler som visas):/opt/mssql/bin/sqlservr -m"SQLCMD"I föregående exempel begränsar
-m"SQLCMD"anslutningar till en enda anslutning och anslutningen måste identifiera sig som sqlcmd klientprogram. Använd det här alternativet när du startar SQL Server i enanvändarläge för att återställa enmasterdatabas.När SQL Server startar genereras flera loggposter. Du kan bekräfta att den körs i enanvändarläge genom att leta efter följande rader i utdata:
[...] 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.
Ansluta till SQL Server-instansen
Använd sqlcmd för att ansluta till SQL Server-instansen. När du har slutfört stegen som beskrivs i avsnittet Starta SQL Server i enanvändarläge kan du se att SQL Server körs i interaktivt läge. Därför måste du öppna en ny terminalsession för att starta sqlcmd på följande sätt.
/opt/mssql-tools/bin/sqlcmd -S <ServerName> -U sa -P <password>I föregående exempel är
<ServerName>namnet på servern som kör SQL Server om du ansluter på distans. Om du ansluter direkt till värden där SQL Server körs kan du hoppa över den här parametern eller användalocalhost.<StringPassword>är lösenordet för SA-kontot.
Återställa master-databasen
Kör följande kommandon i sqlcmd. Kom ihåg att sqlcmd förväntar sig att
GOi slutet av skriptet ska köra det.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; GOI föregående exempel är sökvägen till
masterdatabassäkerhetskopieringsfilen/var/opt/mssql/data/master.bak. Du måste ersätta det här värdet med rätt sökväg till dinmasterdatabassäkerhetskopieringsfil.Du bör se utdata som liknar följande exempel om återställningen lyckas.
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.
Starta om SQL Server-tjänsten
Starta om SQL Server genom att köra följande kommando.
systemctl start mssql-server
Anmärkningar
När du återställer en master säkerhetskopia av databasen, kommer befintliga användardatabaser som lades till i instansen efter att säkerhetskopian togs inte att visas efter återställningen master. Filerna bör fortfarande finnas på lagringsskiktet, så du måste manuellt återansluta dessa användardatabasfiler för att få dessa databaser online. Mer information finns i Bifoga en databas.