Sdílet prostřednictvím


Zálohování SQL Serveru na adresu URL pro Azure Blob Storage

platí pro:SQL Serverazure SQL Managed Instance

Tento článek představuje koncepty, požadavky a komponenty potřebné k použití služby Azure Blob Storage jako cíle zálohování. Funkce zálohování a obnovení jsou stejné nebo podobné při použití DISK nebo TAPEs několika rozdíly. Tyto rozdíly a několik příkladů kódu jsou součástí tohoto článku.

Tip

Počínaje SQL Serverem 2025 (17.x) můžete zálohovat adresu URL se spravovanou identitou. Prozkoumejte zálohování pomocí adresy URL se spravovanou identitou (náhled) – SQL Server s podporou Azure Arc.

Overview

SQL Server 2012 Service Pack 1 CU2 a SQL Server 2014 zavedl možnost zálohovat na adresu URL, která odkazuje na Azure Blob Storage, pomocí známé syntaxe T-SQL k bezpečnému zápisu záloh do úložiště Azure. SQL Server 2016 (13.x) zavedl File-Snapshot zálohování databázových souborů v Azure a zabezpečení prostřednictvím klíčů sdíleného přístupového podpisu (SAS), bezpečného a jednoduchého způsobu ověřování certifikátů v zásadách zabezpečení služby Azure Storage.

Je důležité porozumět komponentám a interakci mezi nimi, abyste provedli zálohování nebo obnovení ze služby Azure Blob Storage.

Prvním krokem tohoto procesu je vytvoření účtu služby Azure Storage ve vašem předplatném Azure. Tento účet úložiště je účet pro správu, který má úplná oprávnění správce pro všechny kontejnery a objekty vytvořené pomocí účtu úložiště. SQL Server může buď použít název účtu úložiště Azure a jeho hodnotu přístupového klíče k ověřování a zápisu a čtení objektů blob ve službě Azure Blob Storage, nebo použít token sdíleného přístupového podpisu vygenerovaný u konkrétních kontejnerů, které mu udělují oprávnění ke čtení a zápisu. Další informace o účtech azure Storage najdete v tématu Účty úložiště Azure a další informace o sdílených přístupových podpisech najdete v tématu Sdílené přístupové podpisy, část 1: Principy modelu SAS. Přihlašovací údaje SQL Serveru ukládají tyto ověřovací informace a používají se během operací zálohování nebo obnovení.

Úložiště kompatibilní se službou Azure Storage a S3

SQL Server 2022 (16.x) zavádí možnost zápisu záloh do úložiště objektů kompatibilních s S3, přičemž funkce zálohování a obnovení se koncepčně podobají práci se službou Backup na adresu URL, která používá Azure Blob Storage jako typ záložního zařízení. SQL Server 2022 (16.x) rozšiřuje BACKUP/RESTORE TO/FROM URL syntaxi přidáním podpory nového konektoru S3 pomocí rozhraní REST API.

Tento článek obsahuje informace o použití služby Backup k adrese URL pro Azure Blob Storage. Další informace o použití služby Backup na adresu URL pro úložiště kompatibilní s S3 najdete v tématu Zálohování sql Serveru na adresu URL pro úložiště objektů kompatibilní s S3.

Zálohování do blokového objektu blob služby Azure Storage vs. stránkového objektu blob

Ve službě Azure Blob Storage je možné ukládat dva typy objektů blob: blokové a stránkové objekty blob. Pro SQL Server 2016 a novější se doporučuje používat blokový blob.

Pokud se klíč úložiště používá v přihlašovacích údajích, používá se blob stránky; pokud se používá sdílený přístupový podpis, používá se blob bloku.

Zálohování do objektu blob bloku je k dispozici pouze ve verzi SQL Serveru 2016 nebo novější pro zálohování do služby Azure Blob Storage. Pokud používáte SQL Server 2016 nebo novější, zálohujte do bloku blob místo stránky blob.

Hlavní důvody jsou:

  • Sdílený přístupový podpis představuje bezpečnější způsob autorizace přístupu k objektům blob v porovnání s klíčem úložiště.
  • Můžete zálohovat do více blokových blobů, abyste zlepšili výkon zálohování a obnovení a podpořili zálohování větších databází.
  • Blob bloku je levnější než blob stránky.
  • Zákazníci, kteří potřebují zálohování stránkovacích blobů přes proxy server, musí použít backuptourl.exe.

Zálohování velké databáze do služby Azure Blob Storage podléhá omezením uvedeným v rozdílech, omezeních a známých problémech ve službě Azure SQL Managed Instance T-SQL.

Pokud je databáze příliš velká, buď:

  • Použití komprese záloh nebo
  • Zálohování do více blokových blobů

Podpora pro Linux, kontejnery a spravovanou instanci SQL povolenou službou Azure Arc

Pokud je instance SQL Serveru hostovaná v Linuxu, včetně následujících:

  • Samostatný operační systém
  • Containers
  • Spravovaná instance SQL povolená službou Azure Arc
  • Jakékoli jiné linuxové prostředí

Jediným podporovaným způsobem zálohování do URL pro Azure Blob Storage je použití blokových objektů blob pomocí sdíleného přístupového podpisu.

Azure Blob Storage

Účet úložiště: Účet úložiště je výchozím bodem pro všechny služby úložiště. Pokud chcete získat přístup ke službě Azure Blob Storage, nejprve vytvořte účet úložiště Azure. Další informace najdete v tématu Vytvoření účtu úložiště.

Kontejner: Kontejner poskytuje seskupení sady objektů blob a může ukládat neomezený počet objektů blob. Pokud chcete napsat zálohu SQL Serveru do služby Azure Blob Storage, musíte mít vytvořený aspoň kořenový kontejner. Token sdíleného přístupového podpisu můžete v kontejneru vygenerovat a udělit přístup k objektům pouze v konkrétním kontejneru.

Kapka: Soubor libovolného typu a velikosti. Ve službě Azure Blob Storage je možné ukládat dva typy objektů blob: blokové a stránkové objekty blob. Zálohování SQL Serveru může v závislosti na použité syntaxi Transact-SQL použít některý typ objektu blob. Objekty blob jsou adresovatelné pomocí následujícího formátu adresy URL: https://< storage account.blob.core.windows.net/>< container>/<blob>. Další informace o službě Azure Blob Storage najdete v tématu Úvod do služby Azure Blob Storage. Další informace o stránkových a blokových blozích najdete v tématu Pochopení blokových a stránkových blobů.

Diagram účtů, kontejnerů a objektů blob v Azure Blob Storage

Snímek Azure: Snímek objektu blob Azure pořízeného v určitém okamžiku Další informace najdete v tématu Vytvoření snímku objektu blob. Zálohování SQL Serveru teď podporuje zálohy snímků databází uložených ve službě Azure Blob Storage. Další informace najdete v tématu File-Snapshot Zálohování databázových souborů v Azure.

Komponenty SQL Serveru

Adresa URL: Adresa URL určuje identifikátor URI (Uniform Resource Identifier) pro jedinečný záložní soubor. Adresa URL slouží k zadání umístění a názvu záložního souboru SQL Serveru. Adresa URL musí odkazovat na skutečný objekt blob, nejen na kontejner. Pokud blob neexistuje, vytvoří se. Pokud je zadaný existující objekt blob, BACKUP selže, pokud není zadána možnost WITH FORMAT pro přepsání existujícího záložního souboru v objektu blob.

Tady je ukázková hodnota adresy URL: https://ACCOUNTNAME.blob.core.windows.net/<CONTAINER>/FILENAME.bak.

Note

Zálohování na adresu URL pomocí protokolu HTTP se nepodporuje.

Pověření: Přihlašovací údaje SQL Serveru jsou objekt, který slouží k ukládání ověřovacích informací potřebných k připojení k prostředku mimo SQL Server. Tady procesy zálohování a obnovení SQL Serveru používají přihlašovací údaje k ověření ve službě Azure Blob Storage a jejích kontejnerech a objektech blob. Přihlašovací údaje ukládají název účtu úložiště a hodnoty přístupového klíče účtu úložiště nebo adresu URL kontejneru a token sdíleného přístupového podpisu. Po vytvoření přihlašovacího oprávnění syntaxe příkazů BACKUP/RESTORE určuje typ objektu blob a požadované oprávnění.

Příklad vytvoření sdíleného přístupového podpisu najdete v části Vytvoření příkladů sdíleného přístupového podpisu dále v tomto článku a vytvoření přihlašovacích údajů SYSTÉMU SQL Server v části Vytvoření příkladů přihlašovacích údajů dále v tomto článku.

Další informace o přihlašovacích údaji najdete v tématu Přihlašovací údaje (databázový stroj).>

Informace o dalších příkladech, kde se používají přihlašovací údaje, najdete v tématu Vytvoření proxy agenta SQL Serveru.

Podpora neměnného úložiště Azure

SQL Server 2025 (17.x) zavádí podporu neměnného úložiště Azure, které chrání před útoky ransomwarem. Soubory zapsané do neměnného úložiště nelze upravit ani odstranit, jak je definováno neměnností.

Zálohy SQL Serveru se obvykle vytvářejí ve dvou krocích. Zpočátku se .bak záložní soubor vytvoří s nulami a pak se soubor aktualizuje daty. Vzhledem k tomu, že úpravy souborů v neměnném úložišti nejsou po zápisu a potvrzení souboru povoleny, proces zálohování teď přeskočí počáteční krok k vytvoření záložního souboru s nulami. Místo toho se při zápisu do blokových objektů blob celá záloha vytvoří v jednom kroku.

Pokud chcete použít neměnné úložiště se zálohováním SQL Serveru 2025 (17.x) na adresu URL, postupujte takto:

  1. Nakonfigurujte neměnnost kontejneru úložiště Azure.

  2. Vyžádejte zálohu databáze do kontejneru úložiště Azure. Pokud použijete WITH FORMAT možnost v neměnném úložišti a záloha už existuje se stejným názvem, zobrazí se chyba a zálohování selže.

    BACKUP DATABASE [<Database>] TO URL = '<url>';
    

Zabezpečení pro Azure Blob Storage

Tady jsou aspekty zabezpečení a požadavky při zálohování nebo obnovení ze služby Azure Blob Storage.

  • Při vytváření kontejneru pro Azure Blob Storage doporučujeme nastavit přístup k privátnímu. Nastavení přístupu k privátnímu přístupu omezuje přístup k uživatelům nebo účtům, kteří můžou poskytnout potřebné informace pro ověření účtu Azure.

    Important

    SQL Server vyžaduje, aby byl v přihlašovacích údajích SQL Serveru uložený název účtu Azure a ověřování přístupového klíče nebo sdílený přístupový podpis a přístupový token. Tyto informace slouží k ověření účtu Azure při provádění operací zálohování nebo obnovení.

    Warning

    Služba Azure Storage podporuje možnost zablokování autorizace pomocí sdíleného klíče pro účet úložiště. Pokud je autorizace sdíleného klíče zakázaná, zálohování SQL Serveru na adresu URL nebude fungovat.

  • Uživatelský účet, který se používá k vydávání BACKUP nebo RESTORE příkazů, by měl být v databázové roli db_backup operátor s oprávněními Alter jakékoliv přihlašovací údaje.

Omezení zálohování a obnovení do služby Azure Blob Storage

  • SQL Server omezuje maximální podporovanou velikost zálohy s využitím objektu blob stránky na 1 TB. Maximální podporovaná velikost zálohování pomocí blokových blobů je omezená na přibližně 200 GB (50 000 bloků × 4 MB MAXTRANSFERSIZE). Objekty blob bloku podporují prokládání pro podporu podstatně větších velikostí zálohování – limit je maximálně 64 adres URL, což vede k následujícímu vzorci: 64 stripes * 50,000 blocks * 4MB maxtransfersize = 12.8 TB

    Important

    Ačkoliv maximální velikost zálohování podporovaná blokovým blobem je 200 GB, SQL Server může zapisovat v menších velikostech bloků, což může vést k dosažení limitu 50 000 bloků ještě před tím, než je celá záloha přenesena. Rozdělte zálohy (i když jsou menší než 200 GB) pro vyhnutí se limitu bloků, zvláště pokud používáte rozdílové nebo nekomprimované zálohy.

  • Příkazy pro zálohování nebo obnovení můžete vydávat pomocí transact-SQL, SMO, rutin PowerShellu nebo průvodce zálohováním nebo obnovením aplikace SQL Server Management Studio.

  • Při zálohování do účtu azure Storage SQL Server podporuje ověřování pouze pomocí tokenů sdíleného přístupového podpisu (SAS) nebo klíčů účtu úložiště. Všechny ostatní metody ověřování, včetně ověřování s ID Microsoft Entra (dříve Azure Active Directory), nejsou podporované.

  • Vytvoření názvu logického zařízení se nepodporuje. Není podporováno přidání adresy URL jako zálohovacího zařízení pomocí sp_dumpdevice nebo prostřednictvím SQL Server Management Studio.

  • Připojení k existujícím objektům blob zálohování se nepodporuje. Zálohy do existujícího objektu blob je možné přepsat pouze pomocí této WITH FORMAT možnosti. Pokud ale používáte zálohy snímků souborů (pomocí argumentu WITH FILE_SNAPSHOT), argument WITH FORMAT není povolený, aby se zabránilo vzniku osiřelých snímků souborů vytvořených pomocí původní zálohy snímku souboru.

  • Zálohování do více objektů blob v rámci jedné operace zálohování je podporováno pouze pomocí blokových objektů blob a tokenu sdíleného přístupového podpisu (SAS) místo klíče účtu úložiště pro SQL pověření.

  • Zadání BLOCKSIZE není podporováno pro objekty blob stránky.

  • Určení MAXTRANSFERSIZE není podporováno pro bloby stránky.

  • Určení možností zálohovací sady – RETAINDAYS a EXPIREDATE nejsou podporované.

  • SQL Server má maximální limit 259 znaků pro název zálohovaného zařízení. Pro BACKUP TO URL požadované prvky určující adresu URL https://.blob.core.windows.net//.bak se spotřebuje 36 znaků, což ponechává 223 znaků pro názvy účtů, kontejnerů a blobů.

  • SQL Server 2019 (15.x) a starší verze mají pro tokeny sdíleného přístupového podpisu (SAS) limit 256 znaků, což omezuje typ tokenů, které je možné použít (například tokeny klíče delegování uživatele se nepodporují).

  • Pokud váš server přistupuje k Azure přes proxy server, musíte použít příznak trasování 1819 a pak nastavit konfiguraci proxy serveru WinHTTP pomocí jedné z následujících metod:

    • Nástroj proxycfg.exe v systému Windows XP nebo Windows Server 2003 a starších verzích.
    • Nástroj netsh.exe v systémech Windows Vista a Windows Server 2008 nebo novějších.
  • Neměnné úložiště pro Azure Blob Storage se nepodporuje. Nastavte zásady neměnného úložiště na false.

  • Zálohování na adresu URL není podporováno ve službě Premium Storage.

Podporované argumenty a příkazy ve službě Azure Blob Storage

Podpora příkazů zálohování a obnovení ve službě Azure Blob Storage

Příkaz Backup/Restore Supported Exceptions Comments
BACKUP Yes BLOCKSIZE a MAXTRANSFERSIZE jsou podporovány pro blokové BLOBy. Nejsou podporované pro stránkové bloby. BACKUP objektu blob bloku vyžaduje sdílený přístupový podpis uložený v přihlašovacích údajích SQL Serveru. BACKUP objekt blob stránky vyžaduje klíč účtu úložiště uložený v přihlašovacích údajích SQL Serveru a vyžaduje zadání argumentu WITH CREDENTIAL .
RESTORE Yes Vyžaduje definování přihlašovacích údajů SQL Serveru a vyžaduje zadání argumentu WITH CREDENTIAL , pokud je přihlašovací údaje SQL Serveru definované pomocí klíče účtu úložiště jako tajného klíče.
RESTORE FILELISTONLY Yes Vyžaduje definování přihlašovacích údajů SQL Serveru a vyžaduje zadání argumentu WITH CREDENTIAL , pokud je přihlašovací údaje SQL Serveru definované pomocí klíče účtu úložiště jako tajného klíče.
RESTORE HEADERONLY Yes Vyžaduje definování přihlašovacích údajů SQL Serveru a vyžaduje zadání argumentu WITH CREDENTIAL , pokud je přihlašovací údaje SQL Serveru definované pomocí klíče účtu úložiště jako tajného klíče.
RESTORE LABELONLY Yes Vyžaduje definování přihlašovacích údajů SQL Serveru a vyžaduje zadání argumentu WITH CREDENTIAL , pokud je přihlašovací údaje SQL Serveru definované pomocí klíče účtu úložiště jako tajného klíče.
RESTORE VERIFYONLY Yes Vyžaduje definování přihlašovacích údajů SQL Serveru a vyžaduje zadání argumentu WITH CREDENTIAL , pokud je přihlašovací údaje SQL Serveru definované pomocí klíče účtu úložiště jako tajného klíče.
RESTORE REWINDONLY No

Syntaxe a obecné informace o příkazech zálohování najdete v tématu BACKUP.

Syntaxe a obecné informace o příkazech restore naleznete v tématu PŘÍKAZY RESTORE.

Podpora argumentů zálohování ve službě Azure Blob Storage

Argument Supported Exception Comments
DATABASE Yes
LOG Yes
TO (URL) Yes Na rozdíl od DISK a TAPE adresy URL nepodporují zadávání ani vytváření logického názvu. Tento argument slouží k určení cesty URL záložního souboru.
MIRROR TO Yes
WITH volby:
CREDENTIAL Yes WITH CREDENTIAL se podporuje pouze při použití BACKUP TO URL možnosti zálohování do služby Azure Blob Storage a pouze v případě, že jsou přihlašovací údaje SQL Serveru definované pomocí klíče účtu úložiště jako tajného klíče.
FILE_SNAPSHOT Yes
ENCRYPTION Yes WITH ENCRYPTION Pokud je argument zadán, SQL Server File-Snapshot Backup zajišťuje, že celá databáze byla před provedením zálohování zašifrována pomocí TDE, a pokud ano, zašifruje samotný soubor zálohy snímku pomocí algoritmu specifikovaného pro TDE v databázi. Pokud všechna data v databázi v celé databázi nejsou šifrovaná, zálohování selže (například proces šifrování ještě není dokončený).
DIFFERENTIAL Yes
COPY_ONLY Yes
COMPRESSION|NO_COMPRESSION Yes Zálohování snímků souborů se nepodporuje.
DESCRIPTION Yes
NAME Yes
EXPIREDATE | RETAINDAYS No
NOINIT | INIT No Přidávání k blobům není možné. Pokud chcete přepsat zálohu, použijte WITH FORMAT argument. Pokud ale používáte zálohy snímků souborů (pomocí argumentu WITH FILE_SNAPSHOT), argument WITH FORMAT není povolen, aby se zabránilo vzniku osiřelých snímků souborů, které byly vytvořeny s původní zálohou.
NOSKIP | SKIP No
NOFORMAT | FORMAT Yes Zálohování pořízené do existujícího objektu blob selže, pokud WITH FORMAT není zadáno. Existující objekt blob se přepíše při zadání WITH FORMAT. Pokud ale používáte zálohy snímků souborů (pomocí argumentu WITH FILE_SNAPSHOT), argument FORMAT není povolený, aby se zabránilo vzniku osiřelých snímků souborů vytvořených pomocí původní zálohy snímku souboru. Pokud ale používáte zálohy snímků souborů (pomocí argumentu WITH FILE_SNAPSHOT), argument WITH FORMAT není povolen, aby se zabránilo vzniku osiřelých snímků souborů, které byly vytvořeny s původní zálohou.
MEDIADESCRIPTION Yes
MEDIANAME Yes
BLOCKSIZE Yes Nelze použít pro objekt blob stránky. Podporováno pro blokový blob. Doporučujeme BLOCKSIZE=65536 optimalizovat použití 50 000 bloků povolených v blokovém blobu.
BUFFERCOUNT Yes
MAXTRANSFERSIZE Yes Nelze použít pro objekt blob stránky. Podporováno pro blokový blob. Výchozí hodnota je 1048576. Hodnota může být v rozsahu až 4 MB v přírůstcích po 65 536 bajtů.

Doporučujeme MAXTRANSFERSIZE=4194304 optimalizovat použití 50 000 bloků povolených v blokovém blobu.
NO_CHECKSUM | CHECKSUM Yes
STOP_ON_ERROR | CONTINUE_AFTER_ERROR Yes
STATS Yes
REWIND | NOREWIND No
UNLOAD | NOUNLOAD No
NORECOVERY | STANDBY Yes
NO_TRUNCATE Yes

Další informace o argumentech zálohování najdete v tématu ZÁLOHOVÁNÍ.

Podpora argumentů obnovení ve službě Azure Blob Storage

Argument Supported Exceptions Comments
DATABASE Yes
LOG Yes
FROM (URL) Yes Argument FROM URL slouží k zadání cesty URL záložního souboru.
WITH volby:
CREDENTIAL Yes WITH CREDENTIAL podporuje se pouze při použití RESTORE FROM URL možnosti obnovení ze služby Azure Blob Storage.
PARTIAL Yes
RECOVERY | NORECOVERY | STANDBY Yes
LOADHISTORY Yes
MOVE Yes
REPLACE Yes
RESTART Yes
RESTRICTED_USER Yes
FILE No
PASSWORD Yes
MEDIANAME Yes
MEDIAPASSWORD Yes
BLOCKSIZE Yes
BUFFERCOUNT No
MAXTRANSFERSIZE No
CHECKSUM | NO_CHECKSUM Yes
STOP_ON_ERROR | CONTINUE_AFTER_ERROR Yes
FILESTREAM Yes Nepodporuje se zálohování snímků.
STATS Yes
REWIND | NOREWIND No
UNLOAD | NOUNLOAD No
KEEP_REPLICATION Yes
KEEP_CDC Yes
ENABLE_BROKER | ERROR_BROKER_CONVERSATIONS | NEW_BROKER Yes
STOPAT | STOPATMARK | STOPBEFOREMARK Yes

Další informace o argumentech restore naleznete v tématu PŘÍKAZY RESTORE – argumenty.

Zálohujte pomocí SSMS

Databázi můžete zálohovat na adresu URL prostřednictvím úlohy Zálohování v aplikaci SQL Server Management Studio pomocí přihlašovacích údajů SQL Serveru.

Note

Pokud chcete vytvořit zálohu snímků souborů SQL Serveru nebo přepsat existující sadu médií, musíte místo úlohy Zálohování v sadě SQL Server Management Studio použít jazyk Transact-SQL, PowerShell nebo C#.

Následující kroky popisují změny úlohy Zálohovat databázi v aplikaci SQL Server Management Studio, které umožňují zálohování do úložiště Azure:

  1. V Object Explorerse připojte k instanci databázového stroje SQL Server a poté rozbalte tuto instanci.

  2. Rozbalte položku Databáze, klikněte pravým tlačítkem myši na požadovanou databázi, přejděte na příkaz Úkoly a pak vyberte Zálohovat....

  3. Na stránce Obecné v části Cíl je možnost ADRESA URL dostupná v rozevíracím seznamu Zálohovat na: Možnost URL slouží k vytvoření zálohy do úložiště Azure. Vyberte Přidat a otevře se dialogové okno Vybrat cíl zálohování :

    1. Kontejner úložiště Azure: Název kontejneru úložiště Azure pro ukládání záložních souborů. V rozevíracím seznamu vyberte existující kontejner nebo ručně zadejte kontejner.

    2. Zásady sdíleného přístupu: Zadejte sdílený přístupový podpis pro ručně zadaný kontejner. Toto pole není dostupné, pokud byl vybrán existující kontejner.

    3. Záložní soubor: Název záložního souboru.

    4. Nový kontejner: Slouží k registraci existujícího kontejneru, pro který nemáte sdílený přístupový podpis. Viz Připojení k předplatnému Microsoft Azure (zálohování NA URL)

Note

Přidat podporuje více záložních souborů a kontejnerů úložiště pro jednu sadu médií.

Když jako cíl vyberete adresu URL , některé možnosti na stránce Možnosti médií jsou zakázané. Následující články obsahují další informace o dialogovém okně Zálohovat databázi:

Vytvořte zálohu pomocí plánu údržby

Podobně jako dříve popsaná úloha zálohování obsahuje Průvodce plánem údržby v aplikaci SQL Server Management Studio adresu URL jako jednu z cílových možností a další podpůrné objekty potřebné k zálohování do úložiště Azure, jako jsou přihlašovací údaje SQL. Má stejnou Další informace najdete v části Definovat úlohy zálohování v Průvodci plánem údržby.

Note

Pokud chcete vytvořit pásovou zálohovací sadu, zálohování snímků souborů SQL Serveru nebo SQL přihlašovací údaje pomocí sdíleného přístupového tokenu, musíte použít Transact-SQL, PowerShell nebo C# místo úlohy Zálohování v Průvodci plánem údržby.

Obnovení pomocí SSMS

Úloha Obnovit databázi obsahuje adresu URL jako zařízení, ze které se má provést obnovení. Následující kroky popisují použití úlohy obnovení k obnovení ze služby Azure Blob Storage:

  1. Klikněte pravým tlačítkem na Databáze a vyberte Obnovit databázi....

  2. Na stránce Obecné vyberte v části Zdrojzařízení.

  3. Výběrem tlačítka Procházet (...) otevřete dialogové okno Vybrat zálohovací zařízení .

  4. Vyberte adresu URL z typu záložního média: rozbalovacího seznamu. Výběrem Přidat otevřete dialogové okno Vyberte umístění záložního souboru.

    1. Kontejner úložiště Azure: Plně kvalifikovaný název kontejneru úložiště Azure, který obsahuje záložní soubory. V rozevíracím seznamu vyberte existující kontejner nebo ručně zadejte plně kvalifikovaný název kontejneru.

    2. Sdílený přístupový podpis: Slouží k zadání sdíleného přístupového podpisu pro určený kontejner.

    3. Přidat: Slouží k registraci existujícího kontejneru, pro který nemáte sdílený přístupový podpis. Viz Připojení k předplatnému Microsoft Azure (zálohování NA URL)

    4. OK: SQL Server se připojí k úložišti Azure pomocí informací o přihlašovacích údajích SQL, které jste zadali, a otevře dialogové okno Najít záložní soubor v Microsoft Azure . Záložní soubory umístěné v kontejneru úložiště se zobrazí na této stránce. Vyberte soubor, který chcete použít k obnovení, a vyberte OK. Tím se vrátíte do dialogového okna Vybrat zálohovací zařízení a výběrem možnosti OK v tomto dialogovém okně se vrátíte do hlavního dialogového okna Obnovit , kde můžete obnovení dokončit.

Příklady kódu

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

Note

Kurz použití SQL Serveru 2016 se službou Azure Blob Storage najdete v kurzu: Použití služby Azure Blob Storage s SQL Serverem

Vytvoření sdíleného přístupového podpisu

Následující příklad vytvoří sdílené přístupové podpisy, které lze použít k vytvoření přihlašovacích údajů SQL Serveru v nově vytvořeném kontejneru. Skript vytvoří sdílený přístupový podpis přidružený k uloženým zásadám přístupu. Další informace najdete v tématu Sdílené přístupové podpisy, část 1: Principy modelu SAS. Skript také zapíše příkaz T-SQL potřebný k vytvoření přihlašovacích údajů na SQL Serveru.

Note

Příklad vyžaduje Azure PowerShell. Informace o instalaci a používání Azure PowerShellu najdete v tématu Postup instalace a konfigurace Azure PowerShellu. Tyto skripty byly ověřeny pomocí Azure PowerShellu 5.1.15063.

Sdílený přístupový podpis přidružený k uloženým zásadám přístupu

# Define global variables for the script
$prefixName = '<a prefix name>'  # used as the prefix for the name for various objects
$subscriptionName = '<your subscription name>'   # the name of subscription name you will use
$locationName = '<a data center location>'  # the data center region you will use
$storageAccountName = $prefixName + 'storage' # the storage account name you will create or use
$containerName = $prefixName + 'container'  # the storage container name to which you will attach the SAS policy with its SAS token
$policyName = $prefixName + 'policy' # the name of the SAS policy

# Set a variable for the name of the resource group you will create or use
$resourceGroupName = $prefixName + 'rg'

# adds an authenticated Azure account for use in the session
Connect-AzAccount

# set the tenant, subscription and environment for use in the rest of
Set-AzContext -SubscriptionName $subscriptionName

# create a new resource group - comment out this line to use an existing resource group
New-AzResourceGroup -Name $resourceGroupName -Location $locationName

# Create a new ARM storage account - comment out this line to use an existing ARM storage account
New-AzStorageAccount -Name $storageAccountName -ResourceGroupName $resourceGroupName -Type Standard_RAGRS -Location $locationName

# Get the access keys for the ARM storage account
$accountKeys = Get-AzStorageAccountKey -ResourceGroupName $resourceGroupName -Name $storageAccountName

# Create a new storage account context using an ARM storage account
$storageContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $accountKeys[0].value

# Creates a new container in Azure Blob Storage
$container = New-AzStorageContainer -Context $storageContext -Name $containerName
$cbc = $container.CloudBlobContainer

# Sets up a Stored Access Policy and a Shared Access Signature for the new container
$policy = New-AzStorageContainerStoredAccessPolicy -Container $containerName -Policy $policyName -Context $storageContext -ExpiryTime $(Get-Date).ToUniversalTime().AddYears(10) -Permission "rwld"
$sas = New-AzStorageContainerSASToken -Policy $policyName -Context $storageContext -Container $containerName
Write-Host 'Shared Access Signature= '$($sas.TrimStart('?'))''

# Outputs the Transact SQL to the clipboard and to the screen to create the credential using the Shared Access Signature
Write-Host 'Credential T-SQL'
$tSql = "CREATE CREDENTIAL [{0}] WITH IDENTITY='Shared Access Signature', SECRET='{1}'" -f $cbc.Uri, $sas.TrimStart('?')
$tSql | clip
Write-Host $tSql

Po úspěšném spuštění skriptu zkopírujte CREATE CREDENTIAL příkaz do nástroje pro dotazy, připojte se k instanci SQL Serveru a spusťte příkaz pro vytvoření přihlašovacích údajů se sdíleným přístupovým podpisem.

Vytvoření přihlašovacích údajů

Následující příklady vytvoří přihlašovací údaje SQL Serveru pro ověřování ve službě Azure Blob Storage. Udělejte jednu z následujících věcí.

  1. Použití sdíleného přístupového podpisu

    Pokud jste spustili předchozí skript pro vytvoření sdíleného přístupového podpisu, zkopírujte CREATE CREDENTIAL editor dotazů připojený k vaší instanci SQL Serveru a spusťte příkaz.

    Následující T-SQL je příklad, který vytvoří přihlašovací údaje pro použití sdíleného přístupového podpisu.

    IF NOT EXISTS (SELECT *
                   FROM sys.credentials
                   WHERE name = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>')
        CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>]
            WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = '<SAS_TOKEN>';
    
  2. Použití identity účtu úložiště a přístupového klíče

    IF NOT EXISTS (SELECT *
                   FROM sys.credentials
                   WHERE name = '<mycredentialname>')
        CREATE CREDENTIAL [<mycredentialname>]
            WITH IDENTITY = '<mystorageaccountname>', SECRET = '<mystorageaccountaccesskey>';
    

Provedení úplného zálohování databáze

Následující příklady provádějí úplnou zálohu AdventureWorks2025 databáze do služby Azure Blob Storage. Použijte jednu z následujících ukázek:

  1. Adresa URL s použitím sdíleného přístupového podpisu

    BACKUP DATABASE AdventureWorks2022
        TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022.bak';
    GO
    
  2. Přístup k adrese URL pomocí identity účtu úložiště a přístupového klíče

    BACKUP DATABASE AdventureWorks2022
    TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022.bak'
    WITH CREDENTIAL = '<mycredentialname>',
    COMPRESSION, STATS = 5;
    GO
    

Obnovení k určitému bodu v čase pomocí funkce STOPAT

Následující příklad obnoví AdventureWorks2025 ukázkovou databázi do jejího stavu v určitém okamžiku a zobrazí operaci obnovení.

Z adresy URL pomocí sdíleného přístupového podpisu

RESTORE DATABASE AdventureWorks2022
    FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022_2015_05_18_16_00_00.bak'
    WITH MOVE 'AdventureWorks2022_data' TO 'C:\Program Files\Microsoft SQL Server\<myinstancename>\MSSQL\DATA\AdventureWorks2022.mdf',
    MOVE 'AdventureWorks2022_log' TO 'C:\Program Files\Microsoft SQL Server\<myinstancename>\MSSQL\DATA\AdventureWorks2022.ldf',
    NORECOVERY, REPLACE, STATS = 5;
GO

RESTORE LOG AdventureWorks2022
    FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022_2015_05_18_18_00_00.trn'
    WITH RECOVERY, STOPAT = 'May 18, 2015 5:35 PM';
GO