Vég-log mentések (SQL Server)

A következőkre vonatkozik:SQL Server

Ez a cikk csak a teljes vagy tömegesen naplózott helyreállítási modelleket használó SQL Server-adatbázisok biztonsági mentésére és visszaállítására vonatkozik.

A tail-log biztonsági mentése rögzíti azokat a naplórekordokat, amelyekről még nem készült biztonsági másolat ( a napló farka), hogy megelőzze a munkavesztést, és hogy a naplólánc érintetlen maradjon. Mielőtt helyreállíthat egy SQL Server-adatbázist az utolsó ismert állapotra, biztonsági másolatot kell készítenie a tranzakciós napló végéről. A végső napló mentése az adatbázis helyreállítási tervében az utolsó lényeges biztonsági mentés.

Nem minden visszaállítási forgatókönyvhez van szükség a tail-log biztonsági mentésre. Nincs szükség a tail-log biztonsági mentésére, ha a helyreállítási pontot egy korábbi napló biztonsági mentése tartalmazza. A tail-log biztonsági mentése szükségtelen, ha áthelyez vagy lecserél (felülír) egy adatbázist, és nem kell visszaállítania azt a legutóbbi biztonsági mentés utáni időpontra.

A tail-log biztonsági mentését igénylő forgatókönyvek

Javasoljuk, hogy a következő esetekben készítsen biztonsági másolatot a tail-logról:

  • Ha az adatbázis online állapotban van, és visszaállítási műveletet tervez végrehajtani az adatbázisban, kezdje a napló farkának biztonsági mentésével. Az online adatbázisok hibáinak elkerülése érdekében a WITH NORECOVERYBACKUP Transact-SQL utasítást kell használnia.

  • Ha egy adatbázis offline állapotban van, és nem indul el, és vissza kell állítania az adatbázist, először biztonsági másolatot kell készítenie a napló farkáról. Mivel jelenleg nem fordulhat elő tranzakció, használja a WITH NO_TRUNCATE lehetőséget. NO_TRUNCATE gyakorlatilag ugyanolyan hatékony, mint egy csak másolat tranzakciónapló biztonsági mentése. A használat WITH NORECOVERY nem kötelező, mert jelenleg nem fordulhat elő tranzakció.

  • Ha egy adatbázis sérült, próbáljon meg biztonsági másolatot készíteni a tail-logról az WITH CONTINUE_AFTER_ERRORBACKUP utasítás lehetőségével.

    Sérült adatbázisban a napló farkának biztonsági mentése csak akkor lehet sikeres, ha a naplófájlok sértetlenek, az adatbázis olyan állapotban van, amely támogatja a tail-log biztonsági mentéseket, és az adatbázis nem tartalmaz tömegesen naplózott módosításokat. Ha a tail-log biztonsági mentése nem hozható létre, a legutóbbi napló biztonsági mentése után lekötött tranzakciók elvesznek.

Az alábbi táblázat összefoglalja a NORECOVERY, NO_TRUNCATE és CONTINUE_AFTER_ERROR lehetőségeket a BACKUP számára.

BIZTONSÁGI MENTÉSI NAPLÓ beállítás Comments
NORECOVERY Akkor használja NORECOVERY , ha folytatni szeretné a visszaállítási műveletet az adatbázisban. NORECOVERY visszaállítja az adatbázist. Ez a lépés garantálja, hogy az adatbázis nem változik a tail-log biztonsági mentése után. A napló csonkolva van, kivéve, ha a NO_TRUNCATE vagy a COPY_ONLY beállítás is meg van adva.

Fontos: Kerülje a használatot NO_TRUNCATE, kivéve, ha az adatbázis sérült vagy offline állapotban van. Előfordulhat, hogy az adatbázist egyfelhasználós módba kell helyeznie, hogy kizárólagos hozzáférést kapjon, mielőtt végrehajtja a visszaállítást a következővel NORECOVERY: . A visszaállítás után állítsa vissza az adatbázist többfelhasználós üzemmódra.
CONTINUE_AFTER_ERROR Csak akkor használja CONTINUE_AFTER_ERROR , ha egy sérült adatbázis végi részéről készít biztonsági másolatot.

Ha biztonsági másolatot készít egy sérült adatbázis naplójának végéről, előfordulhat, hogy a naplómentésekben szokásosan rögzített metaadatok némelyike nem érhető el. További információkért lásd a következő szakaszt.

Hiányos biztonsági mentési metaadatokkal rendelkező tail-log biztonsági másolatok

A naplóvégi biztonsági mentések akkor is rögzítik a napló végét, ha az adatbázis offline állapotban van, sérült vagy hiányzó adatfájlokkal rendelkezik. Ez hiányos metaadatokat eredményezhet a visszaállítási információs parancsokból és msdb. Azonban csak a metaadatok hiányosak; a rögzített napló kész és használható.

Ha egy tail-log biztonsági mentés hiányos metaadatokat tartalmaz, a backupset táblahas_incomplete_metadata értéke 1 lesz. A RESTORE HEADERONLY kimenetében a HasIncompleteMetadata is a következőre van állítva: 1.

Ha a tail-log biztonsági mentés metaadatai hiányosak, a backupfilegroup táblában a fájlcsoportokra vonatkozó legtöbb információ hiányzik a tail-log biztonsági mentésekor. backupfilegroup A táblaoszlopok többsége NULL; az egyetlen értelmes oszlopok a következő:

  • backup_set_id
  • filegroup_id
  • type
  • type_desc
  • is_readonly

Kapcsolódó tevékenységek

A tail-log biztonsági mentés készítéséhez lásd: A tranzakciónapló biztonsági mentése sérült adatbázis esetén (SQL Server).

A tranzakciónapló biztonsági mentésének visszaállításáról a Tranzakciónapló biztonsági mentésének visszaállítása (SQL Server) című témakörben olvashat.