Sdílet prostřednictvím


ZÁLOHA (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 obnovení zálohuje transakční protokol databáze k vytvoření zálohy protokolu (BACKUP LOG).

Syntaxe

--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 | ZSTD | accelerator_algorithm } [ , LEVEL = { LOW | MEDIUM | HIGH } ] ) ] | 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.

Když obnovíte zálohu vytvořenou BACKUP DATABASE ( zálohu dat), obnoví se 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)

Platí pro: SQL Server 2022 (16.x) a novější verze

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

SERVER

Platí pro: SQL Server 2022 (16.x) a novější verze

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

METADATA_ONLY

Platí pro: SQL Server 2022 (16.x) a novější verze

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 synonymum s 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 }

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 buď jako řetězcová konstanta (názevdatabáze = ), nebo jako proměnná datového typu řetězce znaků s výjimkou datových typů typu ntext nebo text.

Poznámka

Zrcadlová databáze v partnerství zrcadlení databáze se nedá zálohovat.

< > file_or_filegroup [ , ... n ]

Používá se pouze u BACKUP DATABASE, určuje soubor databáze nebo skupinu souborů, které mají být zahrnuty 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 }

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

FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }

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 se dá použít k otestování výkonu záloh, ale nemělo by se používat v produkčních prostředích.

  • n

    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ů (SQL Server) 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 místo FILEGROUP READ_WRITE_FILEGROUPS vytvoří zálohu souboru.

  • FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }

    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

    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 (SQL Server).

TO <backup_device> [ , ... n ]

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

<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.

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áložní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 datových typů ntext nebo textu.

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

Platí pro: SQL Server.

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:

Do služby Microsoft Azure Blob Storage můžete zálohovat pomocí spravované identity začínající na:

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 pro Azure Blob Storage 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í PowerShellu.

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

Zařízení NUL zahodí všechny vstupy odeslané do tohoto souboru, ale záloha stále označí všechny stránky jako zálohované.

Další informace naleznete v tématu Zálohovací zařízení (SQL Server).

Poznámka

Tato TAPE možnost bude odebrána 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

    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 TO klauzuli. Klauzule MIRROR TO musí určovat stejný typ a počet zálohovaných zařízení jako TO klauzule. Maximální počet MIRROR TO klauzulí je tři.

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

Poznámka

Pro MIRROR TO = DISK, BACKUP automaticky určuje odpovídající velikost bloku pro disková zařízení na základě velikosti sektoru disku. MIRROR TO Pokud je disk 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ů, BLOCKSIZE musí být parametr zadán a měl by být nastaven na nejvyšší velikost sektorů ve všech cílových zařízeních. Další informace o velikosti bloku najdete v části "BLOCKSIZE" dále v tomto článku.

<backup_device>

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

  • n

    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 MIRROR TO klauzuli se musí shodovat s počtem zařízení v klauzuli TO .

    Další informace naleznete v tématu Rodiny médií v zrcadlených sadách médií dále v tomto článku.

  • [ další zrcadlení ]

    Zástupný symbol, který označuje, že jeden BACKUP příkaz může kromě jedné MIRROR TO klauzule obsahovat až tři TO klauzule.

Možnosti WITH

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

POVĚŘENÍ

Platí pro: SQL Server.

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

Snímek souboru

Platí pro: SQL Server 2016 (13.x) a novější verze.

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é soubory 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 to, že druhý také zkracuje transakční protokol, zatímco první z nich není. 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 pouze u BACKUP DATABASE, určuje, že se záloha databáze nebo souboru musí 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álohy (SQL Server).

Š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, musíte ho také zadat 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 naleznete v tématu CREATE CERTIFICATE and CREATE ASYMMETRIC KEY v uvedeném pořadí.

Varování

Při použití šifrování s argumentem FILE_SNAPSHOT se samotný soubor metadat zašifruje pomocí zadaného šifrovacího algoritmu a systém ověří, že pro databázi bylo dokončeno transparentní šifrování dat (TDE ). 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.

Pouze kopie

Určuje, že zálohování je záloha pouze kopírování, která 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í pouze 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í BACKUP DATABASEs možností COPY_ONLY vytvoří úplné zálohování, 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 kdyby 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í BACKUP LOGs COPY_ONLY možností vytvoří zálohu protokolu jen pro kopírování, která 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 najdete v tématu Zálohování pouze kopírování.

[ KOMPRESE [ ( ALGORITMUS = { MS_XPRESS | ZSTD | accelerator_algorithm } [ , LEVEL = { LOW | STŘEDNÍ | HIGH } ] ) ] | 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 Zobrazení nebo změna vlastností serveru (SQL Server).

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

Algoritmus komprese ZSTD je dostupný od SQL Server 2025 (17.x).

  • KOMPRESE

    Explicitně povolí kompresi záloh.

  • NO_COMPRESSION

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

  • ÚROVEŇ

    Platí pro: SQL Server 2022 (16.x) a novější verze

    Jedná se o volitelný parametr, který určuje úroveň komprese. Ovlivňuje ALGORITHM = MS_EXPRESS, a počínaje SQL Server 2025 (17.x), ALGORITHM = ZSTD.

    Přijatelné hodnoty jsou:

    • LOW (výchozí)
    • MEDIUM
    • HIGH
  • ALGORITMUS

    Platí pro: SQL Server 2022 (16.x) a novější verze

    ZSTD a MS_EXPRESS jsou algoritmy na úrovni softwaru. QAT_DEFLATE je hardwarový algoritmus vyžadující technologii Intel® QuickAssist Technology (QAT) pro SQL Server. Výchozí hodnota je MS_XPRESS.

    Pro použití kompresního algoritmu ZSTD zavedeného v SQL Server 2025 (17.x):

    BACKUP DATABASE <database_name> TO DISK WITH COMPRESSION (ALGORITHM = ZSTD, LEVEL = MEDIUM)
    

    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 konfiguraci integrované akcelerace a snižování zátěže, následující příklad dokončí zálohování s řešením akcelerátoru, knihovnou QATzip s použitím QZ_DEFLATE úrovně komprese 1.

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

    Ukázkové chování:

    Příkaz Backup Outcome
    ZÁLOHOVÁNÍ DATABÁZE DATABASE_NAME NA {DISK | PÁSKA | URL} S NO_COMPRESSION Zálohování bez komprese
    ZÁLOHOVÁNÍ DATABÁZE DATABASE_NAME NA {DISK | PÁSKA | URL} S KOMPRESÍ Zálohování s kompresí pomocí algoritmu určeného možností backup compression algorithm serveru (výchozí MS_XPRESS)
    ZÁLOHOVÁNÍ DATABÁZE DATABASE_NAME NA {DISK | PÁSKA | URL} S KOMPRESÍ (ALGORITMUS = MS_XPRESS) Zálohování s využitím komprese pomocí MS_XPRESS algoritmu
    ZÁLOHOVÁNÍ DATABÁZE DATABASE_NAME NA {DISK | PÁSKA | URL} S KOMPRESÍ (ALGORITMUS = ZSTD) Zálohování s využitím komprese pomocí algoritmu ZSTD.
    ZÁLOHOVÁNÍ DATABÁZE DATABASE_NAME NA {DISK | PÁSKA | URL} S KOMPRESÍ (ALGORITMUS = ZSTD, LEVEL = HIGH) Zálohování s kompresí pomocí algoritmu ZSTD s úrovní HIGHkomprese .

POPIS = { '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 NAME není zadaný, je prázdný.

{ DATUM EXPIRACE = 'datum' | ZADRŽENÍ = dny }

Určuje, kdy lze přepsat zálohovací sadu pro tuto zálohu. Pokud jsou obě tyto možnosti použity, RETAINDAYS má přednost před EXPIREDATE.

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ěřování vypršení platnosti najdete SKIP v tomto článku a formát.

  • EXPIREDATE = { 'datum' | @date_var }

    Určuje, kdy vyprší platnost sady záloh a lze ji přepsat. Pokud je zadané jako proměnná (@date_var), musí toto datum dodržovat nakonfigurovaný systémový formát datetime a musí být zadán jako jeden z následujících způsobů:

    • Ř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 , naleznete 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) a novější verze

METADATA_ONLY a SNAPSHOT jsou synonyma.

Možnosti sady médií

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

{ NOINIT | ZAČÁTEK }

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řipojení k nejnovější sadě záloh na médiu (NOINIT).

Poznámka

Informace o interakcích mezi { NOINIT | INIT } a {NOSKIP | SKIP } naleznete v části Poznámky dále v tomto článku.

  • 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. NOINIT je výchozí hodnota.

    Další informace najdete v tématu Sady médií, rodiny médií a zálohovací sady (SQL Server).

  • INIT

    Určuje, že všechny zálohovací sady by měly být přepsány, ale zachová hlavičku média. Pokud INIT je zadáno, všechny existující zálohovací sady na tomto zařízení se přepíší, pokud to podmínky povolují. Ve výchozím nastavení zkontroluje následující podmínky a nepřepíše záložní médium, BACKUP 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 BACKUP příkazu (pokud je zadaný) neodpovídá názvu na záložním médiu. Další informace najdete v NAME části výše v této části.

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

    Další informace najdete v tématu Sady médií, rodiny médií a zálohovací sady (SQL Server).

{ NOSKIP | PŘESKOČIT }

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 } naleznete v části Poznámky dále v tomto článku.

  • NOSKIP

    BACKUP Před povolením přepsání příkazu příkaz zkontroluje 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 sady zálohování a názvu, který 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 } naleznete v části Poznámky dále v tomto článku.

    Pokud chcete zobrazit data vypršení platnosti sad záloh, zadejte dotaz na expiration_date sloupec tabulky historie zálohovací sady .

{ NOFORMÁT | FORMÁT }

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í.

    Zadání formátu znamená SKIP, SKIP že 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 SKIP je tato možnost zadaná, 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 BACKUP automaticky vybere velikost bloku, která je vhodná pro zařízení. 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.

Zvýšení BUFFERCOUNT může výrazně snížit dobu zálohování za cenu vyššího využití paměti.

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ž 4 194 304 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.

Při vytváření záloh pomocí služby ZÁPIS SQL, pokud databáze nakonfigurovala FILESTREAM (SQL Server) nebo zahrnuje skupiny souborů optimalizované pro paměť, MAXTRANSFERSIZE pak by v době obnovení mělo být větší nebo rovno MAXTRANSFERSIZE tomu, které bylo použito při vytvoření zálohy.

U databází s podporou transparentního šifrování dat (TDE) 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 se při použití zálohování MAXTRANSFERSIZEdo a 65536 (64 kB) při použití VDI nebo DISK65536 (64 kB) používá výchozí nastavení TAPE 1048576 (1 MB). 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 | KONTROLNÍ SOUČET }

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í (SQL Server).

{ 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

    BACKUP Dá pokyn k selhání, pokud se kontrolní součet stránky neověří. Toto je výchozí chování.

  • CONTINUE_AFTER_ERROR

    BACKUP Dává 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í NO_TRUNCATE možnosti při poškození databáze, můžete se pokusit o zálohování protokolu tail-log tak CONTINUE_AFTER_ERRORNO_TRUNCATE, že místo toho zadáte .

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

Možnosti kompatibility

RESTARTOVAT

Nemá žádný vliv. Tato možnost je přijata verzí kvůli kompatibilitě se službou SQL Server 2005 Analysis Services (SSAS).

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 STATS = 10dokonč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 TAPE zařízení. Pokud se používá jiné zařízení, budou tyto možnosti ignorovány.

{ PŘETOČTE | NOREWIND }

  • PŘETOČIT

    Určuje, že SQL Server uvolní a převinou pásku zpět. REWIND je výchozí hodnota.

  • NOREWIND

    Určuje, že SQL Server udržuje 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 BACKUP příkazu.

    Poznámka

    Pokud použijete NOREWIND, instance SQL Serveru si zachová vlastnictví páskové jednotky, dokud příkaz BACKUPRESTORE nebo příkaz spuštěný ve stejném procesu nepoužije REWIND možnost nebo UNLOAD 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í (SQL Server).

{ UNLOAD | NÁKLAD }

Poznámka

UNLOAD a NOUNLOAD jsou nastavení relace, která se uchovávají po dobu životnosti relace nebo dokud se nena resetuje 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í. UNLOAD je výchozí hodnota při zahájení relace.

  • NOUNLOAD

    Určuje, že po BACKUP operaci 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í (SQL Server).

{ NORECOVERY | POHOTOVOSTNÍ REŽIM = undo_file_name }

  • NORECOVERY

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

    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Í REŽIM = standby_file_name

    Zálohuje konec protokolu a ponechá databázi jen pro čtení a STANDBY stav. Klauzule STANDBY zapisuje pohotovostní data (provádí vrácení zpět, ale s možností dalšího obnovení). STANDBY Použití možnosti je ekvivalentní BACKUP LOG WITH NORECOVERY následované .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é se musí vrátit zpět, pokud RESTORE LOG se následně použijí operace. 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. Proto může mít záloha pořízená 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_TRUNCATEBACKUP LOG je ekvivalentní k určení obou COPY_ONLY a CONTINUE_AFTER_ERROR.

NO_TRUNCATE Bez možnosti musí být databáze ve ONLINE stavu. Pokud je databáze ve stavu SUSPENDED, můžete vytvořit zálohu zadáním NO_TRUNCATE. Ale pokud je databáze ve stavu nebo ve OFFLINE stavu, EMERGENCY není povolena ani s BACKUP.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 do zálohování na SQL Serveru najdete v tématu Přehled zálohování (SQL Server).</a0>

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 COPY_ONLY v BACKUP příkazu možnost. Další informace najdete v tématu Zálohování pouze kopírová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 transakčním protokolu.

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 (SQL Server).

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 AdventureWorks2025 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 stripe, nejde ho použít pro zálohování s jedním zařízením, 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 je při zápisu záhlaví média zadáno obojí MEDIANAME nebo MEDIADESCRIPTION není zadáno, 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 BACKUP příkazy 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á MIRROR TO klauzule obsahovat stejný počet a typ zařízení jako TO klauzule. 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 TO klauzuli BACKUP příkazu odpovídá rodině médií. Pokud TO klauzule například vypíše tři zařízení, 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í. Pro 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álohovací sady médií (SQL Server). 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 (SQL Server).

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 naleznete v tématu Přehled obnovení a obnovení (SQL Server).

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

Interakce SKIP, NOSKIP, INIT a NOINIT

Tato tabulka popisuje interakce mezi možnostmi { NOINIT | INIT } a { NOSKIP | SKIP }.

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 MEDIANAME bylo zadáno, ověří, ž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ého MEDIANAME a MEDIADESCRIPTION, pokud existuje.
SKIP 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 platnou hlavičku 2 médií, přepíše všechny sady záloh na médiu, zachová se pouze hlavička 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 nejde obnovit ve starších verzích SQL Serveru.

BACKUP podporuje možnost RESTART zajistit zpětnou kompatibilitu se staršími verzemi SQL Serveru. Ale RESTART 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í
  • V pohotovosti
  • 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) umožňuje nastavení MAXTRANSFERSIZEvětší než 65536 (64 kB) optimalizovaný algoritmus komprese pro databáze šifrované transparentním šifrováním dat, které nejprve dešifruje stránku, zkomprimuje ji a pak ji znovu zašifruje. Pokud MAXTRANSFERSIZE není zadáno nebo pokud MAXTRANSFERSIZE = 65536 se používá (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ý WITH COMPRESSION příkaz zálohování nebo je výchozí konfigurace komprese zálohování nastavená na hodnotu 1, MAXTRANSFERSIZE automaticky se 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íce 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 naleznete v tématu Nastavení příznaků trasování pomocí DBCC TRACEON.

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 , INSERTnebo UPDATEDELETE příkazy jsou povoleny během operace zálohování.

Mezi operace, které se nedají 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 uzamčení 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.

Metadatové informace

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 msdb databázi, může být změněna tabulka historie zálohování.

Zabezpečení

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

Články s postupy zálohování obsahují další příklady. Další informace najdete v tématu Přehled zálohování (SQL Server).

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

Následující příklad zálohuje databázi AdventureWorks2025 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 AdventureWorks2025, která ve výchozím nastavení používá jednoduchý model obnovení. Pro podporu zálohování protokolů se databáze AdventureWorks2025 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

EXECUTE sp_addumpdevice 'disk', 'AdvWorksData', 'Z:\SQLServerBackups\AdvWorksData.bak';
GO

EXECUTE 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 AdventureWorks2025 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 AdventureWorks2025 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

NOINIT, což je výchozí, 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 AdventureWorks2025 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 se službou Azure Blob Storage a zálohováním SQL Serveru na adresu URL služby Azure Blob Storage.

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) a novější verze

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 provede vyhledávání správných přihlašovacích údajů na zadané adrese URL. Další informace naleznete v tématu Zálohování a obnovení SQL Serveru s úložištěm objektů kompatibilním 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 a.text AS query,
       start_time,
       percent_complete,
       dateadd(second, estimated_completion_time / 1000, getdate()) AS eta
FROM sys.dm_exec_requests AS r
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) AS a
WHERE r.command LIKE 'BACKUP%';

* SQL spravovaná instance *  

 

Azure SQL Managed Instance

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.

Syntaxe

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.

Když obnovíte zálohu vytvořenou BACKUP DATABASE ( zálohu dat), obnoví se 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 }

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 buď jako řetězcová konstanta (názevdatabáze = ), nebo jako proměnná datového typu řetězce znaků s výjimkou datových typů typu ntext nebo text.

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 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í PowerShellu.

  • n

    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, musíte ho také zadat pomocí možností šifrovače:

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

Možnosti sady záloh

Pouze kopie

Určuje, že zálohování je záloha pouze kopírování, která 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í.

{ KOMPRESE | 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í.

POPIS = { '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 NAME není zadaný, 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 SKIP je tato možnost zadaná, 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 BACKUP automaticky vybere velikost bloku, která je vhodná pro zařízení. 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ž 4 194 304 bajtů (4 MB).

U databází s podporou transparentního šifrování dat (TDE) 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 se při použití zálohování MAXTRANSFERSIZEdo a 65536 (64 kB) při použití VDI nebo DISK65536 (64 kB) používá výchozí TAPE nastavení 1048576 (1 MB).

Poznámka

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 | KONTROLNÍ SOUČET }

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

    BACKUP Dá pokyn k selhání, pokud se kontrolní součet stránky neověří. Toto je výchozí chování.

  • CONTINUE_AFTER_ERROR

    BACKUP Dává 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í NO_TRUNCATE možnosti při poškození databáze, můžete se pokusit o zálohování protokolu tail-log tak CONTINUE_AFTER_ERRORNO_TRUNCATE, že místo toho zadáte .

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 STATS = 10dokonč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.

Zabezpečení

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álohu 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

*Analytika
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 příkazem RESTORE DATABASE pro zotavení po havárii nebo zkopírujte databázi z jednoho zařízení do jiné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).

Syntaxe

--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 být umístěním 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.

POPIS = '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í hlavičky zálohy s RESTORE HEADERONLY.

NAME = '_backup jméno'

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 nemůžou 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í hlavičky zálohy s 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 nejde 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

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í dostupná.
  • Cílová síťová sdílená složka nemá dostatek místa pro zálohování. Příkaz BACKUP DATABASE nepotvrdí, že před zahájením zálohování existuje dostatek místa na disku, což umožňuje vygenerovat chybu nedostatek místa na disku při spuštění BACKUP DATABASE. Pokud dojde k nedostatku místa na disku, nástroj Analytics Platform System (PDW) vrátí příkaz zpět BACKUP DATABASE . Pokud chcete zmenšit velikost databáze, spusťte DBCC SHRINKLOG.
  • Pokus o spuštění zálohy v rámci transakce.

Poznámky

Před provedením zálohování databáze zmenšete velikost databáze pomocí DBCC SHRINKLOG .

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 BACKUP příkaz, 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 nedokončí.

Ú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í WITH DESCRIPTION možnosti pro přidání popisu a následným použitím RESTORE HEADERONLY příkazu k načtení popisu.

Omezení

Rozdílové zálohování master databáze nejde 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 jsou uložené ve formátu vhodném pouze pro obnovení zálohy do zařízení PDW (Analytics Platform System) pomocí příkazu RESTORE DATABASE .

Zálohování pomocí příkazu BACKUP DATABASE se nedá 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. Analytický systém (PDW) zařadí příkazy pro zálohování nebo obnovení do fronty, 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 této chybě 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í.

Metadatové informace

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 .

Zabezpečení

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žívá k ověřování systému Analytics Platform System (PDW) do záložního adresáře. 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 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 se nezálohuje pomocí BACKUP DATABASE příkazu.

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 ukládá a používá je k operacím zálohování a obnovení.

Důležitý

Z bezpečnostních důvodů doporučujeme vytvořit jeden účet domény výhradně pro provádění záloh.

EXECUTE 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).

EXECUTE 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 ukládá s informacemi hlavičky pro zálohování.

Rozdílové zálohování se úspěšně spustí pouze v případě, že 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 master 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'
)
;