Sdílet prostřednictvím


BACKUP (Transact-SQL)

Zálohuje databázi SQL.

Výběr produktu

V následujícím řádku vyberte název produktu, který vás zajímá, a zobrazí se jenom informace o daném produktu.

Další informace o konvencích syntaxe najdete v tématu Transact-SQL konvence syntaxe.

* SQL Server *  

spravované instance SQL

 

SQL Server

Zálohuje úplnou databázi SQL Serveru, aby se vytvořila záloha databáze, nebo jeden nebo více souborů nebo skupin souborů databáze k vytvoření zálohy souborů (BACKUP DATABASE). Také v rámci úplného modelu obnovení nebo modelu hromadného protokolování obnovení zálohuje transakční protokol databáze k vytvoření zálohy protokolu (PROTOKOL ZÁLOHOVÁNÍ).

Syntax

--Back up a whole database
BACKUP DATABASE { database_name | @database_name_var }
  TO <backup_device> [ ,...n ]
  [ <MIRROR TO clause> ] [ next-mirror-to ]
  [ WITH { DIFFERENTIAL
           | <general_WITH_options> [ ,...n ] } ]
[;]

--Back up specific files or filegroups
BACKUP DATABASE { database_name | @database_name_var }
 <file_or_filegroup> [ ,...n ]
  TO <backup_device> [ ,...n ]
  [ <MIRROR TO clause> ] [ next-mirror-to ]
  [ WITH { DIFFERENTIAL | <general_WITH_options> [ ,...n ] } ]
[;]

--Create a partial backup
BACKUP DATABASE { database_name | @database_name_var }
 READ_WRITE_FILEGROUPS [ , <read_only_filegroup> [ ,...n ] ]
  TO <backup_device> [ ,...n ]
  [ <MIRROR TO clause> ] [ next-mirror-to ]
  [ WITH { DIFFERENTIAL | <general_WITH_options> [ ,...n ] } ]
[;]

--Back up the transaction log (full and bulk-logged recovery models)
BACKUP LOG
  { database_name | @database_name_var }
  TO <backup_device> [ ,...n ]
  [ <MIRROR TO clause> ] [ next-mirror-to ]
  [ WITH { <general_WITH_options> | <log_specific_options> } [ ,...n ] ]
[;]

--Back up all the databases on an instance of SQL Server (a server)

ALTER SERVER CONFIGURATION
SET SUSPEND_FOR_SNAPSHOT_BACKUP ON
[;]

BACKUP SERVER
  TO <backup_device> [ ,...n ]
  [ <MIRROR TO clause> ] [ next-mirror-to ]
  [ WITH { METADATA_ONLY
           | <general_WITH_options> [ ,...n ] } ]
[;]

--Back up a group of databases
ALTER DATABASE <database>
SET SUSPEND_FOR_SNAPSHOT_BACKUP ON

ALTER DATABASE <...>
SET SUSPEND_FOR_SNAPSHOT_BACKUP ON
...

BACKUP GROUP {<database> [,... ]}
  TO <backup_device> [ ,...n ]
  [ <MIRROR TO clause> ] [ next-mirror-to ]
  [ WITH { METADATA_ONLY
           | <general_WITH_options> [ ,...n ] } ]
[;]

<backup_device>::=
 {
  { logical_device_name | @logical_device_name_var }
 | {   DISK
     | TAPE
     | URL } =
     { 'physical_device_name' | @physical_device_name_var | 'NUL' }
 }

<MIRROR TO clause>::=
 MIRROR TO <backup_device> [ ,...n ]

<file_or_filegroup>::=
 {
   FILE = { logical_file_name | @logical_file_name_var }
 | FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }
 }

<read_only_filegroup>::=
FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }

<general_WITH_options> [ ,...n ]::=
--Backup Set Options
   COPY_ONLY
 | [ COMPRESSION [ ALGORITHM = { MS_XPRESS | accelerator_algorithm } ] | NO_COMPRESSION ]
 | DESCRIPTION = { 'text' | @text_variable }
 | NAME = { backup_set_name | @backup_set_name_var }
 | CREDENTIAL
 | ENCRYPTION
 | FILE_SNAPSHOT
 | { EXPIREDATE = { 'date' | @date_var }
        | RETAINDAYS = { days | @days_var } }
 | { METADATA_ONLY | SNAPSHOT }

--Media Set Options
   { NOINIT | INIT }
 | { NOSKIP | SKIP }
 | { NOFORMAT | FORMAT }
 | MEDIADESCRIPTION = { 'text' | @text_variable }
 | MEDIANAME = { media_name | @media_name_variable }
 | BLOCKSIZE = { blocksize | @blocksize_variable }

--Data Transfer Options
   BUFFERCOUNT = { buffercount | @buffercount_variable }
 | MAXTRANSFERSIZE = { maxtransfersize | @maxtransfersize_variable }

--Error Management Options
   { NO_CHECKSUM | CHECKSUM }
 | { STOP_ON_ERROR | CONTINUE_AFTER_ERROR }

--Compatibility Options
   RESTART

--Monitoring Options
   STATS [ = percentage ]

--Tape Options
   { REWIND | NOREWIND }
 | { UNLOAD | NOUNLOAD }

--Encryption Options
 ENCRYPTION (ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY } , encryptor_options ) <encryptor_options> ::=
   SERVER CERTIFICATE = Encryptor_Name | SERVER ASYMMETRIC KEY = Encryptor_Name

<log_specific_options> [ ,...n ]::=
--Log-specific Options
   { NORECOVERY | STANDBY = undo_file_name }
 | NO_TRUNCATE

Argumenty

DATABÁZE

Určuje úplnou zálohu databáze. Pokud je zadán seznam souborů a skupin souborů, zálohují se pouze tyto soubory a skupiny souborů. Během úplného nebo rozdílového zálohování databáze SQL Server zálohuje dostatek transakčního protokolu, aby při obnovení zálohy vytvořil konzistentní databázi.

Při obnovení zálohy vytvořené službou BACKUP DATABASE (zálohování dat) se obnoví celá záloha. Do určitého času nebo transakce v rámci zálohy je možné obnovit pouze zálohu protokolu.

Poznámka

V databázi master lze provádět pouze úplnou zálohu databáze.

KLÁDA

Určuje pouze zálohu transakčního protokolu. Protokol se zálohuje z poslední úspěšně provedené zálohy protokolu na aktuální konec protokolu. Než budete moct vytvořit první zálohu protokolu, musíte vytvořit úplnou zálohu.

Zálohu protokolu můžete obnovit do určitého času nebo transakce v rámci zálohy zadáním WITH STOPAT, STOPATMARKnebo STOPBEFOREMARK v příkazu RESTORE LOG.

Poznámka

Po typickém zálohování protokolu se některé záznamy transakčního protokolu stanou neaktivní, pokud nezadáte WITH NO_TRUNCATE nebo COPY_ONLY. Protokol se zkrátí poté, co se všechny záznamy v jednom nebo několika souborech virtuálních protokolů stanou neaktivními. Pokud se protokol po zálohování rutinních protokolů nezkrátí, může se stát, že dojde ke zpoždění zkrácení protokolu. Další informace naleznete v tématu Faktory, které mohou zpozdit zkrácení protokolu.

GROUP (<databáze>,... n)

Představeno v SYSTÉMU SQL Server 2022 (16.x).

Zálohujte skupinu databází. Používá zálohování snímků. Vyžaduje METADATA_ONLY WITH. Viz Vytvořenízálohování snímků Transact-SQL .

SERVER

Představeno v SYSTÉMU SQL Server 2022 (16.x).

Zálohujte všechny databáze na instanci SQL Serveru. Používá zálohování snímků. Vyžaduje METADATA_ONLY WITH. Viz Vytvořenízálohování snímků Transact-SQL .

METADATA_ONLY

Představeno v SYSTÉMU SQL Server 2022 (16.x).

Vyžaduje se pro zálohování snímků. BACKUP SERVERnebo BACKUP GROUP... Viz Vytvořenízálohování snímků Transact-SQL .

METADATA_ONLY je synonymem funkce SNAPSHOT. Rozhraní virtuálního zařízení (VDI) používá snapshot. Informace o VDI naleznete v rozhraní virtuálního zařízení (VDI) referenční.

{ database_name | @database_name_var }

Je databáze, ze které se zálohuje transakční protokol, částečná databáze nebo úplná databáze. Pokud je zadaný jako proměnná (@database_name_var), může být tento název zadán jako řetězcová konstanta (@database_name_var=název databáze) nebo jako proměnná datového typu řetězce znaků, s výjimkou ntextové nebo textových datových typů.

Poznámka

Zrcadlení databáze v partnerství zrcadlení databáze nelze zálohovat.

<file_or_filegroup> [ ,...n ]

Používá se pouze se službou BACKUP DATABASE, určuje soubor databáze nebo skupinu souborů, které se mají zahrnout do zálohy souborů, nebo určuje soubor jen pro čtení nebo skupinu souborů, které se mají zahrnout do částečné zálohy.

FILE = { logical_file_name | @logical_file_name_var }

Je logický název souboru nebo proměnné, jejíž hodnota odpovídá logickému názvu souboru, který má být zahrnut do zálohy.

FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }

Je logický název skupiny souborů nebo proměnné, jejíž hodnota odpovídá logickému názvu skupiny souborů, která má být zahrnuta do zálohy. V rámci jednoduchého modelu obnovení je záloha skupiny souborů povolená pouze pro skupinu souborů jen pro čtení.

Poznámka

Zvažte použití záloh souborů, pokud požadavky na velikost a výkon databáze tvoří nepraktické zálohování databáze. Zařízení NUL lze použít k otestování výkonu záloh, ale nemělo by se používat v produkčních prostředích.

n
Je zástupný symbol, který označuje, že v seznamu oddělených čárkami je možné zadat více souborů a skupin souborů. Číslo je neomezené.

Další informace najdete v tématu úplné zálohování souborů a zálohování souborů a skupin souborů.

READ_WRITE_FILEGROUPS [ , FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var } [ ,...n ] ]

Určuje částečnou zálohu. Částečná záloha zahrnuje všechny soubory pro čtení a zápis v databázi: primární skupinu souborů a všechny sekundární skupiny souborů pro čtení a zápis a také všechny zadané soubory jen pro čtení nebo skupiny souborů.

READ_WRITE_FILEGROUPS

Určuje, že všechny skupiny souborů pro čtení a zápis se zálohují v částečném zálohování. Pokud je databáze jen pro čtení, READ_WRITE_FILEGROUPS zahrnuje pouze primární skupinu souborů.

Důležitý

Explicitní výpis skupin souborů pro čtení a zápis pomocí FILEGROUP místo READ_WRITE_FILEGROUPS vytvoří zálohu souborů.

FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }

Je logický název skupiny souborů jen pro čtení nebo proměnné, jejíž hodnota odpovídá logickému názvu skupiny souborů jen pro čtení, která má být zahrnuta do částečné zálohy. Další informace najdete v části "<file_or_filegroup>" výše v tomto článku.

n
Je zástupný symbol, který označuje, že v seznamu oddělených čárkami je možné zadat více skupin souborů jen pro čtení.

Další informace o částečných zálohách najdete v tématu částečné zálohy.

TO <backup_device> [ ,...n ]

Označuje, že doprovodná sada zálohovacích zařízení je buď nerušená sada médií, nebo první zrcadla v zrcadlené sadě médií (pro které je deklarována jedna nebo více klauzulí MIRROR TO).

<backup_device>
Určuje logické nebo fyzické zálohovací zařízení, které se má použít pro operaci zálohování.

{ logical_device_name | @logical_device_name_var }

platí pro: SQL Server
Je logický název zálohovaného zařízení, do kterého se databáze zálohuje. Logický název musí dodržovat pravidla pro identifikátory. Pokud je zadána jako proměnná (@logical_device_name_var), název zálohovaného zařízení lze zadat buď jako řetězcovou konstantu (@logical_device_name_var= název logického zálohovacího zařízení), nebo jako proměnnou libovolného datového typu řetězce znaků s výjimkou ntextové nebo textové datových typů.

{ DISK | PÁSKA | URL} = { 'physical_device_name' | @physical_device_name_var | 'NUL' }

platí pro: SQL Server (adresa URL počínaje SQL Serverem 2012 (11.x) SP1 CU2)

Určuje diskový soubor nebo páskové zařízení nebo adresu URL.

Formát adresy URL se používá k vytváření záloh do úložiště objektů kompatibilních s Microsoft Azure Blob Storage nebo S3. Další informace a příklady najdete tady:

Poznámka

Diskové zařízení NUL zahodí všechny informace odeslané do něj a mělo by se použít pouze k testování. To není určené pro produkční použití.

Důležitý

Počínaje SQL Serverem 2012 (11.x) SP1 CU2 až SQL Serverem 2014 (12.x) můžete zálohovat pouze na jedno zařízení při zálohování adresy URL pro Azure Blob Storage. Pokud chcete zálohovat více zařízení při zálohování na adresu URL, musíte použít SQL Server 2016 (13.x) a novější a musíte použít tokeny sdíleného přístupového podpisu (SAS). Příklady vytvoření sdíleného přístupového podpisu najdete v tématu zálohování SQL Serveru na adresu URL a Zjednodušení vytváření přihlašovacích údajů SQL s tokeny sdíleného přístupového podpisu (SAS) ve službě Azure Storage pomocí powershellového.

Diskové zařízení nemusí existovat předtím, než je zadáno v příkazu BACKUP. Pokud fyzické zařízení existuje a v příkazu BACKUP není zadána možnost INIT, připojí se k zařízení záloha.

Poznámka

Zařízení NUL zahodí veškerý vstup odeslaný do tohoto souboru, ale záloha bude dál označovat všechny stránky jako zálohované.

Další informace naleznete v tématu zálohovací zařízení.

Poznámka

Možnost TAPE se odebere v budoucí verzi SQL Serveru. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají.

n
Je zástupný symbol, který označuje, že v seznamu oddělených čárkami může být zadáno až 64 zálohovacích zařízení.

ZRCADLO <BACKUP_DEVICE> [ ,...n ]

Určuje sadu až tří sekundárních zálohovacích zařízení, z nichž každá zrcadlí zálohovaná zařízení zadaná v klauzuli TO. Klauzule MIRROR TO musí určovat stejný typ a počet zálohovaných zařízení jako klauzule TO. Maximální počet klauzulí MIRROR TO je tři.

Tato možnost je dostupná pouze v edici Enterprise SQL Serveru.

Poznámka

Pro MIRROR TO = DISKslužba BACKUP automaticky určí odpovídající velikost bloku pro disková zařízení na základě velikosti sektorů disku. Pokud je disk MIRROR TO naformátovaný s jinou velikostí sektorů, než je disk určený jako primární zálohovací zařízení, příkaz pro zálohování selže. Aby bylo možné zrcadlit zálohy na zařízení s různými velikostmi sektorů, musí být zadán parametr BLOCKSIZE a měl by být nastaven na nejvyšší velikost sektorů mezi všemi cílovými zařízeními. Další informace o velikosti bloku naleznete v části BLOCKSIZE dále v tomto tématu.

<backup_device>
Viz "<backup_device>" výše v této části.

n
Je zástupný symbol, který označuje, že v seznamu oddělených čárkami může být zadáno až 64 zálohovacích zařízení. Počet zařízení v klauzuli MIRROR TO se musí shodovat s počtem zařízení v klauzuli TO.

Další informace naleznete v části "Rodiny médií v zrcadlených sadách médií" v části Poznámky dále v tomto článku.

[ další zrcadlení ]
Je zástupný symbol, který označuje, že jeden příkaz BACKUP může kromě jedné klauzule TO obsahovat až tři klauzule MIRROR TO.

MOŽNOSTI WITH

Určuje možnosti, které se mají použít s operací zálohování.

POVĚŘENÍ

platí pro: SQL Server (počínaje verzí 2012 (11.x) SP1 CU2).

Používá se pouze při vytváření zálohy do služby Azure Blob Storage.

FILE_SNAPSHOT

platí pro: SQL Server (počínaje SQL Serverem 2016 (13.x)).

Používá se k vytvoření snímku databáze Azure, pokud jsou všechny soubory databáze SQL Serveru uložené pomocí služby Azure Blob Storage. Další informace najdete v tématu datových souborů SQL Serveru v Microsoft Azure. Zálohování snímků SQL Serveru vytváří snímky databázových souborů (souborů dat a protokolů) v konzistentním stavu. Konzistentní sada snímků Azure tvoří zálohu a zaznamenává se v záložním souboru. Jediným rozdílem mezi BACKUP DATABASE TO URL WITH FILE_SNAPSHOT a BACKUP LOG TO URL WITH FILE_SNAPSHOT je, že druhá zkrátí také transakční protokol, zatímco předtím ne. Při zálohování snímků SQL Serveru je po počáteční úplné zálohování, které sql Server vyžaduje k vytvoření řetězu záloh, k obnovení databáze k bodu v čase zálohování transakčního protokolu pouze jedna záloha transakčního protokolu. Kromě toho se k obnovení databáze k určitému bodu v čase mezi dvěma zálohami transakčních protokolů vyžadují pouze dvě zálohy transakčních protokolů.

DIFERENCIÁL

Používá se jenom se službou BACKUP DATABASE, určuje, že by se záloha databáze nebo souboru měla skládat pouze z částí databáze nebo souboru, které se změnily od poslední úplné zálohy. Rozdílové zálohování obvykle zabírá méně místa než úplné zálohování. Tuto možnost použijte, aby se nemusely použít všechny jednotlivé zálohy protokolů provedené od poslední úplné zálohy.

Poznámka

Ve výchozím nastavení BACKUP DATABASE vytvoří úplnou zálohu.

Další informace naleznete v tématu rozdílové zálohování.

ŠIFROVÁNÍ

Slouží k určení šifrování zálohy. Můžete zadat šifrovací algoritmus pro šifrování zálohování nebo zadat NO_ENCRYPTION, aby zálohování nebylo šifrované. Doporučuje se šifrování, které pomáhá zabezpečit záložní soubory. Seznam algoritmů, které můžete zadat, jsou:

  • AES_128
  • AES_192
  • AES_256
  • TRIPLE_DES_3KEY
  • NO_ENCRYPTION

Pokud se rozhodnete šifrovat, budete také muset určit šifrátor pomocí možností šifrovače:

  • SERVER CERTIFICATE = Encryptor_Name
  • SERVER ASYMMETRIC KEY = Encryptor_Name

SERVER CERTIFICATE a SERVER ASYMMETRIC KEY jsou certifikát a asymetrický klíč vytvořený v databázi master. Další informace najdete v tématu CREATE CERTIFICATE a CREATE ASYMMETRIC KEY.

Varování

Při použití šifrování ve spojení s argumentem FILE_SNAPSHOT se samotný soubor metadat zašifruje pomocí zadaného šifrovacího algoritmu a systém ověří, že transparentní šifrování dat (TDE) pro databázi dokončeno. U samotných dat nedojde k žádnému dalšímu šifrování. Zálohování selže, pokud databáze nebyla šifrovaná nebo pokud se šifrování nedokončilo před vydáním příkazu zálohování.

Možnosti sady záloh

Tyto možnosti fungují se sadou zálohování vytvořenou touto operací zálohování.

Poznámka

Pokud chcete zadat sadu záloh pro operaci obnovení, použijte možnost FILE = <backup_set_file_number>. Další informace o tom, jak určit sadu záloh, naleznete v tématu "Určení zálohovací sady" v argumenty RESTORE.

COPY_ONLY

Určuje, že zálohování je zálohování pouze kopírování, což nemá vliv na normální sekvenci záloh. Záloha jen pro kopírování se vytváří nezávisle na pravidelně naplánovaných konvenčních zálohách. Zálohování jen pro kopírování nemá vliv na celkové postupy zálohování a obnovení databáze.

Zálohy jen pro kopírování by se měly používat v situacích, kdy se záloha provádí pro zvláštní účely, například zálohování protokolu před obnovením online souboru. Obvykle se jednou použije záloha protokolu jen pro kopírování a pak se odstraní.

  • Při použití s BACKUP DATABASEvytvoří možnost COPY_ONLY úplnou zálohu, která nemůže sloužit jako rozdílová základna. Rozdílový rastrový obrázek se neaktualizuje a rozdílové zálohy se chovají, jako by záloha jen pro kopírování neexistuje. Následné rozdílové zálohy používají jako základ nejnovější konvenční úplné zálohování.

    Důležitý

    Pokud se společně používají DIFFERENTIAL a COPY_ONLY, COPY_ONLY se ignoruje a vytvoří se rozdílové zálohování.

  • Při použití s BACKUP LOGmožnost COPY_ONLY vytvoří zálohování protokolu jen pro kopírování, což nezkrátí transakční protokol. Zálohování protokolu jen pro kopírování nemá žádný vliv na řetěz protokolů a jiné zálohy protokolů se chovají, jako by záloha jen pro kopírování neexistuje.

Další informace naleznete v tématu Copy-Only zálohování.

[ KOMPRESE [ ALGORITMUS = ( { MS_XPRESS | accelerator_algorithm } ) ] | NO_COMPRESSION ]

Určuje, zda komprese zálohování se provádí u této zálohy a přepisuje výchozí nastavení na úrovni serveru.

Při instalaci není výchozí chování komprese zálohování. Toto výchozí nastavení ale můžete změnit nastavením výchozí komprese zálohování serveru. Informace o zobrazení aktuální hodnoty této možnosti naleznete v tématu Zobrazit nebo Změnit vlastnosti serveru.

Informace o použití komprese záloh s transparentním šifrováním dat (TDE) databázemi, najdete v části Poznámky.

KOMPRESE
Explicitně povolí kompresi záloh.

NO_COMPRESSION
Explicitně zakáže kompresi zálohování.

SQL Server 2022 (16.x) zavádí ALGORITHM, který identifikuje algoritmus komprese operace. Výchozí hodnota je MS_XPRESS. Pokud jste nakonfigurovali integrované zrychlení a snižování zátěže, můžete použít akcelerátor poskytovaný řešením. Pokud jste například nakonfigurovali Technologie Intel® QuickAssist Technology (QAT) pro SQL Server, následující příklad dokončí zálohování pomocí řešení akcelerátoru s knihovnou QATzip pomocí QZ_DEFLATE s úrovní komprese 1.

BACKUP DATABASE <database_name> TO DISK WITH COMPRESSION (ALGORITHM = QAT_DEFLATE) 

DESCRIPTION = { 'text' | @text_variable }

Určuje volný text popisující zálohovací sadu. Řetězec může mít maximálně 255 znaků.

NAME = { backup_set_name | @backup_set_var }

Určuje název zálohovací sady. Názvy můžou mít maximálně 128 znaků. Pokud není zadaný název, je prázdný.

{ EXPIREDATE ='datum' | RETAINDAYS = dny }

Určuje, kdy lze přepsat zálohovací sadu pro tuto zálohu. Pokud se obě tyto možnosti použijí, má funkce RETAINDAYS přednost před vypršením platnosti.

Pokud není zadána žádná možnost, určuje datum vypršení platnosti nastavení konfigurace media retention. Další informace naleznete v tématu Možnosti konfigurace serveru.

Důležitý

Tyto možnosti brání sql Serveru pouze v přepsání souboru. Pásky lze vymazat jinými metodami a diskové soubory lze odstranit prostřednictvím operačního systému. Další informace o ověření vypršení platnosti najdete v části SKIP a FORMAT v tomto tématu.

DATUM VYPRŠENÍ PLATNOSTI = { 'datum' | @date_var }
Určuje, kdy vyprší platnost sady záloh a lze ji přepsat. Pokud je zadána jako proměnná (@date_var), musí toto datum následovat podle nakonfigurovaného systémového formátu datetime a musí být zadán jako jeden z následujících:

  • Řetězcová konstanta (@date_var= datum)
  • Proměnná datového typu řetězce znaků (s výjimkou ntextových nebo textových datových typů)
  • smalldatetime
  • Proměnná data a času

Například:

  • 'Dec 31, 2020 11:59 PM'
  • '1/1/2021'

Informace o tom, jak zadat hodnoty data a času, najdete v tématu typy data a času.

Poznámka

Pokud chcete datum vypršení platnosti ignorovat, použijte možnost SKIP.

RETAINDAYS = { dny | @days_var }
Určuje počet dní, které musí uplynou před přepsání této zálohovací sady médií. Pokud je zadaná jako proměnná (@days_var), musí být zadána jako celé číslo.

{ METADATA_ONLY | SNAPSHOT }

platí pro: SQL Server 2022 (16.x)

METADATA_ONLY a SNAPSHOT jsou synonyma.

Možnosti sady médií

Tyto možnosti fungují na sadě médií jako celku.

{ NOINIT | INIT }

Určuje, jestli se operace zálohování připojí nebo přepíše existující sady záloh na záložním médiu. Výchozí hodnota je připojit k nejnovější zálohovací sadě na médiu (NOINIT).

Poznámka

Informace o interakcích mezi { NOINIT | INIT } a { NOSKIP | SKIP }, viz Poznámky dále v tomto tématu.

NOINIT
Označuje, že sada záloh je připojena k zadané sadě médií a zachovává stávající zálohovací sady. Pokud je pro sadu médií definováno heslo média, musí být zadáno heslo. Funkce NOINIT je výchozí.

Další informace naleznete v tématu sady médií, rodiny médií a sady záloh.

INIT
Určuje, že všechny zálohovací sady by měly být přepsány, ale zachová hlavičku média. Pokud je zadána hodnota INIT, všechny existující zálohovací sady na tomto zařízení se přepíší, pokud to podmínky povolují. Ve výchozím nastavení služba BACKUP kontroluje následující podmínky a nepřepíše záložní médium, pokud existuje některý z podmínek:

  • Platnost žádné sady záloh ještě nevypršela. Další informace najdete v možnostech EXPIREDATE a RETAINDAYS.
  • Název sady záloh zadaný v příkazu BACKUP (pokud je zadaný) neodpovídá názvu na záložním médiu. Další informace najdete v části NÁZEV výše v této části.

Pokud chcete tyto kontroly přepsat, použijte možnost SKIP.

Další informace naleznete v tématu sady médií, rodiny médií a sady záloh.

{ NOSKIP | SKIP }

Určuje, jestli operace zálohování kontroluje datum vypršení platnosti a čas sad záloh na médiu před jejich přepsáním.

Poznámka

Informace o interakcích mezi { NOINIT | INIT } a { NOSKIP | SKIP }, viz "Poznámky", dále v tomto tématu.

NOSKIP
Před povolením přepsání dá příkazu BACKUP pokyn, aby zkontroloval datum vypršení platnosti všech sad záloh na médiu. Toto je výchozí chování.

PŘESKOČIT
Zakáže kontrolu vypršení platnosti a názvu sady zálohování, kterou obvykle provádí příkaz BACKUP, aby se zabránilo přepsání sad záloh. Informace o interakcích mezi { INIT | NOINIT } a { NOSKIP | SKIP }, viz "Poznámky", dále v tomto článku. Pokud chcete zobrazit data vypršení platnosti sad záloh, zadejte dotaz na sloupec expiration_date tabulky historie zálohovací sady.

{ NOFORMAT | FORMAT }

Určuje, jestli má být hlavička média zapsaná na svazcích používaných pro tuto operaci zálohování, přepsání všech existujících hlaviček médií a sad záloh.

NOFORMAT
Určuje, že operace zálohování zachovává stávající hlavičku média a sady záloh na svazcích médií používaných pro tuto operaci zálohování. Toto je výchozí chování.

FORMÁT
Určuje, že se vytvoří nová sada médií. Funkce FORMAT způsobí, že operace zálohování zapíše novou hlavičku média na všech svazcích médií používaných pro operaci zálohování. Stávající obsah svazku se stane neplatným, protože se přepíší všechny existující hlavičky médií a sady záloh.

Důležitý

Pečlivě používejte FORMAT. Formátování libovolného svazku sady médií vykreslí celou sadu médií, která je nepoužitelná. Pokud například inicializujete jednu pásku, která patří do existující sady pruhovaných médií, celá sada médií se vykreslí bez použití.

Určení formátu znamená SKIP; SKIP není nutné explicitně uvést.

MEDIADESCRIPTION = { text | @text_variable }

Určuje popis volného textu, maximálně 255 znaků sady médií.

MEDIANAME = { media_name | @media_name_variable }

Určuje název média pro celou sadu záložních médií. Název média nesmí být delší než 128 znaků. Pokud je zadán MEDIANAME, musí se shodovat s dříve zadaným názvem média, který již existuje na záložních svazcích. Pokud není zadán, nebo pokud je zadána možnost PŘESKOČIT, neexistuje žádná kontrola ověření názvu média.

BLOCKSIZE = { blocksize | @blocksize_variable }

Určuje velikost fyzického bloku v bajtech. Podporované velikosti jsou 512, 1024, 2048, 4096, 8192, 16384, 32768 a 65536 (64 kB). Výchozí hodnota je 65536 pro pásková zařízení a v opačném případě 512. Tato možnost je obvykle nepotřebná, protože služba BACKUP automaticky vybere velikost bloku, která je pro zařízení vhodná. Explicitní vyjádření velikosti bloku přepíše automatický výběr velikosti bloku.

Pokud vytváříte zálohu, do které chcete kopírovat a obnovovat z disku CD-ROM, zadejte BLOCKSIZE=2048.

Poznámka

Tato možnost obvykle ovlivňuje výkon pouze při zápisu na pásková zařízení.

Možnosti přenosu dat

BUFFERCOUNT = { buffercount | @buffercount_variable }

Určuje celkový počet vstupně-výstupních vyrovnávacích pamětí, které se mají použít pro operaci zálohování. Můžete zadat libovolné kladné celé číslo; Velký počet vyrovnávacích pamětí však může způsobit chyby "nedostatek paměti" kvůli nedostatečnému virtuálnímu adresnímu prostoru v procesu Sqlservr.exe.

Celková velikost využitá vyrovnávacími pamětí je určena: BUFFERCOUNT * MAXTRANSFERSIZE.

Poznámka

Důležité informace o použití možnosti BUFFERCOUNT naleznete v tématu Nesprávná možnost bufferCount přenos dat může vést k podmínce OOM blogu.

MAXTRANSFERSIZE = { maxtransfersize | @ maxtransfersize_variable }

Určuje největší jednotku přenosu v bajtech, které se mají použít mezi SQL Serverem a záložním médium. Možné hodnoty jsou násobky 65536 bajtů (64 kB) v rozsahu až 4194304 bajtů (4 MB). V konkrétním případě zálohování na úložiště objektů kompatibilních s S3 je MAXTRANSFERSIZE 10 MB. Další informace naleznete v tématu Poznámky.

Pokud databáze nakonfigurovala FILESTREAMnebo zahrnujepaměť optimalizované pro skupiny souborů, měla by být v době obnovení větší nebo rovna použitému při vytváření zálohy.

U transparentního šifrování dat (TDE) databází s jedním datovým souborem je výchozí MAXTRANSFERSIZE 65536 (64 kB). U databází, které nejsou šifrované transparentním šifrováním dat, je výchozí MAXTRANSFERSIZE při použití zálohování na DISK 1048576 (1 MB) a při použití VDI nebo TAPE 65536 (64 kB). Další informace o použití komprese zálohování s šifrovanými databázemi transparentním šifrováním dat najdete v části Poznámky.

Možnosti správy chyb

Tyto možnosti umožňují určit, jestli jsou pro operaci zálohování povolené kontrolní součty zálohování a jestli se operace zastaví při výskytu chyby.

{ NO_CHECKSUM | CHECKSUM }

Určuje, jestli jsou povoleny kontrolní součty zálohování.

NO_CHECKSUM
Explicitně zakáže generování kontrolních součtů zálohování (a ověření kontrolních součtů stránek). Toto je výchozí chování.

KONTROLNÍ SOUČET
Určuje, že operace zálohování ověřuje každou stránku kontrolního součtu a stránky roztrhané, pokud jsou povolené a dostupné, a vygeneruje kontrolní součet pro celou zálohu.

Použití kontrolních součtů zálohování může mít vliv na propustnost úloh a zálohování.

Další informace naleznete v tématu Možné chyby médií při zálohování a obnovení.

{ STOP_ON_ERROR | CONTINUE_AFTER_ERROR }

Určuje, jestli se operace zálohování zastaví nebo pokračuje po výskytu chyby kontrolního součtu stránky.

STOP_ON_ERROR
Dává službě BACKUP pokyn, aby selhal, pokud kontrolní součet stránky neověří. Toto je výchozí chování.

CONTINUE_AFTER_ERROR
Dává službě BACKUP pokyn, aby pokračoval i přes výskyt chyb, jako jsou neplatné kontrolní součty nebo stránky roztrhané.

Pokud se vám nedaří zálohovat konec protokolu pomocí možnosti NO_TRUNCATE při poškození databáze, můžete zkusit zálohování protokolu tail-log zadáním CONTINUE_AFTER_ERROR místo NO_TRUNCATE.

Další informace naleznete v tématu Možné chyby médií při zálohování a obnovení.

Možnosti kompatibility

RESTARTOVAT

Od SQL Serveru 2008 (10.0.x) nemá žádný vliv. Tato možnost je přijata verzí kvůli kompatibilitě s předchozími verzemi SQL Serveru.

Možnosti monitorování

STATS [ = procento ]

Zobrazí zprávu pokaždé, když se další procento dokončí, a použije se k měření průběhu. Pokud procento vynecháte, SQL Server po dokončení každého 10 procent zobrazí zprávu.

Možnost STATS hlásí procento dokončení jako prahovou hodnotu pro vykazování dalšího intervalu. Jedná se o přibližně zadané procento; Pokud je například s STATS=10 dokončená částka 40 procent, může se v této možnosti zobrazit 43 procent. U velkých sad zálohování to není problém, protože procento dokončení se mezi dokončeným vstupně-výstupním voláním přesouvá velmi pomalu.

Možnosti pásky

Tyto možnosti se používají jenom pro zařízení TAPE. Pokud se používá jiné zařízení, budou tyto možnosti ignorovány.

{ REWIND | NOREWIND }

PŘETOČIT
Určuje, že SQL Server uvolní a převinou pásku zpět. Funkce REWIND je výchozí.

NOREWIND
Určuje, že SQL Server ponechá pásku otevřenou po operaci zálohování. Tuto možnost můžete použít ke zlepšení výkonu při provádění více operací zálohování na pásku.

NOREWIND znamená NOUNLOAD a tyto možnosti jsou nekompatibilní v rámci jednoho příkazu BACKUP.

Poznámka

Pokud používáte NOREWIND, instance SQL Serveru si zachová vlastnictví páskové jednotky, dokud příkaz BACKUP nebo RESTORE spuštěný ve stejném procesu použije možnost REWIND nebo UNLOAD nebo je instance serveru vypnuta. Když pásku necháte otevřenou, zabráníte jiným procesům v přístupu k pásce. Informace o tom, jak zobrazit seznam otevřených pásek a zavřít otevřenou pásku, naleznete v tématu zálohovací zařízení.

{ UNLOAD | NOUNLOAD }

Poznámka

UNLOAD a NOUNLOAD jsou nastavení relace, která se uchovávají po dobu životnosti relace nebo dokud není resetována zadáním alternativní možnosti.

VYLOŽIT
Určuje, že páska se po dokončení zálohování automaticky znovu přepíná a uvolní. Funkce UNLOAD je výchozí při zahájení relace.

NOUNLOAD
Určuje, že po operaci BACKUP zůstane páska načtena na páskovou jednotku.

Poznámka

Pokud chcete zálohovat zařízení na pásku, BLOCKSIZE možnost ovlivnit výkon operace zálohování. Tato možnost obvykle ovlivňuje výkon pouze při zápisu na pásková zařízení.

Možnosti specifické pro protokol

Tyto možnosti se používají pouze s BACKUP LOG.

Poznámka

Pokud nechcete zálohovat protokoly, použijte jednoduchý model obnovení. Další informace naleznete v tématu modely obnovení.

{ NORECOVERY | POHOTOVOSTNÍ REŽIM = undo_file_name }

NORECOVERY
Zálohuje konec protokolu a ponechá databázi ve stavu OBNOVENÍ. FUNKCE NORECOVERY je užitečná při převzetí služeb při selhání sekundární databáze nebo při ukládání koncového protokolu před operací RESTORE.

Pokud chcete provést zálohování protokolu s nejlepším úsilím, které přeskočí zkrácení protokolu, a pak převezměte databázi do stavu OBNOVENÍ atomicky, použijte NO_TRUNCATE a NORECOVERY možnosti společně.

POHOTOVOSTNÍ =STANDBY_FILE_NAME
Zálohuje konec protokolu a ponechá databázi ve stavu jen pro čtení a pohotovostní režim. Klauzule STANDBY zapisuje pohotovostní data (provádí vrácení zpět, ale s možností dalšího obnovení). Použití možnosti POHOTOVOSTNÍ REŽIM je ekvivalentní PROTOKOLU ZÁLOHOVÁNÍ S NORECOVERY následované FUNKCÍ RESTORE WITH STANDBY.

Použití pohotovostního režimu vyžaduje pohotovostní soubor určený standby_file_name, jehož umístění je uloženo v protokolu databáze. Pokud zadaný soubor již existuje, databázový stroj ho přepíše; pokud soubor neexistuje, databázový stroj ho vytvoří. Pohotovostní soubor se stane součástí databáze.

Tento soubor obsahuje vrácené změny, které je nutné vrátit zpět, pokud se následně použijí operace RESTORE LOG. Aby se soubor pohotovostního režimu zvětšil, musí být dostatek místa na disku, aby mohl obsahovat všechny odlišné stránky od databáze, které byly změněny vrácením nepotvrzených transakcí.

NO_TRUNCATE

Určuje, že transakční protokol by neměl být zkrácen a způsobí, že databázový stroj se pokusí o zálohování bez ohledu na stav databáze. V důsledku toho může mít záloha pořízená s NO_TRUNCATE neúplná metadata. Tato možnost umožňuje zálohování transakčního protokolu v situacích, kdy je databáze poškozena.

Možnost NO_TRUNCATE protokolu ZÁLOHOVÁNÍ odpovídá zadání COPY_ONLY i CONTINUE_AFTER_ERROR.

Bez možnosti NO_TRUNCATE musí být databáze ve stavu ONLINE. Pokud je databáze ve stavu SUSPENDED, můžete vytvořit zálohu zadáním NO_TRUNCATE. Pokud je ale databáze ve stavu OFFLINE nebo nouzového stavu, zálohování není povoleno ani s NO_TRUNCATE. Informace o stavech databáze naleznete v tématu Stav databáze.

Práce se zálohami SQL Serveru

Tato část představuje následující základní koncepty zálohování:

typy zálohovánízkrácení transakčního protokoluformátování záložního médiapráce se zálohovanými zařízeními a sadami médiíobnovení záloh SQL Serveru

Poznámka

Úvod k zálohování na SQL Serveru najdete v tématu Přehled zálohování.

Typy zálohování

Podporované typy zálohování závisí na modelu obnovení databáze následujícím způsobem:

  • Všechny modely obnovení podporují úplné a rozdílové zálohy dat.

    Rozsah zálohování Typy zálohování
    Celá databáze zálohy databáze pokrývají celou databázi.

    Volitelně může každá záloha databáze sloužit jako základ jedné nebo více rozdílových záloh databáze.
    Částečná databáze částečné zálohy pokrývají skupiny souborů jen pro čtení a zápis a případně jeden nebo více souborů jen pro čtení nebo skupiny souborů.

    Volitelně může každá částečná záloha sloužit jako základ jedné nebo více rozdílových částečných záloh.
    Soubor nebo skupina souborů zálohování souborů pokrývají jeden nebo více souborů nebo skupin souborů a jsou relevantní pouze pro databáze, které obsahují více skupin souborů. V rámci jednoduchého modelu obnovení jsou zálohy souborů v podstatě omezené na sekundární skupiny souborů jen pro čtení.
    Volitelně může každá záloha souborů sloužit jako základ jedné nebo více rozdílových záloh souborů.
  • V rámci úplného modelu obnovení nebo modelu hromadného protokolování obnovení zahrnují konvenční zálohy také sekvenční zálohy transakčních protokolů (nebo zálohování protokolů), které jsou potřeba. Každá záloha protokolu pokrývá část transakčního protokolu, která byla aktivní při vytvoření zálohy, a zahrnuje všechny záznamy protokolu, které nebyly zálohovány v předchozím zálohování protokolů.

    Pokud chcete minimalizovat expozici ztráty práce, měli byste naplánovat časté zálohování protokolů za cenu administrativní režie. Plánování rozdílových záloh mezi úplnými zálohami může zkrátit dobu obnovení snížením počtu záloh protokolů, které musíte obnovit po obnovení dat.

    Doporučujeme umístit zálohy protokolů na samostatný svazek než zálohy databáze.

    Poznámka

    Než budete moct vytvořit první zálohu protokolu, musíte vytvořit úplnou zálohu.

  • zálohování pouze pro kopírování je záloha úplného zálohování nebo protokolu pro zvláštní účely, která je nezávislá na normální sekvenci konvenčních záloh. Pokud chcete vytvořit zálohu jen pro kopírování, zadejte v příkazu BACKUP možnost COPY_ONLY. Další informace naleznete v tématu Copy-Only zálohování.

Zkrácení transakčního protokolu

Aby se zabránilo zaplnění transakčního protokolu databáze, jsou rutinní zálohy nezbytné. V rámci jednoduchého modelu obnovení dojde k zkrácení protokolu automaticky po zálohování databáze a pod úplným modelem obnovení po zálohování transakčního protokolu. Někdy ale může dojít ke zpoždění procesu zkrácení. Informace o faktorech, které mohou zpozdit zkrácení protokolu, naleznete v tématu Transakční protokol.

Poznámka

Možnosti BACKUP LOG WITH NO_LOG a WITH TRUNCATE_ONLY byly ukončeny. Pokud používáte úplné nebo hromadně protokolované obnovení modelu obnovení a musíte z databáze odebrat řetěz zálohování protokolů, přepněte na jednoduchý model obnovení. Další informace naleznete v tématu Zobrazení nebo změna modelu obnovení databáze.

Formátování záložního média

Záložní médium je formátováno příkazem BACKUP, pokud platí některá z následujících možností:

  • Je zadána možnost FORMAT.
  • Médium je prázdné.
  • Operace píše pásku pro pokračování.

Práce se záložními zařízeními a sadami médií

Zálohovat zařízení v pruhované sadě médií (sada pruhů)

Sada pruhů je sada souborů disku, na kterých jsou data rozdělena do bloků a distribuovaných v pevném pořadí. Počet zálohovaných zařízení používaných v pruhové sadě musí zůstat stejný (pokud není médium znovu inicializováno pomocí FORMAT).

Následující příklad zapíše zálohu databáze AdventureWorks2022 do nové prokládání sady médií, která používá tři diskové soubory.

BACKUP DATABASE AdventureWorks2022
TO DISK = 'X:\SQLServerBackups\AdventureWorks1.bak',
DISK = 'Y:\SQLServerBackups\AdventureWorks2.bak',
DISK = 'Z:\SQLServerBackups\AdventureWorks3.bak'
WITH FORMAT,
  MEDIANAME = 'AdventureWorksStripedSet0',
  MEDIADESCRIPTION = 'Striped media set for AdventureWorks2022 database';
GO

Jakmile je zálohovací zařízení definováno jako součást sady prokládání, nelze ho použít pro zálohování jednoho zařízení, pokud není zadán formát. Podobně nelze zálohovací zařízení, které obsahuje nestridované zálohy, použít v pruhové sadě, pokud není zadán formát. Pokud chcete rozdělit pruhovanou záložní sadu, použijte funkci FORMAT.

Pokud není při zápisu hlavičky média zadán ani MEDIADESCRIPTION, pole záhlaví média odpovídající prázdné položce je prázdné.

Práce se zrcadlenou sadou médií

Zálohy jsou obvykle nerušené a příkazy BACKUP jednoduše obsahují klauzuli TO. Pro každou sadu médií je však možné vytvořit celkem čtyři zrcadla. U zrcadlené sady médií zapisuje operace zálohování do více skupin zálohovaných zařízení. Každá skupina zálohovaných zařízení se skládá z jednoho zrcadlení v sadě zrcadlených médií. Každé zrcadlo musí používat stejné množství a typ fyzických zálohovaných zařízení, která musí mít stejné vlastnosti.

Aby bylo možné zálohovat zrcadlenou sadu médií, musí být k dispozici všechna zrcadla. Pokud chcete zálohovat do zrcadlené sady médií, zadejte klauzuli TO, která určuje první zrcadlo, a zadejte MIRROR TO klauzuli pro každé další zrcadlo.

U zrcadlené sady médií musí každá klauzule MIRROR TO obsahovat stejný počet a typ zařízení jako klauzule TO. Následující příklad zapíše do zrcadlené sady médií, která obsahuje dvě zrcadla a používá tři zařízení na zrcadlo:

BACKUP DATABASE AdventureWorks2022
TO DISK = 'X:\SQLServerBackups\AdventureWorks1a.bak',
  DISK = 'Y:\SQLServerBackups\AdventureWorks2a.bak',
  DISK = 'Z:\SQLServerBackups\AdventureWorks3a.bak'
MIRROR TO DISK='X:\SQLServerBackups\AdventureWorks1b.bak',
  DISK = 'Y:\SQLServerBackups\AdventureWorks2b.bak',
  DISK = 'Z:\SQLServerBackups\AdventureWorks3b.bak';
GO

Důležitý

Tento příklad je navržený tak, abyste ho mohli otestovat v místním systému. V praxi by zálohování na více zařízeních na stejné jednotce poškodilo výkon a vyloučilo by redundanci, pro kterou jsou navrženy zrcadlené sady médií.

Rodiny médií v zrcadlených sadách médií

Každé zálohovací zařízení zadané v klauzuli TO příkazu BACKUP odpovídá rodině médií. Pokud například klauzule TO uvádí tři zařízení, služba BACKUP zapíše data do tří rodin médií. V sadě zrcadlených médií musí každé zrcadlení obsahovat kopii každé řady médií. Proto musí být počet zařízení v každém zrcadle shodný.

Pokud je pro každé zrcadlo uvedeno více zařízení, pořadí zařízení určuje, která řada médií je zapsána do konkrétního zařízení. Například v každém seznamu zařízení odpovídá druhé skupině médií druhé zařízení. V případě zařízení v předchozím příkladu se korespondence mezi zařízeními a rodinami médií zobrazuje v následující tabulce.

Zrcadlo Rodina médií 1 Rodina médií 2 Rodina médií 3
0 Z:\AdventureWorks1a.bak Z:\AdventureWorks2a.bak Z:\AdventureWorks3a.bak
1 Z:\AdventureWorks1b.bak Z:\AdventureWorks2b.bak Z:\AdventureWorks3b.bak

Řada médií musí být vždy zálohována na stejné zařízení v rámci určitého zrcadla. Proto při každém použití existující sady médií vypíše seznam zařízení každého zrcadla ve stejném pořadí, v jakém byly zadány při vytvoření sady médií.

Další informace o zrcadlených sadách médií naleznete v tématu Zrcadlené záložní sady médií. Další informace o sadách médií a rodinách médií obecně naleznete v tématu Sady médií, rodiny médií a zálohovací sady.

Obnovení záloh SQL Serveru

Pokud chcete obnovit databázi a volitelně ji obnovit do režimu online nebo obnovit soubor nebo skupinu souborů, použijte příkaz Transact-SQL RESTORE nebo sql Server Management Studio úlohy obnovení. Další informace najdete v tématu Přehled obnovení a obnovení.

Další důležité informace o možnostech zálohování

Interakce SKIP, NOSKIP, INIT a NOINIT

Tato tabulka popisuje interakce mezi { NOINIT | INIT } a { NOSKIP | PŘESKOČIT } možnosti.

Poznámka

Pokud je páskové médium prázdné nebo záložní soubor disku neexistuje, všechny tyto interakce zapíšou hlavičku média a budou pokračovat. Pokud médium není prázdné a nemá platnou hlavičku média, tyto operace poskytují zpětnou vazbu s oznámením, že toto není platné médium MTF a ukončí operaci zálohování.

Možnost Přeskočit NOINIT INIT
NOSKIP Pokud svazek obsahuje platnou hlavičku média, ověří, že název média odpovídá danému MEDIANAME, pokud existuje. Pokud se shoduje, připojí sadu záloh a zachová všechny existující sady záloh.
Pokud svazek neobsahuje platnou hlavičku média, dojde k chybě.
Pokud svazek obsahuje platnou hlavičku média, provede následující kontroly:
  • Pokud jste zadali MEDIANAME, ověří se, že daný název média odpovídá názvu média záhlaví média.1
  • Ověřuje, že na médiu ještě nejsou žádné nevyzkoušané záložní sady. Pokud existuje, ukončí zálohování.

Pokud tyto kontroly projdou, přepíše všechny zálohovací sady na médiu a zachová pouze hlavičku média.
Pokud svazek neobsahuje platnou hlavičku média, vygeneruje ji pomocí zadané MEDIANAME a MEDIADESCRIPTION, pokud existuje.
PŘESKOČIT Pokud svazek obsahuje platné záhlaví média, připojí sadu záloh a zachová všechny existující sady záloh. Pokud svazek obsahuje platnou2 záhlaví média, přepíše všechny záložní sady na médiu a zachová pouze záhlaví média.
Pokud je médium prázdné, vygeneruje záhlaví média pomocí zadaného MEDIANAME a MEDIADESCRIPTION, pokud existuje.

1 Uživatel musí patřit do odpovídajících pevných databázových nebo serverových rolí, aby mohl provést operaci zálohování.

2 platnost zahrnuje číslo verze MTF a další informace hlavičky. Pokud zadaná verze není podporována nebo je neočekávaná hodnota, dojde k chybě.

Kompatibilita

Opatrnost

Zálohy vytvořené novější verzí SQL Serveru nelze obnovit v dřívějších verzích SQL Serveru.

BACKUP podporuje možnost RESTART zajistit zpětnou kompatibilitu se staršími verzemi SQL Serveru. Restartování ale nemá žádný vliv.

Poznámky

Zálohy databází nebo protokolů je možné připojit k libovolnému disku nebo páskovým zařízením, což umožňuje uchovávat databáze a protokoly transakcí v jednom fyzickém umístění.

Příkaz BACKUP není povolen v explicitní nebo implicitní transakci.

Databázi nejde zálohovat v následujících stavech:

  • Obnovování
  • Pohotovostní režim
  • Jen pro čtení

Operace zálohování napříč platformami, a to i mezi různými typy procesoru, lze provádět, pokud operační systém podporuje kolaci databáze.

Počínaje SQL Serverem 2016 (13.x), nastavení MAXTRANSFERSIZEvětší než 65536 (64 kB) umožňuje optimalizovaný algoritmus komprese pro transparentní šifrování dat (TDE) šifrovaných databází, které nejprve dešifrují stránku, komprimují ho a pak ho znovu zašifrují. Pokud není zadán MAXTRANSFERSIZE nebo pokud se používá MAXTRANSFERSIZE = 65536 (64 kB), komprese záloh s šifrovanými databázemi transparentním šifrováním dat přímo komprimuje šifrované stránky a nemusí přinést dobrý poměr komprese. Další informace naleznete v tématu Komprese zálohování pro databáze s podporou transparentního šifrování dat.

Od verze SQL Server 2019 (15.x) CU5 už nastavení MAXTRANSFERSIZE nevyžaduje povolení tohoto optimalizovaného komprimačního algoritmu pomocí transparentního šifrování dat. Pokud je zadaný příkaz zálohování WITH COMPRESSION nebo výchozí konfigurace komprese zálohování serveru je nastavená na 1, MAXTRANSFERSIZE se automaticky zvýší na 128 K, aby se povolil optimalizovaný algoritmus. Pokud je MAXTRANSFERSIZE zadán v příkazu zálohování s hodnotou > 64 K, je zadaná hodnota dodržena. Jinými slovy SQL Server nikdy automaticky nezmenší hodnotu, pouze ji zvýší. Pokud potřebujete zálohovat šifrovanou databázi transparentního šifrování dat pomocí MAXTRANSFERSIZE = 65536, musíte zadat WITH NO_COMPRESSION nebo zajistit, aby výchozí konfigurace komprese zálohování serveru byla nastavena na hodnotu 0.

Poznámka

Existují případy, kdy je výchozí MAXTRANSFERSIZE větší než 64 tisíc:

  • Když databáze obsahuje více datových souborů, používá MAXTRANSFERSIZE> 64 K.
  • Při zálohování na adresu URL do služby Azure Blob Storage se výchozí MAXTRANSFERSIZE = 1048576 (1 MB).
  • Při zálohování na adresu URL do úložiště objektů kompatibilních s S3 je výchozí MAXTRANSFERSIZE = 10485760 (10 MB).

I když platí jedna z těchto podmínek, musíte v příkazu zálohování explicitně nastavit MAXTRANSFERSIZE větší než 64 K, abyste získali optimalizovaný algoritmus komprese zálohování, pokud nejste na SQL Serveru 2019 (15.x) CU5 nebo novějším.

Ve výchozím nastavení každá úspěšná operace zálohování přidá položku do protokolu chyb SQL Serveru a do systémového protokolu událostí. Pokud protokol zálohujete velmi často, tyto zprávy o úspěchu se rychle hromadí, což vede k velkým protokolům chyb, které můžou ztížit hledání dalších zpráv. V takových případech můžete tyto položky protokolu potlačit pomocí příznaku trasování 3226, pokud žádná z vašich automatizací nebo monitorování nezávisí na těchto položkách. Další informace najdete v tématu příznaky trasování.

Interoperabilita

SQL Server používá proces online zálohování, který umožňuje zálohování databáze, i když je databáze stále používána. Během zálohování je možné provádět většinu operací; Například příkazy INSERT, UPDATE nebo DELETE jsou povoleny během operace zálohování.

Mezi operace, které nelze spustit během zálohování databáze nebo transakčního protokolu, patří:

  • Operace správy souborů, jako je příkaz ALTER DATABASE, s možnostmi ADD FILE nebo REMOVE FILE.

  • Zmenšete operace databáze nebo zmenšete soubory. To zahrnuje operace automatického zprochánění.

Pokud se operace zálohování překrývají se správou souborů nebo DBCC SHRINK operací, dojde ke konfliktu. Bez ohledu na to, která z konfliktních operací začala, druhá operace čeká na vypršení časového limitu zámku nastaveného první operací (časový limit je řízen nastavením časového limitu relace). Pokud je zámek uvolněn během časového limitu, druhá operace pokračuje. Pokud vyprší časový limit uzamčení, druhá operace selže.

Metadata

SQL Server obsahuje následující tabulky historie zálohování, které sledují aktivitu zálohování:

  • záložního souboru
  • backupfilegroup
  • zálohování
  • backupmediaset
  • zálohovací sady

Když se provede obnovení, pokud sada záloh ještě nebyla zaznamenána v databázi msdb, může být změněna tabulka historie zálohování.

Bezpečnost

Počínaje VERZÍ SQL Server 2012 (11.x) se možnosti PASSWORD a MEDIAPASSWORD pro vytváření záloh ukončí. Zálohy vytvořené pomocí hesel je stále možné obnovit.

Dovolení

a oprávnění jsou výchozí pro členy pevné role serveru správce systému a db_owner a db_backupoperator pevné databázové role.

Problémy s vlastnictvím a oprávněním ve fyzickém souboru zálohovacího zařízení můžou kolidovat s operací zálohování. Ujistěte se, že spouštěcí účet SQL Serveru musí mít oprávnění ke čtení a zápisu do záložního zařízení a ke složce, do které se záložní soubory zapisují. sp_addumpdevice, který přidává položku pro zálohovací zařízení v systémových tabulkách, ale nekontroluje přístupová oprávnění k souborům. Takové problémy s fyzickým souborem zálohovaného zařízení se nemusí zobrazit, dokud se k fyzickému prostředku nepřistupuje při pokusu o zálohování nebo obnovení.

Příklady

Tato část obsahuje následující příklady:

Poznámka

Témata s postupy zálohování obsahují další příklady. Další informace naleznete v tématu Přehled zálohování.

A. Zálohování úplné databáze

Následující příklad zálohuje databázi AdventureWorks2022 do souboru disku.

BACKUP DATABASE AdventureWorks2022
 TO DISK = 'Z:\SQLServerBackups\AdvWorksData.bak'
    WITH FORMAT;
GO

B. Zálohování databáze a protokolu

Následující příklad zálohuje ukázkovou databázi AdventureWorks2022, která ve výchozím nastavení používá jednoduchý model obnovení. Pro podporu zálohování protokolů se databáze AdventureWorks2022 upraví tak, aby používala úplný model obnovení.

Dále příklad používá sp_addumpdevice k vytvoření logického zálohovacího zařízení pro zálohování dat, AdvWorksDataa vytvoří další logické zálohovací zařízení pro zálohování protokolu AdvWorksLog.

Příklad pak vytvoří úplnou zálohu databáze pro AdvWorksDataa po určité době aktivity aktualizace zálohuje protokol do AdvWorksLog.

-- To permit log backups, before the full database backup, modify the database
-- to use the full recovery model.
USE master;
GO
ALTER DATABASE AdventureWorks2022
    SET RECOVERY FULL;
GO
-- Create AdvWorksData and AdvWorksLog logical backup devices.
USE master
GO
EXEC sp_addumpdevice 'disk', 'AdvWorksData',
'Z:\SQLServerBackups\AdvWorksData.bak';
GO
EXEC sp_addumpdevice 'disk', 'AdvWorksLog',
'X:\SQLServerBackups\AdvWorksLog.bak';
GO

-- Back up the full AdventureWorks2022 database.
BACKUP DATABASE AdventureWorks2022 TO AdvWorksData;
GO
-- Back up the AdventureWorks2022 log.
BACKUP LOG AdventureWorks2022
    TO AdvWorksLog;
GO

Poznámka

Pro produkční databázi pravidelně zálohujte protokol. Zálohy protokolů by měly být dostatečně časté, aby poskytovaly dostatečnou ochranu před ztrátou dat.

C. Vytvoření úplného zálohování souborů sekundárních skupin souborů

Následující příklad vytvoří úplnou zálohu všech souborů v obou sekundárních skupinách souborů.

--Back up the files in SalesGroup1:
BACKUP DATABASE Sales
    FILEGROUP = 'SalesGroup1',
    FILEGROUP = 'SalesGroup2'
    TO DISK = 'Z:\SQLServerBackups\SalesFiles.bck';
GO

D. Vytvoření rozdílového zálohování souborů sekundárních skupin souborů

Následující příklad vytvoří rozdílovou zálohu souborů každého souboru v obou sekundárních skupinách souborů.

--Back up the files in SalesGroup1:
BACKUP DATABASE Sales
    FILEGROUP = 'SalesGroup1',
    FILEGROUP = 'SalesGroup2'
    TO DISK = 'Z:\SQLServerBackups\SalesFiles.bck'
    WITH
      DIFFERENTIAL;
GO

E. Vytvoření a zálohování do sady zrcadlených médií s jednou rodinou

Následující příklad vytvoří zrcadlenou sadu médií obsahující jednu řadu médií a čtyři zrcadla a zálohuje do nich AdventureWorks2022 databázi.

BACKUP DATABASE AdventureWorks2022
TO TAPE = '\\.\tape0'
MIRROR TO TAPE = '\\.\tape1'
MIRROR TO TAPE = '\\.\tape2'
MIRROR TO TAPE = '\\.\tape3'
WITH
    FORMAT,
    MEDIANAME = 'AdventureWorksSet0';

F. Vytvoření a zálohování do vícefamálně zrcadlené sady médií

Následující příklad vytvoří zrcadlenou sadu médií, ve které se každé zrcadlo skládá ze dvou rodin médií. Příklad pak zálohuje AdventureWorks2022 databázi na obě zrcadla.

BACKUP DATABASE AdventureWorks2022
TO TAPE = '\\.\tape0', TAPE = '\\.\tape1'
MIRROR TO TAPE = '\\.\tape2', TAPE = '\\.\tape3'
WITH
    FORMAT,
    MEDIANAME = 'AdventureWorksSet1';

G. Zálohování do existující zrcadlené sady médií

Následující příklad připojí záložní sadu k sadě médií vytvořené v předchozím příkladu.

BACKUP LOG AdventureWorks2022
TO TAPE = '\\.\tape0', TAPE = '\\.\tape1'
MIRROR TO TAPE = '\\.\tape2', TAPE = '\\.\tape3'
WITH
    NOINIT,
    MEDIANAME = 'AdventureWorksSet1';

Poznámka

Funkce NOINIT, což je výchozí hodnota, je zde zobrazena pro přehlednost.

H. Vytvoření komprimované zálohy v nové sadě médií

Následující příklad naformátuje médium, vytvoří novou sadu médií a provede komprimovanou úplnou zálohu AdventureWorks2022 databáze.

BACKUP DATABASE AdventureWorks2022 TO DISK='Z:\SQLServerBackups\AdvWorksData.bak'
WITH
    FORMAT,
    COMPRESSION;

Já. Zálohování do služby Microsoft Azure Blob Storage

Tento příklad provádí úplnou zálohu databáze Sales do služby Azure Blob Storage. Název účtu úložiště je mystorageaccount. Kontejner se nazývá myfirstcontainer. Uložené zásady přístupu už byly vytvořeny s právy ke čtení, zápisu, odstranění a výpisu. Přihlašovací údaje SQL Serveru https://mystorageaccount.blob.core.windows.net/myfirstcontainerbyly vytvořeny pomocí sdíleného přístupového podpisu, který je přidružený k uloženým zásadám přístupu. Informace o zálohování SQL Serveru do služby Azure Blob Storage najdete v tématu zálohování a obnovení SQL Serveru pomocí služby Azure Blob Storage a zálohování SQL Serveru na adresu URL.

BACKUP DATABASE Sales
TO URL = 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales.bak'
WITH STATS = 5;

Databázi můžete také zálohovat do několika pruhů a bude vypadat takto:

BACKUP DATABASE Sales
TO URL = 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales-01.bak',
URL = 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales-02.bak',
URL = 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales-03.bak',
URL = 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales-04.bak'
WITH COPY_ONLY;

J. Zálohování do úložiště objektů kompatibilních s S3

platí pro: SQL Server 2022 (16.x)

Tento příklad provede úplnou záložní databázi Sales databáze na platformu úložiště objektů kompatibilní s S3. Název přihlašovacích údajů se v příkazu nevyžaduje nebo odpovídá přesné cestě URL, ale vyhledá správné přihlašovací údaje na zadané adrese URL. Další informace najdete v tématu zálohování a obnovení SQL Serveru súložiště objektů kompatibilní s S3 .

BACKUP DATABASE Sales
TO      URL = 's3://10.10.10.10:8787/sqls3backups/sales_01.bak'
,       URL = 's3://10.10.10.10:8787/sqls3backups/sales_02.bak'
,       URL = 's3://10.10.10.10:8787/sqls3backups/sales_03.bak'
WITH    FORMAT
,       STATS               = 10
,       COMPRESSION;

K. Sledování průběhu příkazu zálohování

Následující dotaz vrátí informace o aktuálně spuštěných příkazech zálohování:

SELECT query = a.text, start_time, percent_complete,
    eta = dateadd(second,estimated_completion_time/1000, getdate())
FROM sys.dm_exec_requests r
    CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) a
WHERE r.command LIKE 'BACKUP%';

* SQL Managed Instance *  

 

Spravovaná instance Azure SQL

Zálohuje databázi SQL ve službě Azure SQL Managed Instance. azure SQL Managed Instance má automatické zálohování. Můžete vytvořit úplné zálohy databáze COPY_ONLY. Rozdílové zálohy, protokoly a snímky souborů se nepodporují.

Platí také pro službu SQL Managed Instance povolenou službou Azure Arc.

Syntax

BACKUP DATABASE { database_name | @database_name_var }
  TO URL = { 'physical_device_name' | @physical_device_name_var }[ ,...n ]
  WITH COPY_ONLY [, { <general_WITH_options> } ]
[;]

<general_WITH_options> [ ,...n ]::=

--Media Set Options
   MEDIADESCRIPTION = { 'text' | @text_variable }
 | MEDIANAME = { media_name | @media_name_variable }
 | BLOCKSIZE = { blocksize | @blocksize_variable }

--Data Transfer Options
   BUFFERCOUNT = { buffercount | @buffercount_variable }
 | MAXTRANSFERSIZE = { maxtransfersize | @maxtransfersize_variable }

--Error Management Options
   { NO_CHECKSUM | CHECKSUM }
 | { STOP_ON_ERROR | CONTINUE_AFTER_ERROR }

--Compatibility Options
   RESTART

--Monitoring Options
   STATS [ = percentage ]

--Encryption Options
 ENCRYPTION (ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY } , encryptor_options ) <encryptor_options> ::=
   SERVER CERTIFICATE = Encryptor_Name | SERVER ASYMMETRIC KEY = Encryptor_Name

Argumenty

DATABÁZE

Určuje úplnou zálohu databáze. Během zálohování databáze azure SQL Managed Instance zálohuje dostatek transakčního protokolu, aby při obnovení zálohy vytvořila konzistentní databázi.

Důležitý

Zálohu databáze vytvořenou ve spravované instanci je možné obnovit pouze v jiné spravované instanci Azure SQL nebo pouze do instance SQL Serveru 2022. Důvodem je to, že sql Managed Instance má ve srovnání s jinými verzemi SQL Serveru vyšší interní verzi databáze. Další informace najdete v tématu Obnovení zálohy databáze služby SQL Managed Instance do systému SQL Server 2022.

Při obnovení zálohy vytvořené službou BACKUP DATABASE (zálohování dat) se obnoví celá záloha. Pokud chcete provést obnovení z automatických záloh služby SQL Managed Instance, přečtěte si téma Obnovení databáze do služby Azure SQL Managed Instance.

{ database_name | @database_name_var }

Je databáze, ze které se zálohuje úplná databáze. Pokud je zadaný jako proměnná (@database_name_var), může být tento název zadán jako řetězcová konstanta (@database_name_var=název databáze) nebo jako proměnná datového typu řetězce znaků, s výjimkou ntextové nebo textových datových typů.

Další informace najdete v tématu úplné zálohování souborů a zálohování souborů a skupin souborů.

ADRESA URL

Určuje adresu URL, která se má použít pro operaci zálohování. Formát adresy URL se používá k vytváření záloh do služby úložiště Microsoft Azure.

Důležitý

Pokud chcete zálohovat na více zařízení při zálohování na adresu URL, musíte použít tokeny sdíleného přístupového podpisu (SAS). Příklady vytvoření sdíleného přístupového podpisu najdete v tématu zálohování SQL Serveru na adresu URL a Zjednodušení vytváření přihlašovacích údajů SQL s tokeny sdíleného přístupového podpisu (SAS) ve službě Azure Storage pomocí powershellového.

n
Je zástupný symbol, který označuje, že v seznamu oddělených čárkami může být zadáno až 64 zálohovacích zařízení.

Možnosti WITH

Určuje možnosti, které se mají použít s operací zálohování.

ŠIFROVÁNÍ

Slouží k určení šifrování zálohy. Můžete zadat šifrovací algoritmus pro šifrování zálohování nebo zadat NO_ENCRYPTION, aby zálohování nebylo šifrované. Doporučuje se šifrování, které pomáhá zabezpečit záložní soubory. Seznam algoritmů, které můžete zadat, jsou:

  • AES_128
  • AES_192
  • AES_256
  • TRIPLE_DES_3KEY
  • NO_ENCRYPTION

Pokud se rozhodnete šifrovat, budete také muset určit šifrovač pomocí možností šifrování:

  • SERVER CERTIFICATE = <Encryptor_Name>
  • SERVER ASYMMETRIC KEY = <Encryptor_Name>

Možnosti sady záloh

COPY_ONLY

Určuje, že zálohování je zálohování pouze kopírování, což nemá vliv na normální sekvenci záloh. Záloha jen pro kopírování se vytvoří nezávisle na automatickém zálohování služby Azure SQL Database. Další informace naleznete v tématu Copy-Only zálohování.

{ COMPRESSION | NO_COMPRESSION }

Určuje, zda komprese zálohování se provádí u této zálohy a přepisuje výchozí nastavení na úrovni serveru.

Výchozí chování není komprese zálohování. Toto výchozí nastavení ale můžete změnit nastavením výchozí komprese zálohování serveru. Informace o zobrazení aktuální hodnoty této možnosti naleznete v tématu Zobrazit nebo Změnit vlastnosti serveru.

KOMPRESE
Explicitně povolí kompresi záloh.

NO_COMPRESSION
Explicitně zakáže kompresi zálohování.

DESCRIPTION = { 'text' | @text_variable }

Určuje volný text popisující zálohovací sadu. Řetězec může mít maximálně 255 znaků.

NAME = { backup_set_name | @_backup|set_var }

Určuje název zálohovací sady. Názvy můžou mít maximálně 128 znaků. Pokud není zadaný název, je prázdný.

MEDIADESCRIPTION = { text | @text_variable }

Určuje popis volného textu, maximálně 255 znaků sady médií.

MEDIANAME = { media_name | @media_name_variable }

Určuje název média pro celou sadu záložních médií. Název média nesmí být delší než 128 znaků, pokud je zadán MEDIANAME, musí odpovídat dříve zadanému názvu média, který již na záložních svazcích existuje. Pokud není zadán, nebo pokud je zadána možnost PŘESKOČIT, neexistuje žádná kontrola ověření názvu média.

BLOCKSIZE = { blocksize | @blocksize_variable }

Určuje velikost fyzického bloku v bajtech. Podporované velikosti jsou 512, 1024, 2048, 4096, 8192, 16384, 32768 a 65536 (64 kB). Výchozí hodnota je 65536 pro pásková zařízení a v opačném případě 512. Tato možnost je obvykle nepotřebná, protože služba BACKUP automaticky vybere velikost bloku, která je pro zařízení vhodná. Explicitní vyjádření velikosti bloku přepíše automatický výběr velikosti bloku.

Možnosti přenosu dat

BUFFERCOUNT = { buffercount | @buffercount_variable }

Určuje celkový počet vstupně-výstupních vyrovnávacích pamětí, které se mají použít pro operaci zálohování. Můžete zadat libovolné kladné celé číslo; Velký počet vyrovnávacích pamětí však může způsobit chyby "nedostatek paměti" kvůli nedostatečnému virtuálnímu adresnímu prostoru v procesu Sqlservr.exe.

Celková velikost využitá vyrovnávacími pamětí je určena: BUFFERCOUNT * MAXTRANSFERSIZE.

Poznámka

Důležité informace o použití možnosti BUFFERCOUNT naleznete v blogovém příspěvku Nesprávné bufferCount možnost přenosu dat může vést k podmínce OOM.

MAXTRANSFERSIZE = { maxtransfersize | @ maxtransfersize_variable }

Určuje největší jednotku přenosu v bajtech, které se mají použít mezi SQL Serverem a záložním médium. Možné hodnoty jsou násobky 65536 bajtů (64 kB) v rozsahu až 4194304 bajtů (4 MB).

U transparentního šifrování dat (TDE) databází s jedním datovým souborem je výchozí MAXTRANSFERSIZE 65536 (64 kB). U nešifrovaných databází bez transparentního šifrování dat je výchozí MAXTRANSFERSIZE při použití zálohování na DISK 1048576 (1 MB) a při použití VDI nebo TAPE 65536 (64 kB).

Poznámka

FUNKCE MAXTRANSFERSIZE určuje největší jednotku přenosu a nezaručuje, že každá operace zápisu přenese zadanou největší velikost. MAXTRANSFERSIZE pro operace zápisu pro prokládání záloh transakčních protokolů je nastavena na 64 kB.

Možnosti správy chyb

Tyto možnosti umožňují určit, jestli jsou pro operaci zálohování povolené kontrolní součty zálohování a jestli se operace zastaví při výskytu chyby.

{ NO_CHECKSUM | CHECKSUM }

Určuje, jestli jsou povoleny kontrolní součty zálohování.

NO_CHECKSUM
Explicitně zakáže generování kontrolních součtů zálohování (a ověření kontrolních součtů stránek). Toto je výchozí chování.

KONTROLNÍ SOUČET
Určuje, že operace zálohování ověřuje každou stránku kontrolního součtu a stránky roztrhané, pokud jsou povolené a dostupné, a vygeneruje kontrolní součet pro celou zálohu.

Použití kontrolních součtů zálohování může mít vliv na propustnost úloh a zálohování.

Další informace naleznete v tématu Možné chyby médií při zálohování a obnovení.

{ STOP_ON_ERROR | CONTINUE_AFTER_ERROR }

Určuje, jestli se operace zálohování zastaví nebo pokračuje po výskytu chyby kontrolního součtu stránky.

STOP_ON_ERROR
Dává službě BACKUP pokyn, aby selhal, pokud kontrolní součet stránky neověří. Toto je výchozí chování.

CONTINUE_AFTER_ERROR
Dává službě BACKUP pokyn, aby pokračoval i přes výskyt chyb, jako jsou neplatné kontrolní součty nebo stránky roztrhané.

Pokud se vám nedaří zálohovat konec protokolu pomocí možnosti NO_TRUNCATE při poškození databáze, můžete zkusit zálohování protokolu tail-log zadáním CONTINUE_AFTER_ERROR místo NO_TRUNCATE.

Další informace naleznete v tématu Možné chyby médií při zálohování a obnovení.

Možnosti kompatibility

RESTARTOVAT

Nemá žádný vliv. Tato možnost je přijata verzí kvůli kompatibilitě s předchozími verzemi SQL Serveru.

Možnosti monitorování

STATS [ = procento ]

Zobrazí zprávu pokaždé, když se další procento dokončí, a použije se k měření průběhu. Pokud procento vynecháte, SQL Server po dokončení každého 10 procent zobrazí zprávu.

Možnost STATS hlásí procento dokončení jako prahovou hodnotu pro vykazování dalšího intervalu. Jedná se o přibližně zadané procento; Pokud je například s STATS=10 dokončená částka 40 procent, může se v této možnosti zobrazit 43 procent. U velkých sad zálohování to není problém, protože procento dokončení se mezi dokončeným vstupně-výstupním voláním přesouvá velmi pomalu.

Omezení pro spravovanou instanci SQL

Maximální velikost pruhu zálohování je 195 GB (maximální velikost objektu blob). Zvyšte počet pruhů v příkazu zálohování, abyste snížili velikost jednotlivých pruhů a zůstali v tomto limitu.

Bezpečnost

Dovolení

oprávnění jsou výchozí pro členy pevné role serveru správce systému a db_owner a db_backupoperator pevné databázové role.

Problémy s vlastnictvím a oprávněními v adrese URL můžou kolidovat s operací zálohování. SQL Server musí být schopen číst a zapisovat do zařízení; účet, pod kterým běží služba SQL Serveru, musí mít oprávnění k zápisu.

Příklady

Příklad provede COPY_ONLY zálohování Sales do služby Microsoft Azure Blob Storage. Název účtu úložiště je mystorageaccount. Kontejner se nazývá myfirstcontainer. Vytvořili jsme uložené zásady přístupu s právy ke čtení, zápisu, odstranění a výpisu. Přihlašovací údaje SQL Serveru https://mystorageaccount.blob.core.windows.net/myfirstcontainerbyly vytvořeny pomocí sdíleného přístupového podpisu, který je přidružený k uloženým zásadám přístupu. Informace o zálohování SQL Serveru do služby Azure Blob Storage najdete v tématu zálohování a obnovení SQL Serveru pomocí služby Microsoft Azure Blob Storage a zálohování SQL Serveru na adresu URL.

BACKUP DATABASE Sales
TO URL = 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales_20160726.bak'
WITH STATS = 5, COPY_ONLY;

Databázi můžete také zálohovat do několika pruhů a bude vypadat takto:

BACKUP DATABASE Sales
TO URL = 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales-01.bak',
URL = 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales-02.bak',
URL = 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales-03.bak',
URL = 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/Sales-04.bak'
WITH COPY_ONLY;

spravované instance SQL

* Analytics
Systém platformy (PDW) *
 

 

Systém analytických platforem

Vytvoří zálohu databáze PDW (Analytics Platform System) a uloží zálohu ze zařízení do uživatelem zadaného síťového umístění. Tento příkaz použijte s RESTORE DATABASE – systém analytických platforem pro zotavení po havárii nebo zkopírování databáze z jednoho zařízení do druhého.

Než začnete, přečtěte si část Získání a konfigurace záložního serveru v dokumentaci k produktu Analytics Platform System (PDW).

V systému Analytics Platform System (PDW) existují dva typy záloh. úplné zálohování databáze je záloha celé databáze PDW (Analytics Platform System). Rozdílové zálohování databáze zahrnuje pouze změny provedené od poslední úplné zálohy. Záloha uživatelské databáze zahrnuje uživatele databáze a databázové role. Záloha databáze master zahrnuje přihlášení.

Další informace o zálohách databáze PDW (Analytics Platform System) najdete v dokumentaci k produktu Analytics Platform System (PDW).

Syntax

--Create a full backup of a user database or the master database.
BACKUP DATABASE database_name
    TO DISK = '\\UNC_path\backup_directory'
    [ WITH [ ( ]<with_options> [ ,...n ][ ) ] ]
[;]

--Create a differential backup of a user database.
BACKUP DATABASE database_name
    TO DISK = '\\UNC_path\backup_directory'
    WITH [ ( ] DIFFERENTIAL
    [ , <with_options> [ ,...n ] [ ) ]
[;]

<with_options> ::=
    DESCRIPTION = 'text'
    | NAME = 'backup_name'

Argumenty

database_name

Název databáze, na které chcete vytvořit zálohu. Databáze může být databáze master nebo uživatelská databáze.

TO DISK = '\\UNC_path\backup_directory'

Síťová cesta a adresář, do kterého bude systém PDW (Analytics Platform System) zapisovat záložní soubory. Například \\\xxx.xxx.xxx.xxx\backups\2012\Monthly\08.2012.Mybackup.

  • Cesta k názvu záložního adresáře již musí existovat a musí být zadána jako plně kvalifikovaná cesta UNC (Universal Nameming Convention).
  • Před spuštěním příkazu zálohování nesmí adresář zálohování backup_directoryexistovat. Systém PDW (Analytics Platform System) vytvoří záložní adresář.
  • Cesta k záložnímu adresáři nemůže být místní cesta a nemůže se jednat o umístění na žádném uzlu zařízení PDW (Analytics Platform System).
  • Maximální délka cesty UNC a názvu záložního adresáře je 200 znaků.
  • Server nebo hostitel musí být zadán jako IP adresa. Nemůžete ho zadat jako název hostitele nebo serveru.

DESCRIPTION = 'text'

Určuje textový popis zálohy. Maximální délka textu je 255 znaků.

Popis je uložen v metadatech a zobrazí se při obnovení zálohovací hlavičky pomocí FUNKCE RESTORE HEADERONLY.

NAME = 'zálohování _name'

Určuje název zálohy. Název zálohy se může lišit od názvu databáze.

  • Názvy můžou mít maximálně 128 znaků.
  • Nelze zahrnout cestu.
  • Musí začínat písmenem nebo číslicí nebo podtržítkem (_). Speciální znaky jsou povolené podtržítkem (_), spojovníkem (-) nebo mezerou (). Názvy záloh nemohou končit znakem mezery.
  • Příkaz selže, pokud backup_name již v zadaném umístění existuje.

Tento název je uložen v metadatech a zobrazí se při obnovení zálohovací hlavičky pomocí FUNKCE RESTORE HEADERONLY.

DIFERENCIÁL

Určuje, že se má provést rozdílové zálohování uživatelské databáze. Pokud tuto hodnotu vynecháte, výchozí hodnota je úplná záloha databáze. Název rozdílového zálohování nemusí odpovídat názvu úplného zálohování. Pokud chcete sledovat rozdílové a odpovídající úplné zálohování, zvažte použití stejného názvu s připojeným řetězcem full nebo diff.

Například:

BACKUP DATABASE Customer TO DISK = '\\xxx.xxx.xxx.xxx\backups\CustomerFull';

BACKUP DATABASE Customer TO DISK = '\\xxx.xxx.xxx.xxx\backups\CustomerDiff' WITH DIFFERENTIAL;

Dovolení

Vyžaduje oprávnění BACKUP DATABASE nebo členství v db_backupoperator pevné databázové roli. Databázi master nelze zálohovat, ale běžný uživatel přidaný do db_backupoperator pevné databázové role. Databázi je možné zálohovat pouze pomocísa, správce prostředků infrastruktury nebo členů pevné role serveru správce systému .

Vyžaduje účet Systému Windows, který má oprávnění k přístupu, vytváření a zápisu do záložního adresáře. Musíte také uložit název a heslo účtu Windows v systému Analytics Platform System (PDW). Pokud chcete tyto síťové přihlašovací údaje přidat do systému PDW (Analytics Platform System), použijte sp_pdw_add_network_credentials – Azure Synapse Analytics uloženou proceduru.

Další informace o správě přihlašovacích údajů v systému Analytics Platform System (PDW) najdete v části Security.

Zpracování chyb

Chyby SLUŽBY BACKUP DATABASE za následujících podmínek:

  • Uživatelská oprávnění nejsou dostatečná k provedení zálohy.
  • Systém PDW (Analytics Platform System) nemá správná oprávnění k síťovému umístění, kde bude záloha uložena.
  • Databáze neexistuje.
  • Cílový adresář již existuje ve sdílené síťové složce.
  • Cílová síťová sdílená složka není k dispozici.
  • Cílová síťová sdílená složka nemá dostatek místa pro zálohování. Příkaz BACKUP DATABASE před zahájením zálohování nepotvrzuje, že existuje dostatek místa na disku, což umožňuje vygenerovat chybu nedostatek místa na disku při spuštění služby BACKUP DATABASE. Pokud dojde k nedostatku místa na disku, nástroj Analytics Platform System (PDW) vrátí zpět příkaz BACKUP DATABASE. Pokud chcete zmenšit velikost databáze, spusťte DBCC SHRINKLOG (Analytics Platform System).
  • Pokus o spuštění zálohy v rámci transakce.

Poznámky

Před provedením zálohování databáze DBCC SHRINKLOG (Analytics Platform System (PDW)) zmenšit velikost databáze.

Záloha systému PDW (Analytics Platform System) se ukládá jako sada více souborů ve stejném adresáři.

Rozdílové zálohování obvykle trvá kratší dobu než úplné zálohování a může se provádět častěji. Pokud je více rozdílových záloh založeno na stejném úplném zálohování, zahrnuje každý rozdílový rozdíl všechny změny v předchozím rozdílovém zálohování.

Pokud zrušíte příkaz BACKUP, nástroj Analytics Platform System (PDW) odebere cílový adresář a všechny soubory vytvořené pro zálohování. Pokud systém PDW (Analytics Platform System) ztratí síťové připojení ke sdílené složce, vrácení zpět se nedá dokončit.

Úplné zálohy a rozdílové zálohy jsou uložené v samostatných adresářích. Zásady vytváření názvů se nevynucují pro určení, že úplné zálohování a rozdílové zálohování patří dohromady. Můžete to sledovat pomocí vlastních konvencí vytváření názvů. Můžete to také sledovat pomocí možnosti WITH DESCRIPTION přidat popis a pak pomocí příkazu RESTORE HEADERONLY načíst popis.

Omezení

Rozdílové zálohování databáze master nelze provést. Podporují se pouze úplné zálohy databáze master.

Zálohy transakčních protokolů systémové databáze master se nepodporují.

Záložní soubory se ukládají ve formátu vhodném pouze k obnovení zálohy do zařízení PDW (Analytics Platform System) pomocí příkazu RESTORE DATABASE - Analytics Platform System.

Zálohu pomocí příkazu BACKUP DATABASE nelze použít k přenosu dat nebo informací o uživatelích do databází SQL Serveru SMP. Pro tuto funkci můžete použít funkci vzdáleného kopírování tabulky. Další informace najdete v dokumentaci k produktu Analytics Platform System (PDW) v dokumentaci ke vzdálené tabulce.

Systém PDW (Analytics Platform System) používá k zálohování a obnovování databází technologii zálohování SQL Serveru. Možnosti zálohování SQL Serveru jsou předem nakonfigurované tak, aby používaly kompresi zálohování. Nemůžete nastavit možnosti zálohování, jako je komprese, kontrolní součet, velikost bloku a počet vyrovnávacích pamětí.

Na zařízení může v daném okamžiku běžet pouze jedna záloha nebo obnovení databáze. Systém PDW (Analytics Platform System) zařadí příkazy do fronty zálohování nebo obnovení, dokud se nedokončí aktuální příkaz pro zálohování nebo obnovení.

Cílové zařízení pro obnovení zálohy musí mít alespoň tolik výpočetních uzlů jako zdrojové zařízení. Cíl může mít více výpočetních uzlů než zdrojové zařízení, ale nemůže mít méně výpočetních uzlů.

Systém PDW (Analytics Platform System) nesleduje umístění a názvy záloh, protože zálohy se ukládají mimo zařízení.

Systém PDW (Analytics Platform System) sleduje úspěch nebo selhání zálohování databází.

Rozdílové zálohování je povoleno pouze v případě, že se poslední úplné zálohování úspěšně dokončilo. Předpokládejme například, že v pondělí vytvoříte úplnou zálohu databáze Sales a zálohování se úspěšně dokončí. Pak v úterý vytvoříte úplnou zálohu Sales databáze a selže. Po tomto selhání pak nemůžete vytvořit rozdílové zálohování na základě úplného zálohování v pondělí. Před vytvořením rozdílového zálohování musíte nejprve vytvořit úspěšné úplné zálohování.

Metadata

Tato zobrazení dynamické správy obsahují informace o všech operacích zálohování, obnovení a načítání. Informace se zachovají napříč restartováním systému.

Představení

Pokud chcete provést zálohování, systém PDW (Analytics Platform System) nejprve zálohuje metadata a pak provede paralelní zálohování databázových dat uložených na výpočetních uzlech. Data se zkopírují přímo z každého výpočetního uzlu do záložního adresáře. Pokud chcete dosáhnout nejlepšího výkonu pro přesun dat z výpočetních uzlů do záložního adresáře, řídí systém PDW (Analytics Platform System) počet výpočetních uzlů, které kopírují data současně.

Zamykání

Vezme zámek ExclusiveUpdate u objektu DATABASE.

Bezpečnost

Zálohy systému PDW (Analytics Platform System) se na zařízení neukládají. Váš IT tým proto zodpovídá za správu všech aspektů zabezpečení zálohování. Patří sem například správa zabezpečení zálohovaných dat, zabezpečení serveru používaného k ukládání záloh a zabezpečení síťové infrastruktury, která připojuje zálohovací server k zařízení PDW (Analytics Platform System).

Správa přihlašovacích údajů sítě

Síťový přístup k záložnímu adresáři je založený na standardním zabezpečení sdílení souborů operačního systému. Před provedením zálohování musíte vytvořit nebo určit účet Systému Windows, který se použije k ověřování systému Analytics Platform System (PDW) v adresáři zálohování. Tento účet Systému Windows musí mít oprávnění k přístupu, vytváření a zápisu do záložního adresáře.

Důležitý

Pokud chcete snížit bezpečnostní rizika s vašimi daty, doporučujeme určit jeden účet Systému Windows výhradně pro účely provádění operací zálohování a obnovení. Povolit tomuto účtu mít oprávnění k umístění zálohování a nikde jinde.

Uživatelské jméno a heslo musíte uložit do systému PDW (Analytics Platform System) spuštěním sp_pdw_add_network_credentials – Azure Synapse Analytics uložené procedury. Systém PDW (Analytics Platform Platform System) používá Správce přihlašovacích údajů systému Windows k ukládání a šifrování uživatelských jmen a hesel na řídicím uzlu a výpočetních uzlech. Přihlašovací údaje nejsou zálohovány pomocí příkazu BACKUP DATABASE.

Odebrání síťových přihlašovacích údajů ze systému PDW (Analytics Platform System) najdete v tématu sp_pdw_remove_network_credentials – Azure Synapse Analytics.

Pokud chcete zobrazit seznam všech síťových přihlašovacích údajů uložených v systému PDW (Analytics Platform System), použijte zobrazení sys.dm_pdw_network_credentials dynamické správy.

Příklady

A. Přidání síťových přihlašovacích údajů pro umístění zálohování

Pokud chcete vytvořit zálohu, musí mít analytický systém PDW (Analytics Platform System) oprávnění ke čtení a zápisu do záložního adresáře. Následující příklad ukazuje, jak přidat přihlašovací údaje pro uživatele. Systém PDW (Analytics Platform System) tyto přihlašovací údaje uloží a použije je k operacím zálohování a obnovení.

Důležitý

Zbezpečnostních

EXEC sp_pdw_add_network_credentials 'xxx.xxx.xxx.xxx', 'domain1\backupuser', '*****';

B. Odebrání síťových přihlašovacích údajů pro umístění zálohování

Následující příklad ukazuje, jak odebrat přihlašovací údaje uživatele domény ze systému PDW (Analytics Platform System).

EXEC sp_pdw_remove_network_credentials 'xxx.xxx.xxx.xxx';

C. Vytvoření úplné zálohy uživatelské databáze

Následující příklad vytvoří úplnou zálohu uživatelské databáze Faktury. Systém PDW (Analytics Platform System) vytvoří Invoices2013 adresář a uloží záložní soubory do \\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full adresáře.

BACKUP DATABASE Invoices TO DISK = '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Full';

D. Vytvoření rozdílové zálohy uživatelské databáze

Následující příklad vytvoří rozdílové zálohování, které zahrnuje všechny změny provedené od poslední úplné zálohy Invoices databáze. Systém PDW (Analytics Platform System) vytvoří \\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Diff adresář pro ukládání souborů. Popis Rozdílové zálohování faktur 2013 se uloží s informacemi hlavičky pro zálohování.

Rozdílové zálohování se úspěšně spustí, pouze pokud se úspěšně dokončilo poslední úplné zálohování faktur.

BACKUP DATABASE Invoices TO DISK = '\\xxx.xxx.xxx.xxx\backups\yearly\Invoices2013Diff'
    WITH DIFFERENTIAL,
    DESCRIPTION = 'Invoices 2013 differential backup';

E. Vytvoření úplné zálohy hlavní databáze

Následující příklad vytvoří úplnou zálohu master databáze a uloží ji do adresáře \\\xxx.xxx.xxx.xxx\backups\2013\daily\20130722\master, kde IP adresa je síťová IP adresa.

BACKUP DATABASE master TO DISK = '\\xxx.xxx.xxx.xxx\backups\2013\daily\20130722\master';

F. Vytvoření zálohy přihlašovacích údajů zařízení

Databáze master ukládá přihlašovací údaje zařízení. Pokud chcete zálohovat přihlašovací údaje zařízení, musíte zálohovat master databázi.

Následující příklad vytvoří úplnou zálohu master databáze.

BACKUP DATABASE master TO DISK = '\\xxx.xxx.xxx.xxx\backups\2013\daily\20130722\master'
WITH (
    DESCRIPTION = 'Master Backup 20130722',
    NAME = 'login-backup'
)
;