Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
A teljes adatbázis-visszaállítás célja a teljes adatbázis visszaállítása. A teljes adatbázis offline állapotban van a visszaállítás idejére. Mielőtt az adatbázis bármely része online állapotba kerülne, a rendszer minden adatot egy konzisztens pontra állít vissza, amelyben az adatbázis minden része ugyanabban az időpontban van, és nincsenek véglegesített tranzakciók.
A teljes helyreállítási modellben az adatok biztonsági mentésének vagy biztonsági mentéseinek visszaállítása után vissza kell állítania az összes további tranzakciónapló biztonsági mentését, majd helyre kell állítania az adatbázist. Az adatbázist visszaállíthatja egy adott helyreállítási pontra, ezen naplók biztonsági mentéseinek egyikén belül. A helyreállítási pont lehet egy adott dátum és idő, egy megjelölt tranzakció vagy egy naplóütemezési szám (LSN).
Adatbázis visszaállításakor, különösen a teljes helyreállítási modell vagy a tömegesen naplózott helyreállítási modell alatt, egyetlen visszaállítási sorozatot kell használnia. A visszaállítási sorozat egy vagy több visszaállítási műveletből áll, amelyek az adatok visszaállításának egy vagy több fázisán keresztül mozognak.
Nem megbízható források
Javasoljuk, hogy ne csatoljon vagy állítson helyre adatbázisokat ismeretlen vagy nem megbízható forrásokból. Ezek az adatbázisok rosszindulatú kódot tartalmazhatnak, amelyek nem szándékos Transact-SQL kódot hajthatnak végre, vagy hibákat okozhatnak a séma vagy a fizikai adatbázis szerkezetének módosításával. Mielőtt ismeretlen vagy nem megbízható forrásból származó adatbázist használna, egy tesztkiszolgálón futtassa a DBCC CHECKDB parancsot az adatbázison. Emellett vizsgálja meg a felhasználó által írt kódot az adatbázisban, például tárolt eljárásokat vagy más felhasználó által definiált kódot.
Korábbi verziók biztonsági mentései
Az SQL Server korábbi verzióiból származó biztonsági másolatok támogatásáról a RESTORE (Transact-SQL)kompatibilitási támogatás című szakaszában olvashat.
Adatbázis visszaállítása a hibapontig
Az adatbázis hibapontra történő helyreállítása általában az alábbi alapvető lépéseket foglalja magában:
Készítsen biztonsági másolatot az aktív tranzakciónaplóról (más néven a napló utolsó részéről). Ez létrehoz egy tail-log biztonsági mentést. Ha az aktív tranzakciónapló nem érhető el, a napló ezen részén található összes tranzakció elveszik.
Fontos
A tömegesen naplózott helyreállítási modellben a tömegesen naplózott műveleteket tartalmazó naplók biztonsági mentéséhez hozzá kell férni az adatbázisban lévő összes adatfájlhoz. Ha az adatfájlok nem érhetők el, a tranzakciónaplóról nem lehet biztonsági másolatot készíteni. Ebben az esetben manuálisan kell elvégeznie az összes módosítást, amely a legutóbbi napló biztonsági mentése óta történt.
További információ: Tail-Log biztonsági másolatok (SQL Server).
Állítsa vissza a legutóbbi teljes adatbázis-biztonsági mentést az adatbázis helyreállítása nélkül (RESTORE DATABASE database_name FROM backup_device WITH NORECOVERY).
Ha léteznek különbségi biztonsági másolatok, állítsa vissza a legutóbbit anélkül, hogy helyreállítaná az adatbázist (AZ ADATBÁZIS VISSZAÁLLÍTÁSA database_name FROM differential_backup_device WITH NORECOVERY).
A legutóbbi különbségi biztonsági mentés visszaállítása csökkenti a visszaállítandó naplók biztonsági mentéseinek számát.
Az imént visszaállított biztonsági mentés után létrehozott első tranzakciónapló-biztonsági mentéstől kezdve állítsa vissza a naplókat sorrendben a NORECOVERY használatával.
Állítsa helyre az adatbázist (RESTORE DATABASE database_name WITH RECOVERY). Ezt a lépést kombinálhatja az utolsó napló biztonsági mentésének visszaállításával is.
Az alábbi ábrán ez a visszaállítási sorozat látható. A hiba (1) bekövetkezte után létrejön a naplóvégi biztonsági mentés (2). Ezután a rendszer visszaállítja az adatbázist a hiba pontjára. Ez magában foglalja az adatbázis biztonsági mentésének visszaállítását, az azt követő különbségi biztonsági mentést, valamint a különbségi biztonsági mentés után készített naplók biztonsági mentését, beleértve a tail-log biztonsági mentést is.
Jegyzet
Ha egy adatbázis biztonsági másolatát egy másik kiszolgálópéldányra állítja vissza, tekintse meg Adatbázisok másolása biztonsági mentéssel és visszaállítássalcímű témakört.
Alapszintű Transact-SQL VISSZAÁLLÍTÁS szintaxisa
Az előző ábrán szereplő visszaállítási sorozat alapvető RESTORETransact-SQL szintaxisa a következő:
RESTORE DATABASE database FROM teljes adatbázis biztonsági mentés NORECOVERY opcióval;
ADATBÁZIS VISSZAÁLLÍTÁSAFULL_DIFFERENTIAL_BACKUP A NORECOVERY HASZNÁLATÁVAL;
RESTORE LOG adatbázis FELÜLRŐL napló_mentés HELYREÁLLÍTÁS NÉLKÜL;
Ismételje meg ezt a visszaállítási napló lépést minden további napló biztonsági mentéséhez.
RESTORE DATABASE database WITH RECOVERY;
Példa: Helyreállítás a hiba helyére (Transact-SQL)
Az alábbi Transact-SQL példa egy visszaállítási sorozat alapvető beállításait mutatja be, amelyek visszaállítják az adatbázist a meghibásodási pontra. A példa létrehoz egy tail-log biztonsági másolatot az adatbázisról. Ezután a példa visszaállít egy teljes adatbázis-biztonsági mentést és napló biztonsági mentést, majd visszaállítja a tail-log biztonsági mentést. A példa egy külön, utolsó lépésben helyreállítja az adatbázist.
Jegyzet
Ez a példa egy adatbázis biztonsági mentését és naplójának biztonsági mentését használja, amely az Teljes adatbázis biztonsági mentése (SQL Server)"Az adatbázis biztonsági mentése a teljes helyreállítási modell alatt" című szakaszában készült. Az adatbázis biztonsági mentése előtt a AdventureWorks2022
mintaadatbázis a teljes helyreállítási modell használatára lett beállítva.
USE master;
--Create tail-log backup.
BACKUP LOG AdventureWorks2022
TO DISK = 'Z:\SQLServerBackups\AdventureWorksFullRM.bak'
WITH NORECOVERY;
GO
--Restore the full database backup (from backup set 1).
RESTORE DATABASE AdventureWorks2022
FROM DISK = 'Z:\SQLServerBackups\AdventureWorksFullRM.bak'
WITH FILE=1,
NORECOVERY;
--Restore the regular log backup (from backup set 2).
RESTORE LOG AdventureWorks2022
FROM DISK = 'Z:\SQLServerBackups\AdventureWorksFullRM.bak'
WITH FILE=2,
NORECOVERY;
--Restore the tail-log backup (from backup set 3).
RESTORE LOG AdventureWorks2022
FROM DISK = 'Z:\SQLServerBackups\AdventureWorksFullRM.bak'
WITH FILE=3,
NORECOVERY;
GO
--recover the database:
RESTORE DATABASE AdventureWorks2022 WITH RECOVERY;
GO
Adatbázis visszaállítása egy napló biztonsági mentésének egy pontjába
A teljes helyreállítási modellben a teljes adatbázis-visszaállítás általában egy adott időpontra, egy megjelölt tranzakcióra vagy egy LSN-re állítható vissza egy napló biztonsági mentésén belül. A tömegesen naplózott helyreállítási modellben azonban, ha a napló biztonsági mentése tömegesen naplózott módosításokat tartalmaz, az időponthoz kötött helyreállítás nem lehetséges.
Időponthoz kötött visszaállítási forgatókönyvek
Az alábbi példa egy kritikus fontosságú adatbázisrendszert feltételez, amelynek teljes adatbázis-biztonsági mentését naponta éjfélkor hozza létre a rendszer, a különbségi adatbázis biztonsági mentése pedig óránként, hétfőtől szombatig, a tranzakciónaplók biztonsági mentése pedig 10 percenként jön létre a nap folyamán. Az adatbázis visszaállításához a szerda hajnali 5:19-es állapotba, tegye a következőket:
Állítsa vissza a kedden éjfélkor létrehozott teljes adatbázis-biztonsági mentést.
Állítsa vissza a különbözeti adatbázis biztonsági mentését, amely szerdán reggel 5:00-kor jött létre.
Alkalmazza a szerdán reggel 5:10-kor létrehozott tranzakciónapló biztonsági mentését.
Alkalmazza a szerdán reggel 5:20-ra létrehozott tranzakciónapló biztonsági mentését, amely meghatározza, hogy a helyreállítási folyamat csak a hajnali 5:19 előtt történt tranzakciókra vonatkozik.
Ha az adatbázist csütörtök hajnali 3:04-kor kell visszaállítani az állapotába, de a csütörtök 3:00-kor létrehozott különbözeti adatbázis biztonsági mentése nem érhető el, tegye a következőket:
Állítsa vissza a szerdán éjfélkor létrehozott adatbázis biztonsági mentését.
Állítsa vissza a különbözeti adatbázis biztonsági mentését, amely csütörtökön hajnali 2:00-kor jött létre.
Alkalmazza a csütörtökön 2:10 és 3:00 között létrehozott tranzakciónapló-biztonsági mentéseket.
Alkalmazza a csütörtökön hajnali 3:10-kor létrehozott tranzakciónapló biztonsági mentését, és állítsa le a helyreállítási folyamatot hajnali 3:04-kor.
Jegyzet
Példa az időponthoz kötött visszaállításra: SQL Server-adatbázis visszaállítása egy adott időpontra (teljes helyreállítási modell).
Kapcsolódó tevékenységek
Teljes adatbázis biztonsági mentésének visszaállítása
Adatbázis biztonsági mentésének visszaállítása SSMS- használatával
Különbségi adatbázis biztonsági mentésének visszaállítása
- Különbségi adatbázis biztonsági mentésének (SQL Server) visszaállítása
Tranzakciónapló biztonsági mentésének visszaállítása
Biztonsági mentés visszaállítása a SQL Server Management Objects (SMO) használatával
Az adatbázis visszaállítása egy naplómentés keretében
SQL Server-adatbázis visszaállítása időpontra (teljes helyreállítási modell)
Megjelölt tranzakciós tartalmazó kapcsolódó adatbázisok helyreállítása
Lásd még:
VISSZAÁLLÍTÁS (Transact-SQL)
BIZTONSÁGI MENTÉS (Transact-SQL)
Tranzakciónapló biztonsági mentéseinek alkalmazása (SQL Server)
sp_addumpdevice (Transact-SQL)
Teljes körű adatbázis-biztonsági mentések (SQL Server)
Különbözeti biztonsági mentések (SQL Server)
biztonsági mentés áttekintése (SQL Server)
Visszaállítás és Helyreállítás Áttekintése (SQL Server)