Rozdíly v jazyce T-SQL mezi SQL Serverem a službou Azure SQL Managed Instance

Platí pro:Azure SQL Managed Instance

Tento článek shrnuje a vysvětluje rozdíly v syntaxi a chování mezi službou Azure SQL Managed Instance a SQL Serverem.

Sql Managed Instance poskytuje vysokou kompatibilitu s databázovým strojem SQL Serveru a většina funkcí je podporovaná ve spravované instanci SQL.

Diagram showing the easy migration from SQL Server.

Ve spravované instanci SQL Managed Instance jsou zavedena některá omezení služby PaaS a některé změny chování ve srovnání s SQL Serverem. Rozdíly jsou rozdělené do následujících kategorií:

Většina těchto funkcí je omezení architektury a představuje funkce služeb.

Dočasné známé problémy zjištěné ve službě SQL Managed Instance a v budoucnu se vyřeší v části Co je nového?

Poznámka:

ID Microsoft Entra se dříve označovalo jako Azure Active Directory (Azure AD).

Dostupnost

Skupiny dostupnosti Always On

Vysoká dostupnost je integrovaná do služby SQL Managed Instance a uživatelé ji nemůžou ovládat. Následující příkazy nejsou podporované:

Backup

Spravovaná instance Azure SQL má automatické zálohování, takže uživatelé můžou vytvářet úplné zálohy databáze COPY_ONLY . Rozdílové zálohy, protokoly a snímky souborů se nepodporují.

  • Pomocí služby SQL Managed Instance můžete zálohovat databázi instance pouze do účtu služby Azure Blob Storage:
    • Podporuje se jen BACKUP TO URL.
    • FILEa TAPEzálohovací zařízení se nepodporují.
  • Většina obecných WITH možností je podporovaná.
    • COPY_ONLY je povinné.
    • FILE_SNAPSHOT a CREDENTIAL nejsou podporovány.
    • Možnosti pásky: REWIND, NOREWIND, UNLOADa NOUNLOAD nejsou podporovány.
    • Možnosti specifické pro protokol: NORECOVERY, STANDBYa NO_TRUNCATE nejsou podporovány.

Omezení:

  • Ve službě SQL Managed Instance můžete zálohovat databázi instance do zálohy s až 32 pruhy, což stačí pro databáze až 4 TB, pokud se použije komprese zálohování.

  • U databáze, která je zašifrovaná pomocí transparentní šifrování dat spravované službou (TDE), nejde spustitBACKUP DATABASE ... WITH COPY_ONLY. Transparentní šifrování dat spravované službou vynucuje šifrování záloh pomocí interního klíče transparentního šifrování dat. Tento klíč není možné exportovat, a proto není možné zálohu obnovit. Použijte automatické zálohování a obnovení k určitému bodu v čase nebo místo toho použijte transparentní šifrování dat spravované zákazníkem (BYOK). Šifrování databáze můžete také zakázat.

  • Nativní zálohy pořízené ve spravované instanci SQL je možné obnovit 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 na SQL Server 2022.

  • Pokud chcete zálohovat nebo obnovit databázi do a z úložiště Azure, můžete se ověřit pomocí spravované identity nebo sdíleného přístupového podpisu (SAS), což je identifikátor URI, který vám uděluje omezená přístupová práva k prostředkům Azure Storage. Další informace najdete v tomto tématu. Použití přístupových klíčů pro tyto scénáře se nepodporuje.

  • Maximální velikost pruhu zálohování pomocí BACKUP příkazu ve službě SQL Managed Instance je 195 GB, což je 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.

    Tip

    Pokud chcete toto omezení obejít, můžete při zálohování databáze z SQL Serveru v místním prostředí nebo ve virtuálním počítači provést tyto akce:

    • Zálohujte na DISK místo zálohování na URL.
    • Nahrajte záložní soubory do úložiště objektů blob.
    • Obnovení do spravované instance SQL

    Příkaz Restore ve službě SQL Managed Instance podporuje větší velikosti objektů blob v záložních souborech, protože pro ukládání nahraných záložních souborů se používá jiný typ objektu blob.

Informace o zálohování pomocí T-SQL najdete v tématu ZÁLOHOVÁNÍ.

Zabezpečení

Auditování

Hlavní rozdíly mezi auditováním v Microsoft Azure SQL a SQL Serverem jsou:

  • U služby SQL Managed Instance funguje auditování na úrovni serveru. Soubory .xel protokolů se ukládají do služby Azure Blob Storage.
  • S Azure SQL Database funguje auditování na úrovni databáze. Soubory .xel protokolů se ukládají do služby Azure Blob Storage.
  • U SQL Serveru funguje auditování na úrovni serveru místně nebo na virtuálních počítačích. Události jsou uložené v systému souborů nebo protokolech událostí Systému Windows.

Auditování XEvent ve službě SQL Managed Instance podporuje cíle služby Azure Blob Storage. Protokoly souborů a Windows se nepodporují.

Hlavní rozdíly v CREATE AUDIT syntaxi pro auditování do služby Azure Blob Storage jsou:

  • Poskytuje se nová syntaxe TO URL , která určuje adresu URL kontejneru úložiště objektů blob v Azure, kde .xel jsou umístěné soubory.
  • Syntaxe TO FILE není podporovaná, protože spravovaná instance SQL nemá přístup ke sdíleným složkám Windows.

Další informace naleznete v tématu:

Certifikáty

Spravovaná instance SQL nemá přístup ke sdíleným složkám a složkám Windows, takže platí následující omezení:

  • Soubor CREATE FROM/BACKUP TO není podporován pro certifikáty.
  • Certifikát CREATE/BACKUP od FILE/ASSEMBLY není podporovaný. Soubory privátního klíče nelze použít.

Viz VYTVOŘENÍ CERTIFIKÁTU A ZÁLOŽNÍHO CERTIFIKÁTU.

Alternativní řešení: Místo vytvoření zálohy certifikátu a obnovení zálohy získejte binární obsah certifikátu a privátní klíč, uložte ho jako .sql soubor a vytvořte z binárního souboru:

CREATE CERTIFICATE
   FROM BINARY = asn_encoded_certificate
WITH PRIVATE KEY (<private_key_options>);

Reference

Podporuje se spravovaná identita, Azure Key Vault a SHARED ACCESS SIGNATURE identity. Uživatelé Windows nejsou podporováni.

Viz CREATE CREDENTIAL a ALTER CREDENTIAL.

Zprostředkovatelé kryptografických služeb

Spravovaná instance SQL nemá přístup k souborům, takže nejde vytvořit zprostředkovatele kryptografických služeb:

Přihlášení a uživatelé

  • Přihlášení SQL vytvořená pomocí , FROM CERTIFICATEFROM ASYMMETRIC KEYa FROM SID jsou podporována. Viz CREATE LOGIN. Objekty zabezpečení serveru (přihlášení) se vytvářejí na úrovni serveru a uživatelé (objekty zabezpečení databáze) se vytvářejí na úrovni databáze. Podporují se přihlášení Microsoft Entra vytvořená pomocí syntaxe CREATE LOGIN a uživatelé Microsoft Entra vytvořené pomocí syntaxe CREATE USER FROM LOGIN . Při vytváření uživatele a určení FROM LOGIN, tento uživatel je přidružen k přihlášení a dědí role serveru a oprávnění přiřazená k němu.

    SQL Managed Instance podporuje vytváření uživatelů databáze s omezením na základě identit Microsoft Entra pomocí syntaxe CREATE USER [AADUser/AAD group] FROM EXTERNAL PROVIDER. Uživatelé vytvořené tímto způsobem nejsou přidruženi k objektům zabezpečení serveru, a to ani v případě, že v master databázi existuje objekt zabezpečení serveru se stejným názvem.

  • Přihlášení windows vytvořená pomocí CREATE LOGIN ... FROM WINDOWS syntaxe se nepodporují. Používejte přihlášení a uživatele Microsoft Entra.

  • Správce Microsoft Entra pro instanci má neomezená oprávnění správce.

  • Některé funkce nepodporují použití přihlášení Microsoft Entra v interakcích mezi instancemi, ale pouze v rámci jedné spravované instance SQL, například replikace SQL Serveru. Funkce propojeného serveru sice podporuje ověřování mezi instancemi pomocí instančních objektů serveru Microsoft Entra (přihlášení).

  • Nastavení přihlášení Microsoft Entra namapované na skupinu Microsoft Entra, protože vlastník databáze není podporován. Členem skupiny Microsoft Entra může být vlastník databáze, i když se přihlášení v databázi nevytvořilo.

  • Zosobnění objektů zabezpečení na úrovni serveru Microsoft Entra pomocí jiných objektů zabezpečení Microsoft Entra je podporováno, například klauzule EXECUTE AS . Omezení EXECUTE AS jsou:

    • Funkce EXECUTE AS USER není pro uživatele Microsoft Entra podporovaná, když se jméno liší od přihlašovacího jména. Příkladem je, když se uživatel vytvoří prostřednictvím syntaxe CREATE USER [myAadUser] FROM LOGIN [john@contoso.com] a zosobnění se pokusí provést EXEC AS USER = myAadUser. Při vytváření UŽIVATELE z přihlášení Microsoft Entra zadejte user_name jako stejný login_name z LOGIN.

    • Pouze přihlášení na úrovni SQL Serveru, která jsou součástí sysadmin role, můžou spouštět následující operace, které cílí na objekty zabezpečení Microsoft Entra:

      • SPUSTIT JAKO UŽIVATEL
      • SPUSTIT JAKO PŘIHLÁŠENÍ
    • Pokud chcete zosobnit uživatele pomocí příkazu EXECUTE AS, musí být uživatel namapován přímo na přihlášení k Microsoft Entra. Uživatelé, kteří jsou členy skupin Microsoft Entra mapovaných na objekty zabezpečení serveru Microsoft Entra, nelze efektivně zosobnit příkazem EXECUTE AS, i když má volající oprávnění zosobnit zadané uživatelské jméno.

  • Export/import databáze pomocí souborů bacpac jsou podporovány pro uživatele Microsoft Entra ve službě SQL Managed Instance pomocí aplikace SSMS V18.4 nebo novější nebo SqlPackage.

    • Pomocí souboru bacpac databáze se podporují následující konfigurace:
      • Export nebo import databáze mezi různými instancemi správy ve stejné doméně Microsoft Entra.
      • Exportujte databázi ze služby SQL Managed Instance a importujte ji do služby SQL Database ve stejné doméně Microsoft Entra.
      • Exportujte databázi ze služby SQL Database a importujte ji do spravované instance SQL ve stejné doméně Microsoft Entra.
      • Exportujte databázi ze služby SQL Managed Instance a importujte ji do SQL Serveru (verze 2012 nebo novější).
        • V této konfiguraci se všichni uživatelé Microsoft Entra vytvářejí jako instanční objekty databáze SQL Serveru (uživatelé) bez přihlášení. Typ uživatelů je SQL a je viditelný jako SQL_USER v sys.database_principals. Jejich oprávnění a role zůstanou v metadatech databáze SQL Serveru a dají se použít k zosobnění. K přístupu a přihlášení k SQL Serveru se ale nedají použít pomocí svých přihlašovacích údajů.
  • Pouze hlavní přihlášení na úrovni serveru, které je vytvořeno procesem zřizování služby SQL Managed Instance, členy rolí serveru, jako securityadmin jsou nebo sysadminnebo nebo jiná přihlášení s oprávněním ALTER ANY LOGIN na úrovni serveru, mohou vytvořit objekty zabezpečení serveru Microsoft Entra (přihlášení) v master databázi pro službu SQL Managed Instance.

  • Přihlašovací údaje založené na ověřování SQL musí být přiřazeny sysadmin k vytvoření přihlášení pro identity Microsoft Entra.

  • Přihlášení musí být členem stejného tenanta Microsoft Entra, ve kterému je hostovaná spravovaná instance Azure SQL.

  • Objekty zabezpečení serveru Microsoft Entra (přihlášení) jsou viditelné v Průzkumník objektů počínaje aplikací SQL Server Management Studio 18.0 Preview 5.

  • Objekt zabezpečení serveru s úrovní přístupu správce systému se automaticky vytvoří pro správce Microsoft Entra, jakmile je povolen v instanci.

  • Během ověřování se k vyřešení ověřovacího objektu použije následující posloupnost:

    1. Pokud je účet Microsoft Entra přímo namapován na přihlašovací jméno Microsoft Entra, které se nachází sys.server_principals jako typ "E", udělte přístup a použijte oprávnění pro toto přihlášení.
    2. Pokud je účet Microsoft Entra členem skupiny, která je namapovaná na přihlášení Microsoft Entra, která se nachází sys.server_principals jako typ "X", udělte přístup a použijte oprávnění pro toto přihlášení.
    3. Pokud účet Microsoft Entra existuje jako přímo namapovaný na uživatele Microsoft Entra v databázi, která se nachází sys.database_principals jako typ "E", udělte přístup a použijte oprávnění uživatele databáze Microsoft Entra.
    4. Pokud je účet Microsoft Entra členem skupiny Microsoft Entra, která je namapovaná na uživatele Microsoft Entra v databázi, která se nachází sys.database_principals jako typ X, udělte přístup a použijte oprávnění uživatele skupiny Microsoft Entra.

Klíč služby a hlavní klíč služby

  • Zálohování hlavního klíče není podporováno (spravované službou SQL Database).
  • Obnovení hlavního klíče není podporováno (spravované službou SQL Database).
  • Zálohování hlavního klíče služby není podporováno (spravované službou SQL Database).
  • Obnovení hlavního klíče služby není podporováno (spravované službou SQL Database).

Konfigurace

Rozšíření fondu vyrovnávacích pamětí

Kolace

Výchozí kolace instance je SQL_Latin1_General_CP1_CI_AS a lze ji zadat jako parametr pro vytvoření. Viz Kolace.

Úrovně kompatibility

  • Podporované úrovně kompatibility jsou 100, 110, 120, 130, 140, 150 a 160.
  • Úrovně kompatibility nižší než 100 se nepodporují.
  • Výchozí úroveň kompatibility pro nové databáze je 150. U obnovených databází zůstane úroveň kompatibility beze změny, pokud byla 100 a vyšší.

Viz Úroveň kompatibility ALTER DATABASE.

Zrcadlení databáze

Zrcadlení databáze se nepodporuje.

  • ALTER DATABASE SET PARTNER a SET WITNESS možnosti nejsou podporované.
  • CREATE ENDPOINT … FOR DATABASE_MIRRORING není podporováno.

Další informace naleznete v tématu ALTER DATABASE SET PARTNER a SET WITNESS a CREATE ENDPOINT ... PRO DATABASE_MIRRORING.

Možnosti databáze

  • Více souborů protokolu se nepodporuje.
  • Objekty v paměti nejsou podporovány ve vrstvě služby Pro obecné účely.
  • Existuje limit 280 souborů na instanci pro obecné účely, což znamená maximálně 280 souborů na databázi. Do tohoto limitu se započítávají datové soubory i soubory protokolů na úrovni Pro obecné účely. Úroveň Pro důležité obchodní informace podporuje 32 767 souborů na databázi.
  • Databáze nemůže obsahovat skupiny souborů, které obsahují data FILESTREAM. Obnovení selže, pokud .bak obsahuje FILESTREAM data.
  • Každý soubor je umístěný ve službě Azure Blob Storage. Vstupně-výstupní operace a propustnost jednotlivých souborů závisí na velikosti jednotlivých souborů.

Příkaz CREATE DATABASE

Následující omezení platí pro CREATE DATABASE:

  • Soubory a skupiny souborů nelze definovat.

  • Skupina souborů optimalizovaná pro paměť a soubor se automaticky přidají a nazývají se XTP.

  • Tato CONTAINMENT možnost není podporovaná.

  • WITH možnosti nejsou podporovány.

    Tip

    Alternativním řešením je ALTER DATABASECREATE DATABASE nastavit možnosti databáze pro přidání souborů nebo nastavení omezení.

  • Tato FOR ATTACH možnost není podporovaná.

  • Tato AS SNAPSHOT OF možnost není podporovaná.

Další informace naleznete v tématu CREATE DATABASE.

Příkaz ALTER DATABASE

Některé vlastnosti souboru nelze nastavit ani změnit:

  • Cestu k souboru nelze zadat v ALTER DATABASE ADD FILE (FILENAME='path') příkazu T-SQL. Odeberte FILENAME ze skriptu, protože sql Managed Instance automaticky umístí soubory.
  • Pomocí příkazu nelze změnit ALTER DATABASE název souboru.
  • Změna souboru nebo skupiny souborů XTP není povolená.

Ve výchozím nastavení jsou nastavené následující možnosti a nejde je změnit:

  • MULTI_USER
  • ENABLE_BROKER
  • AUTO_CLOSE OFF

Následující možnosti nelze upravit:

  • AUTO_CLOSE
  • AUTOMATIC_TUNING(CREATE_INDEX=ON|OFF)
  • AUTOMATIC_TUNING(DROP_INDEX=ON|OFF)
  • DISABLE_BROKER
  • EMERGENCY
  • ENABLE_BROKER
  • FILESTREAM
  • HADR
  • NEW_BROKER
  • OFFLINE
  • PAGE_VERIFY
  • PARTNER
  • READ_ONLY
  • RECOVERY BULK_LOGGED
  • RECOVERY_SIMPLE
  • REMOTE_DATA_ARCHIVE
  • RESTRICTED_USER
  • SINGLE_USER
  • WITNESS

Některé ALTER DATABASE příkazy (například SET CONTAINMENT) můžou přechodně selhat, například během automatizovaného zálohování databáze nebo přímo po vytvoření databáze. V tomto případě ALTER DATABASE by se měl opakovat příkaz. Další informace o souvisejících chybových zprávách najdete v části Poznámky.

Další informace naleznete v tématu ALTER DATABASE.

Agent SQL Server

  • Povolení a zakázání agenta SQL Serveru se v současné době ve službě SQL Managed Instance nepodporuje. Agent SQL je vždy spuštěný.
  • Aktivační událost plánu úloh založená na nečinných procesorech není podporovaná.
  • Nastavení agenta SQL Serveru je jen pro čtení. Tento postup sp_set_agent_properties není ve službě SQL Managed Instance podporovaný.
  • Úlohy
    • Podporují se kroky úlohy T-SQL.
    • Podporují se následující úlohy replikace:
      • Čtenář transakčních protokolů
      • Snímek
      • Distributor
    • Podporují se kroky úlohy SSIS.
    • Další typy kroků úloh se v současné době nepodporují:
      • Krok úlohy sloučení replikace není podporovaný.
      • Čtečka fronty není podporovaná.
      • Příkazové prostředí se zatím nepodporuje.
    • Spravovaná instance SQL nemá přístup k externím prostředkům, například ke sdíleným složkám sítě prostřednictvím nástroje Robocopy.
    • Služba Analysis Services serveru SQL se nepodporuje.
  • Oznámení jsou částečně podporovaná.
  • E-mailové oznámení se podporuje, i když vyžaduje, abyste nakonfigurovali Databázová pošta profil. Agent SQL Serveru může používat pouze jeden Databázová pošta profil a musí být volán AzureManagedInstance_dbmail_profile.
    • Pager se nepodporuje.
    • NetSend se nepodporuje.
    • Upozornění se zatím nepodporují.
    • Proxy servery se nepodporují.
  • EventLog se nepodporuje.
  • Aby bylo možné vytvářet, upravovat nebo spouštět úlohy agenta SQL, musí být uživatel přímo namapován na přihlášení k serveru Microsoft Entra. Uživatelé, kteří nejsou přímo mapovaní, například uživatelé, kteří patří do skupiny Microsoft Entra, která má práva vytvářet, upravovat nebo spouštět úlohy agenta SQL, nebudou moci tyto akce efektivně provádět. Důvodem je omezení zosobnění spravované instance SQL a SPUŠTĚNÍ AS.
  • Funkce Správa istrace multi serveru pro úlohy master/target (MSX/TSX) se nepodporuje.

Informace o agentu SQL Serveru naleznete v tématu SQL Server Agent.

Tabulky

Následující typy tabulek se nepodporují:

Informace o vytváření a změnách tabulek naleznete v tématu CREATE TABLE a ALTER TABLE.

Funkce

HROMADNÉ VLOŽENÍ / OPENROWSET

Spravovaná instance SQL nemá přístup ke sdíleným složkám a složkám Windows, takže soubory se musí importovat ze služby Azure Blob Storage:

  • DATASOURCE při importu BULK INSERT souborů ze služby Azure Blob Storage se vyžaduje v příkazu. Viz HROMADNÉ VLOŽENÍ.
  • DATASOURCE funkce se vyžaduje OPENROWSET při čtení obsahu souboru ze služby Azure Blob Storage. Viz OPENROWSET.
  • OPENROWSET lze použít ke čtení dat z Azure SQL Database, Azure SQL Managed Instance nebo instancí SQL Serveru. Jiné zdroje, jako jsou databáze Oracle nebo excelové soubory, se nepodporují.

CLR

Spravovaná instance SQL nemá přístup ke sdíleným složkám a složkám Windows, takže platí následující omezení:

Databázová pošta (db_mail)

  • sp_send_dbmail nelze odesílat přílohy pomocí @file_attachments parametru. Místní systém souborů a externí sdílené složky nebo Azure Blob Storage nejsou z tohoto postupu přístupné.
  • Podívejte se na známé problémy související s @query parametry a ověřováním.

DBCC

Ve službě SQL Managed Instance nejsou podporované nepodporované příkazy DBCC, které jsou povolené na SQL Serveru.

  • Podporuje se pouze omezený počet příznaků globálního trasování. Úroveň Trace flags relace není podporována. Viz příznaky trasování.
  • DBCC TRACEOFF a DBCC TRACEON pracují s omezeným počtem globálních příznaků trasování.
  • DBCC CHECKDB s možnostmi REPAIR_ALLOW_DATA_LOSS, REPAIR_FAST a REPAIR_REBUILD nejde použít, protože databázi nejde nastavit v režimu – viz rozdíly v SINGLE_USER alter DATABASE. Potenciální poškození databáze zpracovává tým podpora Azure. Pokud dojde k poškození databáze, obraťte se na podpora Azure.

Distribuované transakce

Distribuované transakce založené na T-SQL a .NET napříč spravovanými instancemi jsou obecně dostupné. Další scénáře, jako jsou transakce XA, distribuované transakce mezi spravovanými instancemi a dalšími účastníky a další, jsou podporovány pomocí DTC pro Azure SQL Managed Instance, která je k dispozici ve verzi Public Preview.

Rozšířené události

Rozšířené události (XEvents) nepodporují některé cíle specifické pro Windows:

  • Cíl etw_classic_sync se nepodporuje. Soubory .xel ukládejte ve službě Azure Blob Storage. Viz cíl etw_classic_sync.
  • Cíl event_file se nepodporuje. Soubory .xel ukládejte ve službě Azure Blob Storage. Viz cíl event_file.

Externí knihovny

Externí knihovny jazyka R a Python v databázi jsou podporované v omezené verzi Public Preview. Viz služba Machine Učení Services ve službě Azure SQL Managed Instance (Preview).

FILESTREAM a FileTable

  • Data FILESTREAM nejsou podporována.
  • Databáze nemůže obsahovat skupiny souborů s FILESTREAM daty.
  • FILETABLE není podporováno.
  • Tabulky nemohou mít FILESTREAM typy.
  • Následující funkce nejsou podporované:
    • GetPathLocator()
    • GET_FILESTREAM_TRANSACTION_CONTEXT()
    • PathName()
    • GetFileNamespacePat)
    • FileTableRootPath()

Další informace naleznete v tématu FILESTREAM a FileTables.

Sémantické vyhledávání není podporováno.

Propojené servery

Propojené servery ve službě SQL Managed Instance podporují omezený počet cílů:

  • Podporované cíle jsou SQL Managed Instance, SQL Database, Bezserverové a vyhrazené fondy Azure Synapse SQL a instance SQL Serveru.
  • Cíle, které nejsou podporovány, jsou soubory, Analysis Services a další RDBMS. Zkuste použít nativní import CSV ze služby Azure Blob Storage BULK INSERT nebo OPENROWSET jako alternativu k importu souborů nebo načíst soubory pomocí bezserverového fondu SQL ve službě Azure Synapse Analytics.

Operace:

  • sp_dropserver podporuje vyřazení propojeného serveru. Viz sp_dropserver.
  • Funkci OPENROWSET lze použít ke spouštění dotazů pouze na instancích SQL Serveru. Můžou se spravovat, místně nebo ve virtuálních počítačích. Viz OPENROWSET.
  • Funkci OPENDATASOURCE lze použít ke spouštění dotazů pouze na instancích SQL Serveru. Můžou se spravovat, místně nebo ve virtuálních počítačích. Příklad: SELECT * FROM OPENDATASOURCE('SQLNCLI', '...').AdventureWorks2022.HumanResources.Employee. SQLNCLIJako zprostředkovatel se podporují pouze hodnoty , SQLNCLI11SQLOLEDBa MSOLEDBSQL hodnoty. Nativní klient SQL Serveru (často zkrácený SNAC) byl odebrán z SQL Serveru 2022 a SQL Server Management Studio 19 (SSMS). Pro nový vývoj se nedoporučuje nativní klient SQL Serveru (SQLNCLI nebo SQLNCLI11) a starší zprostředkovatel Microsoft OLE DB pro SQL Server (SQLOLEDB). Přejděte na nový ovladač Microsoft OLE DB (MSOLEDBSQL) pro SQL Server nebo nejnovější ovladač Microsoft ODBC pro SQL Server .
  • Odkazované servery se nedají použít ke čtení souborů (Excel, CSV) ze síťových sdílených složek. Zkuste použít FUNKCI BULK INSERT, OPENROWSET, která čte soubory CSV ze služby Azure Blob Storage nebo odkazovaný server, který odkazuje na bezserverový fond SQL ve službě Synapse Analytics. Sledovat tyto požadavky u položky zpětné vazby ke službě SQL Managed Instance

Propojené servery ve službě Azure SQL Managed Instance podporují ověřování SQL a ověřování Microsoft Entra.

PolyBase

Virtualizace dat pomocí služby Azure SQL Managed Instance umožňuje spouštět dotazy jazyka Transact-SQL (T-SQL) na data ze souborů uložených v Azure Data Lake Storage Gen2 nebo Azure Blob Storage a kombinovat je s místně uloženými relačními daty pomocí spojení. Formáty souborů Parquet a text s oddělovači (CSV) jsou podporovány přímo. Formát souboru JSON je nepřímo podporován zadáním formátu SOUBORU CSV, ve kterém dotazy vrací každý dokument jako samostatný řádek. Řádky je možné dále analyzovat pomocí JSON_VALUE a OPENJSON. Obecné informace o PolyBase naleznete v tématu PolyBase.

Funkce CREATE EXTERNAL TABLE AS SELECT (CETAS) navíc umožňuje exportovat data z vaší spravované instance SQL do externího účtu úložiště. Pomocí CETAS můžete vytvořit externí tabulku nad soubory Parquet nebo CSV azure Blob Storage nebo Azure Data Lake Storage (ADLS) Gen2. CETAS může také paralelně exportovat výsledky příkazu T-SQL SELECT do vytvořené externí tabulky.

Replikace

  • Podporují se typy replikace snímků a obousměrných replikací. Sloučení replikace, replikace mezi dvěma účastníky a aktualizovatelná předplatná se nepodporují.
  • Transakční replikace je dostupná pro spravovanou instanci SQL s určitými omezeními:
    • Všechny typy účastníků replikace (Publisher, Distributor, Pull Subscriber a Push Subscriber) můžou být umístěné ve službě SQL Managed Instance, ale vydavatel a distributor musí být buď v cloudu, nebo v místním prostředí.
    • Spravovaná instance SQL může komunikovat s posledními verzemi SQL Serveru. Další informace najdete v matici podporovaných verzí.
    • Transakční replikace má několik dalších požadavků na síť.

Další informace o konfiguraci transakční replikace najdete v následujících kurzech:

Příkaz RESTORE

  • Podporovaná syntaxe:
    • RESTORE DATABASE
    • RESTORE FILELISTONLY
    • RESTORE HEADERONLY
    • RESTORE LABELONLY
    • RESTORE VERIFYONLY
  • Nepodporovaná syntaxe:
    • RESTORE LOGONLY
    • RESTORE REWINDONLY
  • Zdroj:
    • FROM URL (Azure Blob Storage) je jediná podporovaná možnost.
    • FROM DISK/TAPE/Backup zařízení se nepodporuje.
    • Zálohovací sady se nepodporují.
  • WITH možnosti nejsou podporovány. Pokusy o obnovení, mezi které patří WITH například DIFFERENTIAL, STATSREPLACEa tak dále, selžou.

Operace obnovení databáze je asynchronní a opakovatelná ve službě Azure SQL Managed Instance. Pokud se připojení nezdaří nebo vyprší časový limit, může se v SSMS zobrazit chyba. Spravovaná instance Azure SQL se pokouší obnovit databázi na pozadí a průběh procesu obnovení můžete sledovat pomocí sys.dm_exec_requests a sys.dm_operation_status zobrazení dynamické správy.

Následující možnosti databáze jsou nastavené nebo přepsány a nelze je později změnit:

  • NEW_BROKER pokud zprostředkovatel není v souboru .bak povolený.
  • ENABLE_BROKER pokud zprostředkovatel není v souboru .bak povolený.
  • AUTO_CLOSE=OFF pokud databáze v souboru .bak obsahuje AUTO_CLOSE=ON.
  • RECOVERY FULL pokud má databáze v souboru SIMPLE .bak nebo BULK_LOGGED model obnovení.
  • Přidá se skupina souborů optimalizovaná pro paměť a nazývá se XTP, pokud nebyla ve zdrojovém .bak souboru.
  • Jakákoli existující skupina souborů optimalizovaná pro paměť se přejmenuje na XTP.
  • SINGLE_USER a RESTRICTED_USER možnosti jsou převedeny na MULTI_USER.

Omezení:

  • Zálohy poškozených databází se můžou obnovit v závislosti na typu poškození, ale automatizované zálohy se neprovedou, dokud se poškození neopraví. Ujistěte se, že spouštíte DBCC CHECKDB ve zdrojové spravované instanci SQL a používáte zálohování WITH CHECKSUM , abyste zabránili tomuto problému.
  • .BAK Obnovení souboru databáze, která obsahuje omezení popsaná v tomto dokumentu (například FILESTREAM nebo FILETABLE objekty), nelze obnovit ve službě SQL Managed Instance.
  • .BAK soubory, které obsahují více záložních sad, nelze obnovit.
  • .BAK soubory, které obsahují více souborů protokolu, nelze obnovit.
  • Zálohy obsahující databáze větší než 8 TB, aktivní objekty OLTP v paměti nebo počet souborů, které by překročily 280 souborů na instanci, nelze obnovit v instanci pro obecné účely.
  • Zálohy obsahující databáze větší než 4 TB nebo objekty OLTP v paměti s celkovou velikostí větší, než je velikost popsaná v omezeních prostředků, není možné obnovit v instanci Pro důležité obchodní informace. Informace opříkazch

Důležité

Stejná omezení platí pro integrovanou operaci obnovení k určitému bodu v čase. Například databázi pro obecné účely větší než 4 TB nelze obnovit v instanci Pro důležité obchodní informace. Pro důležité obchodní informace databázi s soubory OLTP v paměti nebo více než 280 souborů nelze obnovit v instanci pro obecné účely.

Service Broker

Výměna zpráv zprostředkovatele služeb napříč instancemi je podporována pouze mezi službami Azure SQL Managed Instance:

  • CREATE ROUTE: Nemůžete použít CREATE ROUTE s ADDRESS jiným názvem než LOCAL s názvem DNS jiné spravované instance SQL. Port je vždy 4022.
  • ALTER ROUTE: Nemůžete použít ALTER ROUTE s ADDRESS jiným názvem než LOCAL s názvem DNS jiné spravované instance SQL. Port je vždy 4022.

Zabezpečení přenosu se podporuje, zabezpečení dialogových oken není:

  • CREATE REMOTE SERVICE BINDINGnení podporováno.

Služba Service Broker je ve výchozím nastavení povolená a nejde ji zakázat. Následující možnosti ALTER DATABASE nejsou podporované:

  • ENABLE_BROKER
  • DISABLE_BROKER

Uložené procedury, funkce a triggery

Systémové funkce a proměnné

Následující proměnné, funkce a zobrazení vrací různé výsledky:

  • SERVERPROPERTY('EngineEdition') vrátí hodnotu 8. Tato vlastnost jednoznačně identifikuje spravovanou instanci SQL. Viz SERVERPROPERTY.
  • SERVERPROPERTY('InstanceName') vrátí hodnotu NULL, protože koncept instance, protože existuje pro SQL Server, se nevztahuje na spravovanou instanci SQL. Viz SERVERPROPERTY('InstanceName').
  • @@SERVERNAME vrátí úplný název "připojitelné" DNS, my-managed-instance.wcus17662feb9ce98.database.windows.netnapříklad . Viz @@SERVERNAME.
  • SYS.SERVERS vrátí úplný název "připojitelný" DNS, například myinstance.domain.database.windows.net pro vlastnosti "name" a "data_source". Viz SYS. SERVERY.
  • @@SERVICENAME vrátí hodnotu NULL, protože koncept služby, protože existuje pro SQL Server, se nevztahuje na službu SQL Managed Instance. Viz @@SERVICENAME.
  • SUSER_ID se podporuje. Vrátí hodnotu NULL, pokud není přihlášení Microsoft Entra .sys.syslogins Viz SUSER_ID.
  • SUSER_SID není podporováno. Vrátí se nesprávná data, což je dočasný známý problém. Viz SUSER_SID.

Omezení prostředí

Podsíť

  • Do podsítě, do které jste nasadili spravovanou instanci SQL, nemůžete umístit žádné další prostředky (například virtuální počítače). Nasaďte tyto prostředky pomocí jiné podsítě.
  • Podsíť musí mít dostatečný počet dostupných IP adres. Minimum je mít v podsíti aspoň 32 IP adres.
  • Počet virtuálních jader a typů instancí, které můžete nasadit v určité oblasti, mají určitá omezení a omezení.
  • V podsíti je potřeba použít konfiguraci sítě.

Virtuální síť

  • Virtuální síť je možné nasadit pomocí modelu prostředků. Klasický model nepodporuje nasazení virtuální sítě.
  • Po vytvoření spravované instance SQL se přesun spravované instance SQL nebo virtuální sítě do jiné skupiny prostředků nebo předplatného nepodporuje.
  • U spravovaných instancí SQL hostovaných ve virtuálních clusterech vytvořených před 22. zářím 2020 se globální partnerský vztah virtuálních sítí nepodporuje. K těmto prostředkům se můžete připojit přes ExpressRoute nebo VNet-to-VNet prostřednictvím bran virtuálních sítí.

Skupiny převzetí služeb při selhání

Systémové databáze se nereplikují do sekundární instance ve skupině převzetí služeb při selhání. Proto scénáře, které závisí na objektech ze systémových databází, nejsou v sekundární instanci možné, pokud nejsou objekty ručně vytvořeny na sekundární instanci.

tempdb

  • Maximální velikost tempdb souboru systémové databáze nesmí být větší než 24 GB na jádro na úrovni Pro obecné účely. Maximální tempdb velikost na úrovni Pro důležité obchodní informace je omezená velikostí úložiště služby SQL Managed Instance. tempdb Velikost souboru protokolu je omezená na 120 GB na úrovni Pro obecné účely. Některé dotazy můžou vrátit chybu, pokud potřebují více než 24 GB na jádro tempdb nebo pokud produkují více než 120 GB dat protokolu.
  • tempdb je vždy rozdělený do 12 datových souborů: 1 primární, také označovaný masterjako datový soubor, datový soubor a 11 neprimárních datových souborů. Strukturu souborů nelze změnit a do souboru nelze přidat tempdbnové soubory.
  • Metadata databáze TempDB optimalizovaná pro paměť, nová funkce databáze v paměti SQL Serveru 2019, není podporovaná.
  • Objekty vytvořené v model databázi se po restartování nebo převzetí služeb při selhání nedají automaticky vytvořit tempdb , protože tempdb z model databáze se nezobrazí počáteční seznam objektů. Objekty tempdb musíte vytvořit ručně po každém restartování nebo převzetí služeb při selhání.

msdb

V systémové databázi ve službě SQL Managed Instance musí být ve vlastnictví těchto předdefinovaných rolí následující schémata msdb :

  • Obecné role
    • TargetServersRole
  • Pevné databázové role
    • Role uživatele agenta SQL
    • Role čtenáře agenta SQL
    • Role operátora agenta SQL
  • Role DatabaseMail:
    • DatabaseMailUserRole
  • Role integračních služeb:
    • db_ssisadmin
    • db_ssisltduser
    • db_ssisoperator

Důležité

Změna předdefinovaných názvů rolí, názvů schémat a vlastníků schémat ze strany zákazníků ovlivní normální provoz služby. Všechny změny provedené v těchto změnách se vrátí zpět k předdefinovaným hodnotám, jakmile se zjistí, nebo při příští aktualizaci služby nejpozději, aby se zajistila normální operace služby.

Protokoly chyb

Sql Managed Instance umístí podrobné informace do protokolů chyb. Existuje mnoho interních systémových událostí, které jsou protokolovány v protokolu chyb. Vlastní postup slouží ke čtení protokolů chyb, které filtrují některé irelevantní položky. Další informace najdete v tématu SQL Managed Instance – sp_readmierrorlog nebo rozšíření SQL Managed Instance (Preview) pro Azure Data Studio.

Změna počtu zachovaných protokolů chyb není podporována.