sql >> Database teknologi >  >> RDS >> Sqlserver

Gendannelse af SQL Server-masterdatabasen

INTRODUKTION

Masterdatabasen indeholder registreringer af strukturen/konfigurationen for både den aktuelle instans og alle andre databaser. Når du kører sp_configure , skriver du data til masterdatabasen. Den indeholder også de fleste af de dynamiske administrationsvisninger, der er nødvendige for at overvåge forekomsten.

Vigtigheden af ​​masterdatabasen er afgørende. For det første har den de nødvendige oplysninger til at åbne alle andre databaser og skal åbnes først. Derefter involverer det alle instansniveau principaler for den aktuelle instans.

Det er afgørende at sikkerhedskopiere masterdatabasen dagligt. Lige så vigtigt er det at vide, hvordan man gendanner masterdatabasen til instansen. De hyppigste tilfælde er databasenedbrud eller nødvendigheden af ​​at gendanne masterdatabasen til en anden instans, når kildeinstansen ikke længere bruges. I denne artikel vil vi undersøge det specifikke tilfælde med at flytte masterdatabasen til en anden instans.

TJEK STATUS FOR APPLIKATIONSTJENESTER

Gendannelse af masterdatabasen til en anden instans vil involvere at starte instansen i enkeltbrugertilstand. Derfor er det vigtigt at sikre sig, at den aktive session er den eneste, der kontrollerer forekomsten.

For det skal du forhindre alle applikationstjenester i at få adgang til instansen, især hvis sådanne applikationer har privilegeret adgang. Der kan opstå problemer, hvis du starter instansen i enkeltbrugertilstand, mens applikationen allerede har etableret en session. I dette tilfælde vil du ikke være i stand til at fortsætte med en interaktiv session fra SQL Server Management Studio.

STOP SQL SERVER SERVICES

Stop alle SQL Server Services med SQL Server Configuration Manager:Højreklik på hver service og vælg Stop fra kontekstmenuen (se fig. 2).

START SQL SERVER I ENKELBRUGERTILSTAND

For at gendanne masterdatabasen skal du bruge SQL Server-instansen i enkeltbrugertilstand. Udfør følgende trin:

  1. Åbn CMD-prompt
  2. Naviger til C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn
  3. Problem sqlservr –m ELLER NET start MSSQLServer /c /m /T3604

ELLER

Bemærk, at trin 2 refererer til Binn mappeplacering. Det kan være anderledes i din installation.

Du kan finde den nødvendige mappe ved at kontrollere fanen Service i SQL Server-tjenesteegenskaber i SQL Server Configuration Manager (se figur 4):

GENDAN MASTER

Når du gendanner master fra en instans til en anden, får du nye principaler og nye værdier i systemkataloger, der indeholder sådanne værdier som instansnavnet og endda tempdb-placeringen.

Før du gendanner master, skal du sikre dig, at destinationsserverens stier er tilgængelige for TempDB-filer som defineret i kildeserveren. Ellers vil den nye instans ikke starte op, efter at gendannelsen er fuldført.

  1. Åbn SQL Server Management Studio
  2. Kør koden i Listing 1 i SQL Server Management Studio
-- Liste 1:Gendan Master Databasestore database master fra disk ='
' med replace; 

NB: Forekomsten lukkes ned, når gendannelsen er fuldført.

ÆNDRING AF SERVICEKONTO

For at starte SQL Server efter gendannelsen er fuldført, skal du gøre følgende:

  1. Skift SQL Server Service-kontoen til den aktuelt loggede konto.
  2. Åbn Start> Alle programmer> Microsoft SQL Server 2005> Konfigurationsværktøjer> SQL Server Configuration Manager
  3. Højreklik på hver tjeneste, og vælg Egenskaber
  4. I Log på fanen, skal du indtaste det ønskede kontonavn og den tilsvarende adgangskode.

SERVERNAVN

Masterdatabasen indeholder navnet på den instans, hvor den er placeret. Da den sikkerhedskopi, der gendannes i dette scenarie, er fra en anden instans, skal du opdatere servernavnet ved hjælp af lagrede procedurer, som vist i liste 2.

-- Liste 2:Skift forekomstnavnet for en SQL Server-forekomst-- Kontroller det aktuelle servernavn, vælg @@SERVERNAVN-- Skift servernavnet som det ses af databasesp_dropserveren 'EUK-POSTSVR-01'-- Nuværende servernavn går herover sp_addserver 'EUK-POSTBKP-01','local'--Nyt servernavn går her go

Genstart SQL Server fra SQL Server Configuration Manager for at navneændringen træder i kraft.

SERVICE LOGIN

Masterdatabasen registrerer også alle logins, der er knyttet til kildeinstansen. I den nye instans skal du rydde op i unødvendige logins. Derefter kan du tilføje de lokale standard SQL Server-grupper til den aktuelle instans.

-- Liste 3:Fjern unødvendige logins, slip login [EUK-POSTSVR-01\SQLServer2005MSSQLUser$EUK-POSTSVR-01$MSSQLSERVER]slip login [EUK-POSTSVR-01\SQLServer2005MSQLServer2005MSFTEUPOSSVRL ]slip login [EUK-POSTSVR-01\SQLServer2005SQLAgentUser$EUK-POSTSVR-01$MSSQLSERVER]-- Fortegnelse 4:Tilføj lokal standard SQL Server-grupperopret login [EUK-POSTBKP-01\SQLServer2005MSSQ-POSKLSER$ fra windows;opret login [EUK-POSTBKP-01\SQLServer2005SQLAgentUser$EUK-POSTBKP-02$MSSQLSERVER] fra windows;opret login [EUK-POSTBKP-01\SQLServer2005MSFTEUser$EUK-POSTBKP-02$MSSQLSERVER] fra windows 

NB: Sørg for, at server- og agentservicekonti tilhører deres respektive grupper på OS-niveau, og at disse OS-grupper har de nødvendige tilladelser. Tabel 1 viser tilladelser for SQL Server Service-konti.

S/Nej Privilege Påkrævet af
1. Log på som en tjeneste SQL Server Service Account SQL Agent Service Account Integration Service Account
2. Fungerer som en del af operativsystemet SQL Server Service Account SQL Agent Service Account
3 Log på som et batchjob SQL Server Service Account SQL Agent Service Account
4. Erstat et token på procesniveau SQL Server Service Account SQL Agent Service Account
5. Omgå krydskontrol SQL Server Service Account SQL Agent Service Account Integration Service Account
6. Juster hukommelseskvoter for en proces SQL Server Service Account SQL Agent Service Account
7. Opret globale objekter Integrationstjenestekonto
8. Lås sider i hukommelsen (AWE) SQL-servertjenestekonto

Når rengøringen er afsluttet på databaseniveau, skal du vende tilbage til den almindelige servicekonto. Genstart forekomsten endnu en gang fra SQL Server Configuration Manager.

På dette tidspunkt kan du starte applikationstjenesterne.

KONKLUSIONER

Under udførelsen af ​​ovenstående scenarie kan der forekomme fejl. Nedenfor kan du se oplysningerne om disse fejl.

Hvis du fejlfinder problemerne, kan du bruge værktøjer som SysInternals ProcMon. De isolerer filtilladelsesproblemerne, når SQL Server startes (se figur 7).

S/N Fejl Årsag/løsning
1. SQLServerAgent kunne ikke startes (årsag:Kan ikke oprette forbindelse til serveren '(lokal)'; SQLServerAgent kan ikke starte). Opret logins til alle lokale tjenestekonti
2. Serverens lokale forbindelsesudbyder kunne ikke lytte på [ \\.\pipe\SQLLocal\MSSQLSERVER ]. Fejl:0x5 TDSSNIClient-initialisering mislykkedes med fejl 0x5, statuskode 0x40. TDSSNIClient-initialisering mislykkedes med fejl 0x5, statuskode 0x1. SQL Server kunne ikke skabe FRunCM-tråd. Tjek SQL Server-fejlloggen og Windows-hændelsesloggene for at få oplysninger om mulige relaterede problemer. Kunne ikke starte netværksbiblioteket på grund af en intern fejl i netværksbiblioteket. For at finde årsagen skal du gennemgå fejlene umiddelbart før denne i fejlloggen. SQL-serveren blev tidligere startet med en anden tjenestekonto og blev afsluttet kraftigt. Det sker under gendannelsen af ​​masterdatabasen. For at rette op på dette skal du starte forekomsten med den servicekonto, der blev brugt i trin 3, og derefter stoppe tjenesten med ynde. Derefter kan du starte med den almindelige servicekonto.
3. SQLServerAgent kunne ikke startes (årsag:Fejl ved oprettelse af en ny session). Giv passende tilladelser til SQL Agent-kontoen

REFERENCER

Master Database


  1. Overvågning &Ops Management af MySQL 8.0 med ClusterControl

  2. Hvordan undslipper jeg specialtegn i MySQL?

  3. Hent datatype af felt i select statement i ORACLE

  4. Svæv højere i skyen med MariaDB SkySQL