Sdílet prostřednictvím


Datové soubory SQL Serveru v Microsoft Azure

platí pro:SQL Server

Dekorativní obrázek datových souborů v Azure

Datové soubory SQL Serveru v Microsoft Azure umožňují nativní podporu databázových souborů SQL Serveru uložených jako objekty blob. Umožňuje vytvořit databázi na SQL Serveru běžícím v místním prostředí nebo ve virtuálním počítači v Microsoft Azure s vyhrazeným umístěním úložiště pro vaše data v Úložišti objektů blob Microsoft Azure. Zjednodušuje také proces přesouvání databází mezi počítači. Databáze můžete odpojit od jednoho počítače a připojit je k jinému počítači. Kromě toho poskytuje alternativní umístění úložiště pro záložní soubory databáze tím, že umožňuje obnovení z nebo do Služby Microsoft Azure Storage. Proto umožňuje několik hybridních řešení tím, že poskytuje několik výhod virtualizace dat, přesunu dat, zabezpečení a dostupnosti a jakýchkoli snadných nízkých nákladů a údržby pro vysokou dostupnost a elastické škálování.

Důležité

Ukládání systémových databází ve službě Azure Blob Storage se nedoporučuje a nepodporuje se.

Tento článek představuje koncepty a aspekty, které jsou centrální pro ukládání datových souborů SQL Serveru ve službě Microsoft Azure Storage.

Praktické praktické praktické zkušenosti s používáním této funkce najdete v kurzu : Použití služby Microsoft Azure Blob Storage s databázemi SQL Serveru.

Proč používat datové soubory SQL Serveru v Microsoft Azure?

  • Výhody snadné a rychlé migrace: Tato funkce zjednodušuje proces migrace přesunutím jedné databáze najednou mezi počítači v místním prostředí i mezi místním a cloudovým prostředím bez jakýchkoli změn aplikací. Proto podporuje přírůstkovou migraci při zachování stávající místní infrastruktury. Přístup k centralizovaným úložišti dat navíc zjednodušuje logiku aplikace v případě, že aplikace musí běžet v několika umístěních v místním prostředí. V některých případech možná budete muset rychle nastavit počítačová centra v geograficky rozptýlených umístěních, která shromažďují data z mnoha různých zdrojů. Díky datovým souborům Azure můžete místo přesunu dat z jednoho umístění do jiného uložit mnoho databází jako objekty blob stránky Microsoft Azure a pak spustit Transact-SQL skripty pro vytváření databází na místních počítačích nebo virtuálních počítačích.

  • Náklady a neomezené výhody úložiště: Tato funkce umožňuje mít neomezené úložiště mimo lokalitu v Microsoft Azure a využívat místní výpočetní prostředky. Když používáte Microsoft Azure jako umístění úložiště, můžete se snadno zaměřit na logiku aplikace bez režijních nákladů na správu hardwaru. Pokud ztratíte výpočetní uzel místně, můžete nastavit nový uzel bez jakéhokoli přesunu dat.

  • Výhody vysoké dostupnosti a zotavení po havárii: Použití datových souborů SQL Serveru v Microsoft Azure může zjednodušit řešení vysoké dostupnosti a zotavení po havárii. Pokud například dojde k chybovému ukončení virtuálního počítače v Microsoft Azure nebo instanci SQL Serveru, můžete znovu vytvořit databáze v nové instanci SQL Serveru tak, že znovu vytvoříte odkazy na objekty blob.

  • Výhody zabezpečení: S datovými soubory SQL Serveru v Azure můžete výpočetní instanci oddělit od instance úložiště. Můžete mít plně zašifrovanou databázi s dešifrováním, ke které dochází pouze u výpočetní instance, ale ne v instanci úložiště. Jinými slovy, můžete šifrovat všechna data ve veřejném cloudu pomocí certifikátů transparentního šifrování dat (TDE), které jsou fyzicky oddělené od dat. Klíče transparentního master šifrování dat je možné ukládat do databáze, která je uložena místně ve vašem fyzicky zabezpečeném místním počítači a zálohovat místně. Tyto místní klíče můžete použít k šifrování dat, která se nacházejí v Microsoft Azure Storage. Pokud dojde k odcizení přihlašovacích údajů k účtu cloudového úložiště, zůstanou vaše data stále zabezpečená, protože certifikáty transparentního šifrování dat se vždy nacházejí v místním prostředí.

  • Zálohování snímků: Tato funkce umožňuje používat snímky Azure k zajištění téměř okamžitých záloh a rychlejšího obnovení databázových souborů uložených pomocí služby Azure Blob Storage. Tato funkce umožňuje zjednodušit zásady zálohování a obnovení. Další informace najdete v tématu File-Snapshot Zálohování databázových souborů v Azure.

Koncepty a požadavky

Disky Azure jsou kompatibilní s podnikovými řešeními provozní kontinuity a zotavení po havárii. Pokud databáze ukládáte přímo do objektů blob nebo ve službě Azure Premium Files, nebudou data automaticky přidružená k vašemu virtuálnímu počítači pro infrastrukturu, správu a monitorování.

Umístění souborů databáze na stránkové bloby představuje pokročilejší funkci než použití disků Azure, které jsou jednoduché a uživatelsky přívětivé.

Základní pokyny zahrnují používání disků Azure, pokud nemáte scénář, ve kterém se opravdu potřebujete vyhnout vytvoření kopie dat pro zálohování nebo obnovení jako operaci úměrnou velikosti dat. Pro zajištění vysoké dostupnosti a zotavení po havárii je použití pravidelného zálohování na adresu URL nebo spravované zálohování do úložiště objektů blob mnohem užitečnější než zálohování snímků souborů, protože získáte správu životního cyklu, podporu více oblastí, obnovitelné odstranění a všechny ostatní funkce úložiště objektů blob vašich záloh.

Koncepty služby Azure Storage

Při použití datových souborů SQL Serveru ve funkci Azure je potřeba vytvořit účet úložiště a kontejner v Azure. Pak musíte vytvořit přihlašovací údaje SQL Serveru, které obsahují informace o zásadách kontejneru a sdílený přístupový podpis, který je nezbytný pro přístup ke kontejneru.

V Microsoft Azure představuje účet úložiště Azure nejvyšší úroveň oboru názvů pro přístup k objektům blob. Účet úložiště může obsahovat neomezený počet kontejnerů, pokud je jejich celková velikost nižší než limity úložiště. Nejnovější informace o limitech úložiště najdete v tématu Limity, kvóty a omezení předplatného a služeb Azure. Kontejner poskytuje seskupení souboru blobů. Všechny blobové objekty musí být uloženy v kontejneru. Účet může obsahovat neomezený počet kontejnerů. Podobně může kontejner ukládat neomezený počet objektů blob.

V Azure Storage je možné ukládat dva typy objektů blob: blokové a stránkové objekty blob. Tato funkce používá objekty blob stránky, které jsou efektivnější, když se často mění rozsahy bajtů v souboru. K objektům blob můžete přistupovat pomocí následujícího formátu adresy URL: https://storageaccount.blob.core.windows.net/<container>/<blob>.

Poznámka:

Objekty blob bloku nelze použít pro datové soubory SQL Serveru. Použijte objekty blob stránky.

Záležitosti související s fakturací Azure

Odhad nákladů na používání služeb Azure je důležitou věcí při rozhodování a plánování. Při ukládání datových souborů SQL Serveru ve službě Azure Storage musíte zaplatit náklady spojené s úložištěm a transakcemi. Kromě toho implementace datových souborů SQL Serveru ve službě Azure Storage vyžaduje implicitně obnovení zapůjčení objektů blob každých 45 až 60 sekund. Výsledkem jsou také náklady na transakce na soubor databáze, například .mdf nebo .ldf. Informace na stránce s cenami Azure vám pomůžou odhadnout měsíční náklady spojené s používáním služby Azure Storage a virtuálních počítačů Azure.

Koncepty SQL Serveru

Pro použití stránkových blobů Azure pro datové soubory SQL Serveru:

  • Vytvořte zásadu v kontejneru a také vygenerujte sdílený přístupový podpis (SAS).

  • Pro každý kontejner používaný daty nebo souborem protokolu vytvořte přihlašovací údaje SQL Serveru, jejichž název odpovídá cestě ke kontejneru.

  • Uložte informace týkající se kontejneru Azure Storage, jeho přidruženého názvu zásady a klíče SAS v úložišti přihlašovacích údajů SQL Serveru.

Následující příklad předpokládá, že se vytvořil kontejner úložiště Azure a že se vytvořila zásada s právy ke čtení, zápisu a výpisu. Vytvoření zásady v kontejneru vygeneruje klíč SAS, který je bezpečné uchovávat nešifrovaný v paměti a je potřebný pro SQL Server k přístupu k blobům v kontejneru.

V následujícím fragmentu kódu nahraďte '<your SAS key>' klíčem SAS. Klíč SAS bude vypadat takto 'sr=c&si=<MYPOLICYNAME>&sig=<THESHAREDACCESSSIGNATURE>'.

CREATE CREDENTIAL [https://testdb.blob.core.windows.net/data]  
WITH IDENTITY='SHARED ACCESS SIGNATURE',  
SECRET = '<your SAS key>'  
  
CREATE DATABASE testdb   
ON  
( NAME = testdb_dat,  
    FILENAME = 'https://testdb.blob.core.windows.net/data/TestData.mdf' )  
 LOG ON  
( NAME = testdb_log,  
    FILENAME =  'https://testdb.blob.core.windows.net/data/TestLog.ldf')  

Důležité

Pokud v kontejneru existují nějaké aktivní odkazy na datové soubory, pokus o odstranění odpovídajících přihlašovacích údajů SQL Serveru selže.

Další informace najdete v tématu Správa přístupu k prostředkům azure Storage.

Zabezpečení

Tady jsou aspekty zabezpečení a požadavky při ukládání datových souborů SQL Serveru ve službě Azure Storage.

  • Při vytváření kontejneru pro Azure Blob Storage doporučujeme nastavit přístup k privátnímu. Když nastavíte přístup k privátnímu kontejneru a datům objektů blob, může je číst jenom vlastník účtu Azure.

  • Při ukládání databázových souborů SQL Serveru ve službě Azure Storage musíte použít sdílený přístupový podpis, identifikátor URI, který uděluje omezená přístupová práva ke kontejnerům, objektům blob, frontám a tabulkám. Pomocí sdíleného přístupového podpisu můžete SQL Serveru povolit přístup k prostředkům ve vašem účtu úložiště bez sdílení klíče účtu úložiště Azure.

  • Kromě toho doporučujeme pokračovat v implementaci tradičních místních postupů zabezpečení pro vaše databáze.

Požadavky na instalaci

Před ukládáním datových souborů SQL Serveru v Azure je třeba splnit následující požadavky na instalaci.

  • Místní SQL Server: SQL Server 2016 a novější obsahují tuto funkci. Informace o tom, jak stáhnout nejnovější verzi SQL Serveru, najdete v tématu SQL Server.

  • SQL Server spuštěný na virtuálním počítači Azure: Pokud instalujete SQL Server na virtuální počítač Azure, nainstalujte SQL Server 2016 nebo aktualizujte stávající instanci. Podobně můžete také vytvořit nový virtuální počítač v Azure pomocí image platformy SQL Server 2016.

Omezení

  • Vzhledem k výkonu úloh SQL Serveru se datové soubory SQL Serveru implementují jako objekty blob stránky ve službě Azure Blob Storage. Jiné typy objektů pro ukládání dat, jako jsou blokové objekty nebo Azure Data Lake Storage, nejsou podporovány.

  • V aktuální verzi této funkce se ukládání dat FileStream ve službě Azure Storage nepodporuje. Data FileStream můžete uložit do databáze, která obsahuje také datové soubory uložené ve službě Azure Storage, ale všechny datové soubory FileStream musí být uložené v místním úložišti. Vzhledem k tomu, že se data FileStream musí nacházet v místním úložišti, nelze je přesouvat mezi počítači pomocí služby Azure Storage, proto doporučujeme pokračovat v používání tradičních technik pro přesun dat přidružených k FileStreamu mezi různými počítači.

  • V současné době má k danému databázovému souboru ve službě Azure Storage přístup jenom jedna instance SQL Serveru. Pokud je InstanceA online s aktivním databázovým souborem a pokud je InstanceB omylem spuštěna a má také databázi, která odkazuje na stejný datový soubor, druhá instance nespustí databázi s kódem 5120 Unable to open the physical file "%.\*ls". Operating system error %d: "%ls"chyby .

  • Ve službě Azure Storage je možné ukládat pouze soubory .mdf, .ldf a .ndf pomocí datových souborů SQL Serveru ve funkci Azure.

  • Při použití funkce datových souborů SQL Serveru v Azure se geografická replikace pro váš účet úložiště nepodporuje. Pokud je účet úložiště replikovaný geograficky a došlo k převzetí služeb po geografickém selhání, může dojít k poškození databáze.

  • Omezení kapacity najdete v tématu Úvod do úložiště objektů blob.

  • Ve službě Azure Storage nelze ukládat data In-Memory OLTP v úložišti objektů Blob pomocí funkce Datové soubory SQL Serveru. Důvodem je to, že In-Memory OLTP má závislost na FileStreamu a v aktuální verzi této funkce není podporováno ukládání dat FileStream ve službě Azure Storage.

  • Při použití datových souborů SQL Serveru ve funkci Azure provádí SQL Server porovnání všech adres URL nebo cest k souborům pomocí kolace nastavené v master databázi.

  • Skupiny dostupnosti AlwaysOn se podporují, pokud do databáze na primární replice nepřidáte nové databázové soubory. Pokud operace databáze vyžaduje vytvoření nového souboru v databázi na primární replice, nejprve zakažte skupiny dostupnosti v sekundárním uzlu. Pak proveďte operaci databáze s databází a zálohujte ji v primární replice. V dalším kroku obnovte databázi do sekundární repliky. Po dokončení znovu povolte skupiny dostupnosti AlwaysOn v sekundárním uzlu.

    Poznámka:

    Instance clusteru Always On s podporou převzetí služeb při selhání nejsou podporovány při použití funkce datových souborů SQL Serveru v Azure.

  • Během normálního provozu SQL Server používá dočasné pronájmy k rezervaci blobů pro ukládání s obnovením pronájmu každého blobu každých 45 až 60 sekund. Pokud dojde k chybě serveru a spustí se jiná instance SQL Serveru nakonfigurovaná tak, aby používaly stejné objekty blob, nová instance počká až 60 sekund, než vyprší platnost stávajícího zapůjčení objektu blob. Pokud chcete databázi připojit k jiné instanci a nemůžete čekat, než vyprší pronájem do 60 sekund, můžete pronájem na objektu blob explicitně uvolnit.

Referenční podpora nástrojů a programování

Tato část popisuje, které nástroje a referenční knihovny programování je možné použít při ukládání datových souborů SQL Serveru ve službě Azure Storage.

Podpora PowerShellu

Pomocí rutin PowerShellu můžete ukládat datové soubory SQL Serveru ve službě Blob Storage tak, že místo cesty k souboru odkazujete na cestu URL úložiště objektů blob. Přístup k objektům blob pomocí následujícího formátu adresy URL: https://storageaccount.blob.core.windows.net/<container>/<blob>.

Podpora čítačů výkonu a objektů SQL Serveru

Od VERZE SQL Server 2014 se do funkce Azure Storage přidal nový objekt SQL Serveru, který se bude používat s datovými soubory SQL Serveru. Nový objekt SQL Serveru se nazývá SQL Server, HTTP_STORAGE_OBJECT a může ho použít nástroj Sledování systému k monitorování aktivity při spuštění SQL Serveru s Azure Storage.

Podpora aplikace SQL Server Management Studio

SQL Server Management Studio umožňuje použít tuto funkci prostřednictvím několika dialogových oken. Představuje například https://teststorageaccnt.blob.core.windows.net/testcontainer/ cestu URL kontejneru úložiště. Tuto cestu můžete zobrazit v několika dialogových oknech, jako jsou nová databáze, připojení databáze a obnovení databáze. Další informace najdete v tématu Kurz: Použití služby Azure Blob Storage s databázemi SQL Serveru.

Podpora objektů SMO (SQL Server Management Objects)

Při použití datových souborů SQL Serveru ve funkci Azure jsou podporovány všechny objekty SMO (SQL Server Management Objects). Pokud objekt SMO vyžaduje cestu k souboru, použijte místo místní cesty k souboru formát URL objektu BLOB, například https://teststorageaccnt.blob.core.windows.net/testcontainer/. Další informace o objektech sql Server Management Objects (SMO) naleznete v průvodci programováním sql Server Management Objects (SMO) v SQL Server Books Online.

podpora Transact-SQL

Přidání této funkce zavedlo následující změnu v povrchové oblasti Transact-SQL.

  • Nový int sloupec credential_id, v systémovém sys.master_files zobrazení. Sloupec credential_id slouží k umožnění zpětného vytváření křížových odkazů datových souborů Azure Storage na sys.credentials pro přihlašovací údaje vytvořené pro ně. Můžete ho použít k řešení potíží, například přihlašovací údaje nelze odstranit, pokud je k dispozici soubor databáze, který ho používá.

Řešení potíží s datovými soubory SQL Serveru v Microsoft Azure

Pokud se chcete vyhnout chybám kvůli nepodporovaným funkcím nebo omezením, projděte si nejprve omezení.

Seznam chyb, které se můžou zobrazit při používání datových souborů SQL Serveru ve službě Azure Storage, jsou následující.

Chyby ověřování

  • Přihlašovací údaje%.*ls nelze odstranit, protože je používán aktivním souborem databáze.
    Řešení: Tato chyba se může zobrazit při pokusu o vyřazení přihlašovacích údajů, které stále používá aktivní databázový soubor ve službě Azure Storage. Pokud chcete přihlašovací údaje odstranit, musíte nejprve odstranit přidružený objekt blob s tímto souborem databáze. Pokud chcete odstranit objekt blob s aktivním pronájmem, musíte nejprve uvolnit pronájem.

  • Sdílený přístupový podpis nebyl v kontejneru správně vytvořen.
    Řešení: Ujistěte se, že jste v kontejneru správně vytvořili sdílený přístupový podpis. Projděte si pokyny uvedené v lekci 2 v kurzu: Použití služby Azure Blob Storage s databázemi SQL Serveru.

  • Přihlašovací údaje SQL Serveru se nevytvořily správně.
    Řešení: Ujistěte se, že jste pro pole Identita použili sdílený přístupový podpis a správně vytvořili tajný kód. Projděte si pokyny uvedené v lekci 3 v kurzu: Použití služby Azure Blob Storage s databázemi SQL Serveru.

Chyby objektu blob zapůjčení:

  • Chyba při pokusu o spuštění SQL Serveru po chybě jiné instance, která používá stejné soubory objektů blob. Řešení: Během normálního provozu SQL Server používá dočasné zapůjčení k rezervaci objektů blob pro úložiště s obnovením zapůjčení každého objektu blob každých 45 až 60 sekund. Pokud dojde k chybě serveru a spustí se jiná instance SQL Serveru nakonfigurovaná tak, aby používaly stejné objekty blob, nová instance počká až 60 sekund, než vyprší platnost stávajícího zapůjčení objektu blob. Pokud chcete databázi připojit k jiné instanci a nemůžete čekat na vypršení pronájmu do 60 sekund, můžete explicitně uvolnit pronájem objektu BLOB, aby nedošlo k selhání při operacích připojení.

Chyby databáze

Chyby při vytváření databáze Řešení: Projděte si pokyny uvedené v lekci 4 v kurzu: Použití služby Microsoft Azure Blob Storage s databázemi SQL Serveru.

Chyby při spuštění příkazu Alter Řešení: Pokud je databáze online, nezapomeňte spustit příkaz Alter Database. Při kopírování datových souborů do Azure Storage vždy vytvořte page blob, nikoli block blob. V opačném případě se příkaz „ALTER Database“ nezdaří. Projděte si pokyny uvedené v lekci 7 v kurzu: Použití služby Microsoft Azure Blob Storage s databázemi SQL Serveru.

Kód chyby – 5120 Nelze otevřít fyzický soubor "%.*ls". Chyba operačního systému %d: "%ls"

Řešení: Tato funkce nepodporuje více než jednu instanci SQL Serveru, která současně přistupuje ke stejným databázovým souborům ve službě Azure Storage. Pokud je InstanceA online s aktivním databázovým souborem a pokud je instanceB spuštěna a má také databázi, která odkazuje na stejný datový soubor, druhá instance nespustí databázi s kódem 5120 Unable to open the physical file "%.\*ls". Operating system error %d: "%ls"chyby .

Pokud chcete tento problém vyřešit, nejprve zjistěte, jestli potřebujete serverA pro přístup k databázovému souboru ve službě Azure Storage nebo ne. Pokud ne, odeberte jakékoli připojení mezi instancemi a databázovými soubory ve službě Azure Storage. Postupujte takto:

  1. Pomocí příkazu ALTER Database nastavte cestu k souboru InstanceA do místní složky.

  2. Nastavte databázi v InstanceA offline.

  3. Potom zkopírujte soubory databáze ze služby Azure Storage do místní složky v instanciA. Tím se zajistí, že instanceA bude mít místně kopii databáze.

  4. Nastavte databázi online.

Kód chyby 833 – Dokončení vstupně-výstupních požadavků trvá déle než 15 sekund

Tato chyba značí, že systém úložiště nemůže splnit požadavky úlohy SQL Serveru. Buď zmenšete vstupně-výstupní aktivitu z aplikační vrstvy, nebo zvyšte schopnost propustnosti vrstvy úložiště. Další informace najdete v tématu Chyba 833. Pokud problémy s výkonem potrvají, zvažte přesun souborů do jiné úrovně úložiště, jako je Premium nebo UltraSSD. Informace o SQL Serveru na virtuálních počítačích Azure najdete v tématu optimalizace výkonu úložiště.

Další kroky