Megosztás a következőn keresztül:


SQL Server-adatbázisok biztonsági mentése és visszaállítása

A következőkre vonatkozik:SQL Server

Ez a cikk ismerteti az SQL Server-adatbázisok biztonsági mentésének előnyeit, ismerteti az alapvető biztonsági mentési és visszaállítási feltételeket, valamint bemutatja az SQL Server biztonsági mentési és visszaállítási stratégiáit, valamint az SQL Server biztonsági mentésével és visszaállításával kapcsolatos biztonsági szempontokat.

Ez a cikk az SQL Server biztonsági mentéseit ismerteti. Az SQL Server-adatbázisok biztonsági mentésének lépéseit a Biztonsági másolatok létrehozása című témakörben találja.

Az SQL Server biztonsági mentési és visszaállítási összetevője alapvető védelmet nyújt az SQL Server-adatbázisokban tárolt kritikus adatok védelméhez. A katasztrofális adatvesztés kockázatának minimalizálása érdekében biztonsági másolatot kell készítenie az adatbázisokról, hogy rendszeresen megőrizze az adatok módosításait. A jól megtervezett biztonsági mentési és visszaállítási stratégia segít megvédeni az adatbázisokat a különböző hibák által okozott adatvesztés ellen. Tesztelje a stratégiát biztonsági másolatok egy készletének visszaállításával, majd az adatbázis helyreállításával, hogy felkészítse Önt arra, hogy hatékonyan reagáljon a katasztrófákra.

A biztonsági másolatok tárolására szolgáló helyi tároló mellett az SQL Server az Azure Blob Storage-ba való biztonsági mentést és visszaállítást is támogatja. További információ: SQL Server biztonsági mentés és visszaállítás a Microsoft Azure Blob Storage használatával. Az Azure Blob Storage használatával tárolt adatbázisfájlok esetében az SQL Server 2016 (13.x) lehetővé teszi az Azure-pillanatképek használatát szinte azonnali biztonsági mentésekhez és gyorsabb visszaállításokhoz. További információkért tekintse meg az Azure-beli adatbázisfájlok fájl-pillanatkép-biztonsági mentéseit. Az Azure egy nagyvállalati szintű biztonsági mentési megoldást is kínál az Azure-beli virtuális gépeken futó SQL Serverhez. A teljes mértékben felügyelt biztonsági mentési megoldás támogatja az Always On rendelkezésre állási csoportokat, a hosszú távú megőrzést, az időponthoz kötött helyreállítást, valamint a központi felügyeletet és monitorozást. További információ: Az SQL Server biztonsági mentése Azure-beli virtuális gépeken.

Miért érdemes biztonsági másolatot készíteni?

  • Az SQL Server-adatbázisok biztonsági mentése, a teszt-visszaállítási eljárások futtatása a biztonsági másolatokon, valamint a biztonsági másolatok másolatainak biztonságos, helyszíni helyen történő tárolása védelmet nyújt a potenciálisan katasztrofális adatvesztéstől. Az adatok védelmének egyetlen módja a biztonsági mentés.

    Egy adatbázis érvényes biztonsági másolataival számos hibából helyreállíthatja az adatokat, például:

    • Médiahiba.
    • Felhasználói hibák, például egy tábla tévedésből történő elvetése.
    • Hardverhibák, például sérült lemezmeghajtó vagy kiszolgáló végleges elvesztése.
    • Természeti katasztrófák. Ha az SQL Server Biztonsági mentést az Azure Blob Storage-ba használja, a helyszíni helyétől eltérő régióban hozhat létre helyszíni biztonsági másolatot, amelyet a helyszíni helyet érintő természeti katasztrófa esetén használhat.
  • Emellett az adatbázisok biztonsági másolatai rutinszintű felügyeleti célokra is hasznosak, például az adatbázisok egyik kiszolgálóról a másikra való másolására, az Always On rendelkezésre állási csoportok beállítására vagy az adatbázistükrözésre és az archiválásra.

A biztonsági mentési kifejezések szószedete

biztonsági mentés [ ige]
A biztonsági mentés [főnév] létrehozásának folyamata egy SQL Server-adatbázis adatrekordjainak vagy a tranzakciónapló naplójából történő naplórekordjainak másolásával.

biztonsági mentés [főnév]
Az adatok egy másolata, amellyel visszaállíthatja és helyreállíthatja az adatokat egy hiba után. Az adatbázis biztonsági másolatai az adatbázis egy új helyre történő visszaállítására is használhatók.

biztonsági mentési eszköz
Olyan lemez vagy szalagos eszköz, amelyre az SQL Server biztonsági másolatai meg vannak írva, és amelyről visszaállíthatók. Az SQL Server biztonsági másolatai egy Azure Blob Storage-ba is írhatók, és URL-formátummal adhatja meg a célhelyet és a biztonsági mentési fájl nevét. További információ: SQL Server biztonsági mentés és visszaállítás a Microsoft Azure Blob Storage használatával.

adathordozó biztonsági mentése
Egy vagy több szalag vagy lemezfájl, amelyre egy vagy több biztonsági mentést írtak.

adatok biztonsági mentése
Teljes adatbázis adatainak biztonsági mentése (adatbázis biztonsági mentése), részleges adatbázis (részleges biztonsági mentés) vagy adatfájlok vagy fájlcsoportok (fájl biztonsági mentése).

adatbázis biztonsági mentése
Adatbázis biztonsági mentése. A teljes adatbázis-biztonsági mentés a teljes adatbázist jelöli a biztonsági mentés befejezésekor. A különbségi adatbázis biztonsági mentései csak az adatbázis legutóbbi teljes biztonsági mentése óta végrehajtott módosításokat tartalmazzák.

különbségi biztonsági mentés
Olyan adatmentés, amely egy teljes vagy részleges adatbázis vagy adatfájlok vagy fájlcsoportok (a különbségi alap) legújabb teljes biztonsági mentésén alapul, és amely csak azokat az adatokat tartalmazza, amelyek az alap óta megváltoztak.

teljes biztonsági mentés
Adatmentés, amely egy adott adatbázisban vagy fájlcsoportokban vagy fájlokban lévő összes adatot tartalmazza, valamint elegendő napló, amely lehetővé teszi az adatok helyreállítását.

napló biztonsági mentése
A tranzakciónaplók biztonsági mentése, amely tartalmazza az összes olyan naplórekordot, amelyről nem volt biztonsági másolat az előző napló biztonsági mentésében (teljes helyreállítási modell).

recover
Adatbázis stabil és konzisztens állapotba helyezése.

felépülés
Az adatbázis indítási fázisa vagy helyreállítással rendelkező visszaállítás, amely tranzakciókonzisztens állapotba hozza az adatbázist.

helyreállítási modell
Adatbázistulajdonság, amely egy adatbázis tranzakciónapló-karbantartását szabályozza. Három helyreállítási modell létezik: egyszerű, teljes és tömegesen naplózott. Az adatbázis helyreállítási modellje határozza meg a biztonsági mentési és visszaállítási követelményeket.

visszaad
Többfázisú folyamat, amely az összes adatot és naplólapot egy megadott SQL Server-biztonsági mentésből egy adott adatbázisba másolja, majd a naplózott módosítások alkalmazásával továbbítja a biztonsági mentésben naplózott összes tranzakciót, hogy időben előrehozza az adatokat.

Biztonsági mentési és visszaállítási stratégiák

Az adatok biztonsági mentését és visszaállítását egy adott környezethez kell szabni, és a rendelkezésre álló erőforrásokkal kell dolgoznia. Ezért a biztonsági mentés és helyreállítás megbízható használata a helyreállításhoz biztonsági mentési és visszaállítási stratégiát igényel. A jól megtervezett biztonsági mentési és visszaállítási stratégia egyensúlyt teremt az adatok maximális rendelkezésre állásának és minimális adatvesztésének üzleti követelményei között, figyelembe véve a biztonsági mentések fenntartásának és tárolásának költségeit.

A biztonsági mentési és visszaállítási stratégia tartalmaz egy biztonsági mentési részt és egy visszaállítási részt. A stratégia biztonsági mentési része meghatározza a biztonsági mentések típusát és gyakoriságát, a szükséges hardver jellegét és sebességét, a biztonsági mentések tesztelésének módját, valamint a biztonsági mentési adathordozók tárolási helyét és módját (beleértve a biztonsági szempontokat is). A stratégia visszaállítási része meghatározza, hogy ki felelős a visszaállítások végrehajtásáért, hogyan kell végrehajtani a visszaállításokat az adatbázisok rendelkezésre állásával kapcsolatos célok elérése érdekében, és minimalizálja az adatvesztést, valamint a visszaállítások tesztelésének módját.

A hatékony biztonsági mentési és visszaállítási stratégia kialakításához gondos tervezésre, megvalósításra és tesztelésre van szükség. Tesztelés szükséges: nem rendelkezik biztonsági mentési stratégiával, amíg a visszaállítási stratégiában szereplő összes kombinációban sikeresen nem állította vissza a biztonsági mentéseket, és tesztelte a visszaállított adatbázist a fizikai konzisztencia érdekében. Számos tényezőt figyelembe kell vennie. Ezek a következők:

  • A szervezet céljai az éles adatbázisokkal kapcsolatban, különös tekintettel a rendelkezésre állásra és az adatok veszteségekkel és károkkal szembeni védelmére vonatkozó követelményekre.

  • Az egyes adatbázisok jellege: mérete, használati mintái, tartalma jellege, az adatokra vonatkozó követelmények stb.

  • Az erőforrásokra, például a hardverre, a személyzetre, a biztonsági mentési adathordozó tárolására szolgáló helyre, a tárolt adathordozó fizikai biztonságára stb. vonatkozó korlátozások.

Ajánlott eljárásokra vonatkozó javaslatok

A biztonsági mentési vagy visszaállítási műveleteket végző fiókok nem kaphatnak a szükségesnél több jogosultságot. Tekintse át a biztonsági mentést és a visszaállítást adott engedélyadatokért. Javasoljuk, hogy a biztonsági másolatok titkosítva legyenek, és ha lehetséges, tömörítve legyenek.

A biztonság érdekében a biztonsági mentési fájloknak a megfelelő konvencióknak megfelelő bővítményekkel kell rendelkezniük:

  • Az adatbázis biztonsági mentési fájljainak bővítményt kell használniuk .BAK
  • A naplófájlok biztonsági mentési fájljainak kiterjesztéssel .TRN kell rendelkezniük.

Különálló tároló használata

Fontos

Győződjön meg arról, hogy az adatbázis biztonsági másolatait az adatbázisfájloktól eltérő fizikai helyre vagy eszközre helyezi. Ha az adatbázisokat tároló fizikai meghajtó meghibásodik vagy összeomlik, a helyreállíthatóság attól függ, hogy a visszaállítás végrehajtásához hozzáfér-e a biztonsági másolatokat tároló különálló meghajtóhoz vagy távoli eszközhöz. Ne feledje, hogy több logikai kötetet vagy partíciót is létrehozhat ugyanabból a fizikai lemezmeghajtóból. A biztonsági mentések tárolási helyének kiválasztása előtt gondosan tanulmányozza a lemezpartíciót és a logikai kötetelrendezéseket.

A megfelelő helyreállítási modell kiválasztása

A biztonsági mentési és visszaállítási műveletek a helyreállítási modell kontextusában történnek. A helyreállítási modell egy adatbázistulajdonság, amely szabályozza a tranzakciónapló kezelését. Így az adatbázis helyreállítási modellje határozza meg, hogy milyen típusú biztonsági mentési és visszaállítási forgatókönyvek támogatottak az adatbázishoz, és milyen méretűek lennének a tranzakciónaplók biztonsági mentései. Az adatbázisok általában az egyszerű helyreállítási modellt vagy a teljes helyreállítási modellt használják. A teljes helyreállítási modellt kibővítheti a tömegesen naplózott helyreállítási modellre való váltással a tömeges műveletek előtt. Ezekről a helyreállítási modellekről és azok tranzakciónapló-kezelésre gyakorolt hatásáról a tranzakciónaplóban olvashat.

Az adatbázis helyreállítási modelljének legjobb kiválasztása az üzleti követelményektől függ. A tranzakciónaplók kezelésének elkerülése és a biztonsági mentés és visszaállítás egyszerűsítése érdekében használja az egyszerű helyreállítási modellt. A teljes helyreállítási modell használatával minimalizálhatja a munkaveszteségnek való kitettséget a felügyeleti többletköltségek árán. Ha minimalizálni szeretné a naplóméretre gyakorolt hatást a tömegesen naplózott műveletek során, ugyanakkor lehetővé teszi a műveletek helyreállíthatóságát, használjon tömegesen naplózott helyreállítási modellt. A helyreállítási modellek biztonsági mentésre és visszaállításra gyakorolt hatásáról további információt a Biztonsági mentés áttekintése című témakörben talál.

A biztonsági mentési stratégia megtervezése

Miután kiválasztott egy olyan helyreállítási modellt, amely megfelel egy adott adatbázis üzleti követelményeinek, meg kell terveznie és implementálnia kell a megfelelő biztonsági mentési stratégiát. Az optimális biztonsági mentési stratégia számos tényezőtől függ, amelyek közül az alábbiak különösen jelentősek:

  • Naponta hány órát kell az alkalmazásoknak hozzáférniük az adatbázishoz?

    Ha előrejelezhető csúcsidőn kívüli időszak van, javasoljuk, hogy az adott időszakra ütemezzen teljes adatbázis-biztonsági mentéseket.

  • Milyen gyakran fordulnak elő változások és frissítések?

    Ha gyakoriak a módosítások, vegye figyelembe az alábbiakat:

    • Az egyszerű helyreállítási modellben fontolja meg a különbségi biztonsági mentések ütemezését a teljes adatbázis-biztonsági mentések között. A különbségi biztonsági mentés csak a legutóbbi teljes adatbázis-biztonsági mentés óta bekövetkezett változásokat rögzíti.

    • A teljes helyreállítási modellben gyakori napló biztonsági mentéseket kell ütemeznie. A különbségi biztonsági mentések teljes biztonsági másolatok közötti ütemezése csökkentheti a visszaállítási időt azáltal, hogy csökkenti az adatok visszaállítása után visszaállítandó napló biztonsági másolatok számát.

  • A változások valószínűleg csak az adatbázis kis részén vagy az adatbázis nagy részében fordulnak elő?

    Olyan nagyméretű adatbázisok esetében, amelyekben a módosítások a fájlok vagy a fájlcsoportok egy részén koncentrálódnak, a részleges biztonsági mentések és a teljes fájlmentések hasznosak lehetnek. További információ: Részleges biztonsági mentések (SQL Server) és teljes fájlos biztonsági mentések (SQL Server).

  • Mennyi lemezterületre lesz szükség egy teljes adatbázis biztonsági mentéséhez?

  • A múltban milyen messzire van szüksége a vállalatnak a biztonsági másolatok karbantartásához?

    Győződjön meg arról, hogy megfelelő biztonsági mentési ütemtervet hozott létre az alkalmazás és az üzleti követelmények igényeinek megfelelően. A biztonsági mentések öregedése után az adatvesztés kockázata magasabb, hacsak nem tudja újragenerálni az összes adatot a meghibásodási pontig. Mielőtt úgy dönt, hogy a tárolási erőforrások korlátozásai miatt a régi biztonsági másolatokat megsemmisíti, fontolja meg, hogy a helyreállíthatóság szükséges-e a múltban.

Teljes adatbázis biztonsági mentésének méretének becslése

A biztonsági mentési és visszaállítási stratégia implementálása előtt meg kell becsülnie, hogy a teljes adatbázis-biztonsági mentés mennyi lemezterületet fog használni. A biztonsági mentési művelet az adatbázisban lévő adatokat a biztonsági mentési fájlba másolja. A biztonsági mentés csak az adatbázisban lévő tényleges adatokat tartalmazza, a fel nem használt területet nem. Ezért a biztonsági mentés általában kisebb, mint maga az adatbázis. A rendszer által tárolt eljárással megbecsülheti a teljes adatbázis biztonsági mentésének sp_spaceused méretét. További információ: sp_spaceused (Transact-SQL).

Biztonsági mentések ütemezése

A biztonsági mentési művelet végrehajtása minimális hatással van a futó tranzakciókra; ezért a rendszeres műveletek során biztonsági mentési műveleteket is futtathat. Az SQL Server biztonsági mentését minimális hatással lehet az éles számítási feladatokra.

A biztonsági mentés során az egyidejűségi korlátozásokról további információt a Biztonsági mentés áttekintése (SQL Server) című témakörben talál.

Miután eldönti, hogy milyen típusú biztonsági másolatokra van szüksége, és milyen gyakran kell elvégeznie az egyes típusokat, javasoljuk, hogy rendszeres biztonsági mentéseket ütemezzen az adatbázis karbantartási tervének részeként az adatbázishoz. A karbantartási tervekről és azok adatbázis-biztonsági mentésekhez és naplók biztonsági mentéséhez való létrehozásáról további információt a Karbantartási terv varázsló használata című témakörben talál.

Biztonsági másolatok tesztelése

A biztonsági mentések teszteléséig nem rendelkezik visszaállítási stratégiával. Nagyon fontos, hogy alaposan tesztelje biztonsági mentési stratégiáját az egyes adatbázisokhoz úgy, hogy visszaállítja az adatbázis egy példányát egy tesztrendszerre. Tesztelnie kell a használni kívánt biztonsági másolatok minden típusának visszaállítását. Azt is javasoljuk, hogy a biztonsági mentés visszaállítása után végezze el az adatbázis konzisztenciájának ellenőrzését az adatbázis DBCC CHECKDB-jének használatával annak ellenőrzéséhez, hogy a biztonsági mentési adathordozó nem sérült-e.

Adathordozó stabilitásának és konzisztenciájának ellenőrzése

Használja a biztonsági mentési segédprogramok által biztosított ellenőrzési beállításokat (BACKUP T-SQL-parancs, SQL Server karbantartási tervek, biztonsági mentési szoftver vagy megoldás stb.). Példa: RESTORE utasítások – VERIFYONLY.

Használjon speciális funkciókat, például BACKUP CHECKSUM észlelje a biztonsági mentési adathordozóval kapcsolatos problémákat. További információ: Lehetséges médiahibák a biztonsági mentés és visszaállítás során (SQL Server)

Dokumentum biztonsági mentési/visszaállítási stratégiája

Javasoljuk, hogy dokumentálja a biztonsági mentési és visszaállítási eljárásokat, és őrizze meg a dokumentáció egy példányát a run bookban. Azt is javasoljuk, hogy minden adatbázishoz tartson fenn üzemeltetési kézikönyvet. Ennek a műveleti kézikönyvnek dokumentálnia kell a biztonsági mentések helyét, a biztonsági mentési eszköz nevét (ha van ilyen), valamint azt az időtartamot, amely a teszt biztonsági mentéseinek visszaállításához szükséges.

Nem megbízható forrásokból származó biztonsági másolatok visszaállításának biztonsági kockázata

Ez a szakasz ismerteti a biztonsági mentések nem megbízható forrásokból bármely SQL Server-környezetbe való visszaállításával kapcsolatos biztonsági kockázatot, beleértve a helyszíni, az Azure SQL Managed Instance- és az Azure-beli virtuális gépeken futó SQL Servert és bármely más környezetet.

Miért fontos ez?

Az SQL biztonsági mentési fájljainak (.bak) visszaállítása potenciális kockázatot jelent, ha a biztonsági mentés nem megbízható forrásból származik. A biztonsági kockázat tovább fokozódik, ha egy SQL Server-környezet több példányt is használ, mivel az növeli a fenyegetés területét. Bár a megbízható határokon belül maradó biztonsági másolatok nem jelentenek biztonsági problémát, a rosszindulatú biztonsági mentések visszaállítása veszélyeztetheti a teljes környezet biztonságát.

A rosszindulatú .bak fájlok a következőt tehetik:

  • Vegye át a teljes SQL Server-példányt.
  • A jogosultságokat eszkalálja, és szerezzen jogosulatlan hozzáférést a mögöttes gazdagéphez vagy virtuális géphez.

Ez a támadás a szkriptek vagy biztonsági ellenőrzések ellenőrzése előtt következik be, ami rendkívül veszélyessé teszi. A nem megbízható biztonsági mentés visszaállítása egyenértékű azzal, ha nem megbízható alkalmazásokat futtat egy kritikus kiszolgálón vagy virtuális gépen, és tetszőleges kódvégrehajtást vezet be a környezetbe.

Ajánlott eljárások

Kövesse az alábbi biztonsági mentési biztonsági ajánlott eljárásokat az SQL Server-környezetek fenyegetésének csökkentéséhez:

  • Magas kockázatú műveletként kezelje a biztonsági mentések visszaállítását.
  • Csökkentse a veszélyforrás-szolgáltatási területet izolált példányok használatával.
  • Csak megbízható biztonsági mentések engedélyezése: soha ne állítsa vissza az ismeretlen vagy külső forrásokból származó biztonsági másolatokat.
  • Csak azoknak a biztonsági másolatoknak az engedélyezése, amelyek megbízható határokon belül maradtak: győződjön meg arról, hogy a biztonsági másolatok a megbízható határon belülről származnak.
  • Ne hagyja figyelmen kívül a biztonsági vezérlőket a kényelem érdekében.
  • Engedélyezze a kiszolgálószintű naplózást a biztonsági mentési és visszaállítási események rögzítéséhez és az auditelkerülés csökkentéséhez.

Előrehaladás figyelése az XEvent használatával

A biztonsági mentési és visszaállítási műveletek az adatbázis mérete és az érintett műveletek összetettsége miatt jelentős időt vehet igénybe. Ha bármelyik művelettel kapcsolatban problémák merülnek fel, a kiterjesztett esemény használatával élőben követheti nyomon a backup_restore_progress_trace folyamatot. A kiterjesztett eseményekről további információt a Bővített események áttekintése című témakörben talál.

Figyelmeztetés

backup_restore_progress_trace A kiterjesztett esemény használata teljesítményproblémát okozhat, és jelentős mennyiségű lemezterületet használhat fel. Rövid ideig használható, körültekintően kell eljárni, és éles környezetben történő implementálás előtt alaposan tesztelni.

-- Create the backup_restore_progress_trace extended event session
CREATE EVENT SESSION [BackupRestoreTrace] ON SERVER
ADD EVENT sqlserver.backup_restore_progress_trace
ADD TARGET package0.event_file(SET filename=N'BackupRestoreTrace')
WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=5 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF)
GO

-- Start the event session
ALTER EVENT SESSION [BackupRestoreTrace]
ON SERVER
STATE = start;
GO

-- Stop the event session
ALTER EVENT SESSION [BackupRestoreTrace]
ON SERVER
STATE = stop;
GO

Mintakimenet kiterjesztett eseményből

Az xevent kimenet biztonsági mentésére szolgáló példa képernyőképe. Képernyőkép az xevent kimenet biztonsági mentéséről, folytatás.

További információ a biztonsági mentési feladatokról

Biztonsági mentési eszközök és adathordozók használata

Biztonsági másolatok létrehozása

Megjegyzés:

Részleges vagy csak másolásos biztonsági mentések esetén a Transact-SQL BACKUP utasítást kell használnia a PARTIAL megfelelő beállítással vagy COPY_ONLY beállítással.

SSMS használata

A T-SQL használata

Adatmentések visszaállítása

SSMS használata

A T-SQL használata

Tranzakciónaplók visszaállítása (teljes helyreállítási modell)

SSMS használata

A T-SQL használata