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
A rendszeradatbázisokat újra kell létrehozni a fő, modell, msdbvagy erőforrás- rendszeradatbázisok sérülési problémáinak megoldásához, illetve az alapértelmezett kiszolgálószintű rendezés módosításához. Ez a cikk részletes útmutatást nyújt a rendszeradatbázisok SQL Serverben való újraépítéséhez.
Ez a cikk nem kapcsolódik az indexek újraépítéséhez.
Korlátozások
A master, model, msdbés tempdb rendszeradatbázisok újraépítésekor a rendszer elveti és újra létrehozza az adatbázisokat az eredeti helyén. Ha az újraépítési utasításban új rendezés van megadva, a rendszeradatbázisok ezzel a rendezési beállítással jönnek létre. Az adatbázisok felhasználói módosításai elvesznek. Előfordulhat például, hogy felhasználó által definiált objektumok vannak a master adatbázisban, ütemezett feladatok msdb, vagy a model adatbázis alapértelmezett adatbázis-beállításainak módosítása.
Előfeltételek
A rendszeradatbázisok újraépítése előtt végezze el a következő feladatokat, hogy a rendszeradatbázisokat visszaállíthassa az aktuális beállításokra.
Rögzítse az összes kiszolgálószintű konfigurációs értéket.
SELECT * FROM sys.configurations;Rögzítse az SQL Server-példányra alkalmazott összes gyorsjavítást és az aktuális kollációt. Ezeket a gyorsjavításokat újra kell alkalmaznia a rendszeradatbázisok újraépítése után.
SELECT SERVERPROPERTY('ProductVersion ') AS ProductVersion, SERVERPROPERTY('ProductLevel') AS ProductLevel, SERVERPROPERTY('ResourceVersion') AS ResourceVersion, SERVERPROPERTY('ResourceLastUpdateDateTime') AS ResourceLastUpdateDateTime, SERVERPROPERTY('Collation') AS Collation;Rögzítse a rendszeradatbázisok összes adatának és naplófájljának aktuális helyét. A rendszeradatbázisok újraépítése minden rendszeradatbázist az eredeti helyre telepít. Ha a rendszeradatbázis adatait vagy naplófájljait egy másik helyre helyezte át, akkor újra át kell helyeznie a fájlokat.
SELECT name, physical_name AS current_file_location FROM sys.master_files WHERE database_id IN (DB_ID('master'), DB_ID('model'), DB_ID('msdb'), DB_ID('tempdb'));Keresse meg a
master,modelésmsdbadatbázisok aktuális biztonsági mentését.Ha az SQL Server példánya replikációs terjesztőként van konfigurálva, keresse meg a
distributionadatbázis aktuális biztonsági mentését.Győződjön meg arról, hogy rendelkezik a rendszeradatbázisok újraépítéséhez szükséges engedélyekkel. A művelet végrehajtásához a sysadmin rögzített kiszolgálói szerepkör tagjának kell lennie. További információ: Server-Level Szerepkörök.
Ellenőrizze, hogy a
master,model,msdbadatok és naplófájlok másolatai léteznek-e a helyi kiszolgálón. A sablonfájlok alapértelmezett helye aC:\Program Files\Microsoft SQL Server\MSSQL<xx>.MSSQLSERVER\MSSQL\Binn\Templates(ahol<xx>a telepített verzió). Ezeket a fájlokat az újraépítési folyamat során használják, és a telepítés sikeréhez jelen kell lenniük. Ha hiányoznak, futtassa a telepítő javítási funkcióját, vagy másolja manuálisan a fájlokat a telepítési adathordozóról. A telepítési adathordozón található fájlok megkereséséhez keresse meg a megfelelő platformkönyvtárat (x86 vagy x64), majd lépjen asetup\sql_engine_core_inst_msi\Pfiles\SqlServr\MSSQL.X\MSSQL\Binn\Templates.
Rendszeradatbázisok újraépítése
Az alábbi eljárás újraépíti a master, model, msdbés tempdb rendszeradatbázisokat. Nem adhatja meg az újraépítendő rendszeradatbázisokat. Fürtözött példányok esetén ezt az eljárást az aktív csomóponton kell végrehajtani, és a megfelelő fürt-alkalmazás-csoportban lévő SQL Server erőforrást offline állapotba kell helyezni az eljárás végrehajtása előtt.
Ez az eljárás nem építi újra a resource adatbázist. A cikk későbbi részében lásd a az erőforrásrendszer-adatbázis újraépítése című szakaszt.
Rendszeradatbázisok újraépítése az SQL Server egy példányához
Szúrja be az SQL Server telepítési adathordozóját a lemezmeghajtóba, vagy egy parancssorból módosítsa a könyvtárakat a helyi kiszolgálón található
setup.exefájl helyére. Az SQL Server 2022 (16.x) esetében a kiszolgáló alapértelmezett helyeC:\Program Files\Microsoft SQL Server\160\Setup Bootstrap\SQLServer2022.A parancssori ablakban adja meg a következő parancsot. A választható paraméterek jelölésére szögletes zárójelek szolgálnak. Ne írja be a zárójeleket. Ha olyan Windows operációs rendszert használ, amelyen engedélyezve van a felhasználói fiókok felügyelete (UAC), a telepítő futtatása emelt szintű jogosultságokat igényel. A parancssort rendszergazdaként kell futtatni.
setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName /SQLSYSADMINACCOUNTS=accounts [ /SAPWD= StrongPassword ] [ /SQLCOLLATION=CollationName ]Paraméter neve Leírás /QUIET vagy /Q Megadja, hogy a telepítőnek felhasználói felület nélkül kell futnia. /ACTION=REBUILDDATABASE Megadja, hogy a telepítőnek újra létre kell hoznia a rendszeradatbázisokat. /INSTANCENAME=InstanceName Az SQL Server példányának neve. Az alapértelmezett példányhoz írja be az MSSQLSERVER nevet. /SQLSYSADMINACCOUNTS=fiókok Megadja azokat a Windows-csoportokat vagy egyéni fiókokat, amelyeket hozzá szeretne adni a sysadmin rögzített kiszolgálói szerepkörhöz. Egynél több fiók megadásakor különítse el a fiókokat egy üres szóközzel. Például írja be a következőt: BUILTIN\Administrators MyDomain\MyUser. Ha olyan fiókot ad meg, amely üres szóközt tartalmaz a fióknéven belül, a fiókot idézőjelek közé kell foglalnia. Írja be például NT AUTHORITY\SYSTEM. [ /SAPWD=StrongPassword ] Megadja az SQL Server sa-fiók jelszavát. Ez a paraméter akkor szükséges, ha a példány vegyes hitelesítést (SQL Server és Windows-hitelesítés) használ.
biztonsági megjegyzés: A sa fiók egy jól ismert SQL Server-fiók, amelyet gyakran rosszindulatú felhasználók céloznak meg. Fontos, hogy erős jelszót használjon a sa bejelentkezéshez.
Ne adja meg ezt a paramétert a Windows-hitelesítési módhoz.[ /SQLCOLLATION=CollationName ] Új kiszolgálószintű összehasonlítási sorrendet ad meg. Ez a paraméter nem kötelező. Ha nincs megadva, a kiszolgáló aktuális sorrendjét használják.
Fontos: A kiszolgálószintű rendezés módosítása nem módosítja a meglévő felhasználói adatbázisok rendezést. Az újonnan létrehozott felhasználói adatbázisok alapértelmezés szerint az új rendezést használják.
További információ: Kiszolgáló rendezésibeállítása vagy módosítása.[ /SQLTEMPDBFILECOUNT=NumberOfFiles ] A tempdbadatfájlok számát adja meg. Ez az érték 8-ra vagy a magok számára növelhető, attól függően, hogy bármelyik a nagyobb.
Alapértelmezett érték: 8 vagy a magok száma, attól függően, hogy melyik alacsonyabb.[ /SQLTEMPDBFILESIZE=A fájl mérete MB-ben ] Az egyes tempdbadatfájlok kezdeti méretét adja meg MB-ban. A beállítással akár 1024 MB méretű is lehet.
Alapértelmezett érték: 8[ /SQLTEMPDBFILEGROWTH=FileSizeInMB ] Az egyes tempdbadatfájlok fájlnövekedési növekményét adja meg MB-ban. A 0 érték azt jelzi, hogy az automatikus növekedés ki van kapcsolva, és nincs további hely. A beállítással akár 1024 MB méretű is lehet.
Alapértelmezett érték: 64[ /SQLTEMPDBLOGFILESIZE=FileSizeInMB ] A tempdbnaplófájl kezdeti méretét adja meg MB-ban. A beállítással akár 1024 MB méretű is lehet.
Alapértelmezett érték: 8.
Megengedett tartomány: Min = 8, max = 1024.[ /SQLTEMPDBLOGFILEGROWTH=FileSizeInMB ] A tempdbnaplófájl fájlnövekedési növekményét adja meg MB-ban. A 0 érték azt jelzi, hogy az automatikus növekedés ki van kapcsolva, és nincs további hely. A beállítással akár 1024 MB méretű is lehet.
Alapértelmezett érték: 64
Megengedett tartomány: Min = 8, max = 1024.[ /SQLTEMPDBDIR=Könyvtárak ] Megadja tempdbadatfájlok könyvtárait. Ha egynél több könyvtárat ad meg, különítse el a könyvtárakat üres szóközzel. Ha több könyvtár van megadva, atempdbadatfájlok ciklikus időszeleteléses módon lesznek elosztva a könyvtárak között.
Alapértelmezett érték: System Data Directory[ /SQLTEMPDBLOGDIR=Directory ] Adja meg a tempdbnaplófájl könyvtárának helyét.
Alapértelmezett érték: System Data DirectoryAmikor a telepítő befejezte a rendszer-adatbázisok újraépítését, üzenet nélkül visszatér a parancssorba. Vizsgálja meg a Summary.txt naplófájlt, és ellenőrizze, hogy a folyamat sikeresen befejeződött-e. Ez a fájl a
C:\Program Files\Microsoft SQL Server\160\Setup Bootstrap\Logshelyen található.A RebuildDatabase forgatókönyv törli a rendszeradatbázisokat, és tiszta állapotban telepíti őket újra. Mivel a
tempdbfájlszám beállítása nem marad meg, atempdbfájlok száma nem ismert a beállítás során. Ezért az ebuildDatabase forgatókönyv nem ismeri az olvasandó fájlok számáttempdb. Az SQLTEMPDBFILECOUNT paraméterrel újra megadhatja atempdbfájlok számát. Ha a paraméter nincs megadva, a RebuildDatabase alapértelmezett számútempdbfájlt ad hozzá, amely a cpu-számmal megegyező számútempdbfájl, vagy 8, amelyik alacsonyabb.
Újraépítés utáni feladatok
Az adatbázis újraépítése után előfordulhat, hogy a következő további feladatokat kell elvégeznie:
Állítsa vissza a
master,modelésmsdbadatbázisok legutóbbi teljes biztonsági másolatát. További információ: Rendszeradatbázisok (SQL Server) biztonsági mentése és visszaállítása.Fontos
Ha módosította a kiszolgáló rendezést, ne állítsa vissza a rendszeradatbázisokat. Ezzel lecseréli az új rendezést az előző rendezési beállításra.
Ha nem érhető el biztonsági másolat, vagy ha a visszaállított biztonsági mentés nem aktuális, hozza létre újra a hiányzó bejegyzéseket. Például hozza létre újra az összes hiányzó bejegyzést a felhasználói adatbázisokhoz, biztonsági mentési eszközökhöz, SQL Server-bejelentkezésekhez, végpontokhoz stb. A bejegyzések újbóli létrehozásának legjobb módja az, ha az eredeti szkripteket futtatja, amelyek létrehozták őket.
Fontos
Javasoljuk, hogy biztonságossá tegye a szkripteket, hogy ne módosítsák őket illetéktelen személyek.
Ha az SQL Server példánya replikációs terjesztőként van konfigurálva, vissza kell állítania a
distributionadatbázist. További információ: Replikált adatbázisok biztonsági mentése és visszaállítása.Helyezze át a rendszeradatbázisokat a korábban rögzített helyekre. További információ: Rendszeradatbázisok áthelyezése.
Ellenőrizze, hogy a kiszolgálószintű konfigurációs értékek megegyeznek-e a korábban rögzített értékekkel.
Az erőforrás-adatbázis újraépítése
Az alábbi eljárás újraépíti a resource rendszeradatbázist. A resource adatbázis újraépítésekor minden gyakori javítás elveszik, ezért újra kell alkalmazni.
Az erőforrásrendszer-adatbázis újraépítése
Indítsa el az SQL Server telepítőprogramját (
setup.exe) a terjesztési adathordozóról.A bal oldali navigációs területen válassza a Karbantartási, majd a Javításlehetőséget.
A telepítéstámogatási szabályok és a fájlkezelési rutinok futnak annak érdekében, hogy a rendszerhez szükséges előfeltételek telepítve legyenek, és hogy a számítógép teljesítse a telepítés érvényesítési szabályait. A folytatáshoz válassza OK vagy Telepítés lehetőséget.
A Példány kiválasztása lapon válassza ki a kijavítani kívánt példányt, majd kattintson a Következőgombra.
A javítási szabályok a művelet validálásához kerülnek végrehajtásra. A folytatáshoz válassza Továbblehetőséget.
A Javításra kész oldalról válassza a Javításlehetőséget. A Befejezett oldal jelzi, hogy a művelet befejeződött.
Új msdb-adatbázis létrehozása
Ha a msdb adatbázis sérült vagy gyanús, és nincs biztonsági másolata a msdb adatbázisról, létrehozhat egy új msdb a instmsdb szkript használatával.
Figyelmeztetés
Ha újraépíti a msdb adatbázist a instmsdb.sql szkripttel, akkor a msdb tárolt összes információ megszűnik, például a feladatok, a riasztások, az operátorok, a karbantartási tervek, a biztonsági mentési előzmények, a házirendalapú felügyeleti beállítások, az adatbázisposta, a teljesítményadatraktár stb.
Állítsa le az adatbázismotorhoz csatlakozó összes szolgáltatást, beleértve az SQL Server-ügynököt, az SSRS-t, az SSIS-t és az SQL Servert adattárként használó összes alkalmazást.
Indítsa el az SQL Servert a parancssorból a következő paranccsal:
NET START MSSQLSERVER /T3608További információért tekintse meg: Az adatbázis-motor, az SQL Server Agent vagy az SQL Server böngészőszolgáltatás indítása, leállítása, szüneteltetése, folytatása, újraindítása. A 3608-at jelző nyomkövetési jelzőről a TF3608 című témakörben olvashat bővebben.
Egy másik parancssori ablakban válassza le a
msdbadatbázist a következő parancs végrehajtásával, és cserélje le a<servername>az SQL Server példányára:SQLCMD -E -S<servername> -dmaster -Q"EXEC sp_detach_db msdb"A Windows Intézővel nevezze át a
msdbadatbázisfájlokat. Alapértelmezés szerint ezek az SQL Server-példány DATA almappájában találhatók.Az SQL Server Configuration Managerrel állítsa le és indítsa újra az adatbázismotor szolgáltatást normál esetben további nyomkövetési jelzők nélkül.
Egy parancssori ablakban csatlakozzon az SQL Serverhez, és hajtsa végre a következő parancsot:
SQLCMD -E -S<servername> -i"C:\Program Files\Microsoft SQL Server\MSSQLXX.INSTANCE_NAME\MSSQL\Install\instmsdb.sql" -o"C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Install\instmsdb.out"Cserélje le a
<servername>-t az adatbázismotor példányával. Használja az SQL Server-példány fájlrendszer-elérési útját. Cserélje le aMSSQLXX.INSTANCE_NAME-t az ön verziójának és példányának megfelelő könyvtárra.A Windows Jegyzettömb használatával nyissa meg a
instmsdb.outfájlt, és ellenőrizze a kimenetet, hogy vannak-e hibák.Telepítse újra a példányra telepített CU-kat, amelyek a
msdbadatbázist a jelenlegi CU-szintre frissítik.Hozza létre újra a
msdbadatbázisban tárolt felhasználói tartalmat, például feladatokat, riasztásokat és egyéb elemeket.Készítsen biztonsági másolatot a
msdbadatbázisról.
A tempdb-adatbázis újraépítése
Ha a tempdb adatbázis sérült vagy gyanús, és az adatbázismotor nem indul el, újraépítheti tempdb anélkül, hogy újra kellene építenie az összes rendszeradatbázist.
Ha nem hiányzik, nevezze át az aktuális
tempdb.mdféstemplog.ldffájlokat.Indítsa el az SQL Servert egy parancssorból az sqlservr alkalmazással.
sqlservr -c -f -T3608 -T4022 -s <instance> -mSQLCMDAlapértelmezett példánynévhez használja a
MSSQLSERVER-t. Névszerinti példány esetében használja aMSSQL$<instance_name>-et. A 4022 nyomkövetési jelző letiltja az indítási tárolt eljárások végrehajtását. A-mSQLCMDcsak sqlcmd.exe tud csatlakozni a kiszolgálóhoz. További információ: Egyéb indítási beállítások.Jegyzet
Győződjön meg arról, hogy a parancssori ablak az SQL Server indítása után is nyitva marad. A parancssor ablakának bezárása leállítja a folyamatot.
Csatlakozzon a kiszolgálóhoz sqlcmdhasználatával, majd az alábbi tárolt eljárással állítsa alaphelyzetbe a
tempdbadatbázis állapotát.exec master..sp_resetstatus tempdbÁllítsa le a kiszolgálót a parancssori ablakban található
Ctrl+Clenyomásával.Indítsa újra az SQL Server szolgáltatást. Ezzel új
tempdbadatbázisfájlokat hoz létre, és helyreállítja atempdbadatbázist.
Újraépítési hibák elhárítása
A parancssori ablakban szintaxis és egyéb futásidejű hibák jelennek meg. Vizsgálja meg a beállítási utasítást a következő szintaxishibák esetén:
Hiányzik a perjel (
/) az egyes paraméterek neve előtt.Hiányzik az egyenlőségjel (
=) a paraméter neve és a paraméter értéke között.Üres szóközök jelenléte a paraméter neve és az egyenlőségjel között.
Vesszők (
,) vagy más karakterek jelenléte, amelyek nincsenek megadva a szintaxisban.
Az újraépítési művelet befejezése után vizsgálja meg az SQL Server naplóit az esetleges hibák esetén. Az alapértelmezett naplóhely C:\Program Files\Microsoft SQL Server\160\Setup Bootstrap\Logs. Az újraépítési folyamat eredményeit tartalmazó naplófájl megkereséséhez módosítsa a címtárakat a Naplók mappára egy parancssorból, majd futtassa a findstr /s RebuildDatabase summary*.*. Ez a keresés a rendszeradatbázisok újraépítésének eredményeit tartalmazó naplófájlokra mutat. Nyissa meg a naplófájlokat, és vizsgálja meg a vonatkozó hibaüzeneteket.