Sdílet prostřednictvím


Úplné zálohy databáze (SQL Server)

platí pro:SQL Server

Úplná záloha databáze zálohuje celou databázi. To zahrnuje část transakčního protokolu, aby bylo možné obnovit úplnou databázi po obnovení úplné zálohy databáze. Úplné zálohy databáze představují databázi v době dokončení zálohování.

S rostoucí velikostí databáze trvá úplné zálohování databáze více času, než se dokončí a vyžaduje více místa úložiště. Proto pro velkou databázi můžete chtít doplnit úplné zálohování databáze řadou rozdílových záloh databáze. Další informace naleznete v tématu rozdílové zálohování (SQL Server).

Důležitý

TRUSTWORTHY je nastaven na VYPNUTO pro zálohování databáze. Informace o nastavení TRUSTWORTHY na ONnaleznete v tématu ALTER DATABASE SET Options (Transact-SQL).

Zálohy databází v rámci jednoduchého modelu obnovení

V rámci jednoduchého modelu obnovení je po každé záloze databáze vystavena potenciální ztrátě práce, pokud by došlo k havárii. Expozice ztráty práce se zvyšuje s každou aktualizací až do další zálohy, když se expozice ztráty práce vrátí na nulu a zahájí se nový cyklus expozice ztráty práce. Expozice ztráty práce se v průběhu času mezi zálohami zvyšuje. Následující obrázek znázorňuje expozici ztráty práce pro strategii zálohování, která používá pouze úplné zálohy databáze.

diagram znázorňující expozici ztráty práce mezi zálohami databáze

Příklad (Transact-SQL)

Následující příklad ukazuje, jak vytvořit úplnou zálohu databáze pomocí WITH FORMAT k přepsání existujících záloh a vytvoření nové sady médií.

-- Back up the AdventureWorks2022 database to new media set.
BACKUP DATABASE AdventureWorks2022
    TO DISK = 'Z:\SQLServerBackups\AdventureWorksSimpleRM.bak'
    WITH FORMAT;
GO

Zálohy databáze v rámci úplného modelu obnovení

Pro databáze, které používají úplné a hromadně protokolované obnovení, jsou zálohy databáze nezbytné, ale nestačí. Vyžadují se také zálohy transakčních protokolů. Následující obrázek znázorňuje nejméně složitou strategii zálohování, která je možná v rámci celého modelu obnovení.

Diagram znázorňující řadu úplných záloh databáze a zálohování protokolů

Informace o vytváření záloh protokolů naleznete v tématu zálohování transakčních protokolů (SQL Server).

Příklad (Transact-SQL)

Následující příklad ukazuje, jak vytvořit úplnou zálohu databáze pomocí WITH FORMAT k přepsání existujících záloh a vytvoření nové sady médií. Pak příklad zálohuje transakční protokol. V reálné situaci byste museli provádět řadu pravidelných záloh protokolů. V tomto příkladu je ukázková databáze AdventureWorks2022 nastavená tak, aby používala úplný model obnovení.

USE master;
GO
ALTER DATABASE AdventureWorks2022 SET RECOVERY FULL;
GO
-- Back up the AdventureWorks2022 database to new media set (backup set 1).
BACKUP DATABASE AdventureWorks2022
  TO DISK = 'Z:\SQLServerBackups\AdventureWorks2022FullRM.bak'
  WITH FORMAT;
GO
--Create a routine log backup (backup set 2).
BACKUP LOG AdventureWorks2022 TO DISK = 'Z:\SQLServerBackups\AdventureWorks2022FullRM.bak';
GO

Obnovení databáze pomocí úplné zálohy databáze

V jednom kroku můžete znovu vytvořit celou databázi obnovením databáze z úplné zálohy databáze do libovolného umístění. Dostatek transakčního protokolu je součástí zálohy, abyste umožnili obnovení databáze do doby, kdy se zálohování dokončilo. Obnovená databáze odpovídá stavu původní databáze po dokončení zálohování databáze bez jakýchkoli nepotvrzených transakcí. V rámci úplného modelu obnovení byste pak měli obnovit všechny následné zálohy transakčních protokolů. Při obnovení databáze se vrátí nepotvrzené transakce zpět.

Další informace najdete v tématu Dokončení obnovení databáze (jednoduchý model obnovení) nebo dokončení obnovení databáze (úplný model obnovení).