Udostępnij za pośrednictwem


Różnice między programem SQL Server a usługą Azure SQL Managed Instance dotyczące języka T-SQL

Dotyczy: Azure SQL Managed Instance

W tym artykule podsumowano i wyjaśniono różnice w składni i zachowaniu między usługą Azure SQL Managed Instance i programem SQL Server.

Wystąpienie zarządzane SQL zapewnia wysoką zgodność z aparatem bazy danych programu SQL Server, a większość funkcji jest obsługiwana w usłudze SQL Managed Instance.

Diagram przedstawiający łatwą migrację z programu SQL Server.

Istnieją pewne ograniczenia modelu PaaS, które są wprowadzone w usłudze SQL Managed Instance i niektóre zmiany zachowania w porównaniu z systemem SQL Server. Różnice są podzielone na następujące kategorie:

Większość z tych funkcji to ograniczenia architektury i reprezentują funkcje usługi.

Tymczasowe znane problemy, które zostały odnalezione w usłudze SQL Managed Instance i zostaną rozwiązane w przyszłości, zostały opisane w artykule Co nowego?.

Uwaga

Microsoft Entra ID był wcześniej znany jako Azure Active Directory (Azure AD).

Dostępność

Zawsze włączone grupy dostępności

Wysoka dostępność jest wbudowana w usługę SQL Managed Instance i nie może być kontrolowana przez użytkowników. Następujące instrukcje nie są obsługiwane:

Wykonywanie kopii zapasowej

Usługa Azure SQL Managed Instance ma automatyczne kopie zapasowe, dzięki czemu użytkownicy mogą tworzyć pełne kopie zapasowe bazy danych COPY_ONLY . Różnicowe, dzienniki i kopie zapasowe migawek plików nie są obsługiwane.

  • Za pomocą wystąpienia zarządzanego SQL można utworzyć kopię zapasową bazy danych wystąpienia tylko na koncie usługi Azure Blob Storage:
    • Obsługiwany jest tylko warunek BACKUP TO URL.
    • FILEurządzenia do TAPEtworzenia kopii zapasowych , i nie są obsługiwane.
  • Większość opcji ogólnych WITH jest obsługiwana.
    • COPY_ONLY jest obowiązkowe.
    • FILE_SNAPSHOT i CREDENTIAL nie są obsługiwane.
    • Opcje taśmy: REWIND, NOREWIND, UNLOADi NOUNLOAD nie są obsługiwane.
    • Opcje specyficzne dla dziennika: NORECOVERY, STANDBYi NO_TRUNCATE nie są obsługiwane.

Ograniczenia:

  • Za pomocą wystąpienia zarządzanego SQL można utworzyć kopię zapasową bazy danych wystąpienia do kopii zapasowej z maksymalnie 32 paskami, co jest wystarczające dla baz danych do 4 TB, jeśli jest używana kompresja kopii zapasowej.

  • Nie można wykonać w BACKUP DATABASE ... WITH COPY_ONLY bazie danych zaszyfrowanej za pomocą funkcji Transparent Data Encryption (TDE) zarządzanej przez usługę. Funkcja TDE zarządzana przez usługę wymusza szyfrowanie kopii zapasowych za pomocą wewnętrznego klucza TDE. Nie można wyeksportować tego klucza, dlatego nie możesz przywrócić kopii zapasowej. Użyj automatycznych kopii zapasowych i przywracania do punktu w czasie lub zamiast tego użyj funkcji TDE zarządzanej przez klienta (BYOK). Możesz również wyłączyć szyfrowanie w bazie danych.

  • Natywne kopie zapasowe wykonywane w usłudze SQL Managed Instance można przywrócić tylko do wystąpienia programu SQL Server 2022. Dzieje się tak, ponieważ usługa SQL Managed Instance ma wyższą wewnętrzną wersję bazy danych w porównaniu z innymi wersjami programu SQL Server. Aby uzyskać więcej informacji, zobacz Przywracanie kopii zapasowej bazy danych usługi SQL Managed Instance do programu SQL Server 2022.

  • Aby utworzyć kopię zapasową lub przywrócić bazę danych do/z usługi Azure Storage, możesz uwierzytelnić się przy użyciu tożsamości zarządzanej lub sygnatury dostępu współdzielonego (SAS), która jest identyfikatorem URI, który udziela ograniczonych praw dostępu do zasobów usługi Azure Storage Dowiedz się więcej na ten temat. Używanie kluczy dostępu w tych scenariuszach nie jest obsługiwane.

  • Maksymalny rozmiar paska kopii zapasowej przy użyciu BACKUP polecenia w usłudze SQL Managed Instance wynosi 195 GB, czyli maksymalny rozmiar obiektu blob. Zwiększ liczbę pasków w poleceniu kopii zapasowej, aby zmniejszyć rozmiar pojedynczego paska i pozostać w tym limicie.

    Napiwek

    Aby obejść to ograniczenie, podczas tworzenia kopii zapasowej bazy danych z programu SQL Server w środowisku lokalnym lub na maszynie wirtualnej możesz:

    • Tworzenie kopii zapasowej w usłudze DISK zamiast tworzenia kopii zapasowej do URLpliku .
    • Przekaż pliki kopii zapasowej do usługi Blob Storage.
    • Przywracanie do usługi SQL Managed Instance.

    Polecenie Restore w usłudze SQL Managed Instance obsługuje większe rozmiary obiektów blob w plikach kopii zapasowej, ponieważ do przechowywania przekazanych plików kopii zapasowej jest używany inny typ obiektu blob.

Aby uzyskać informacje na temat kopii zapasowych przy użyciu języka T-SQL, zobacz TWORZENIE KOPII ZAPASOWEJ.

Zabezpieczenia

Inspekcja

Najważniejsze różnice między inspekcją w usłudze Microsoft Azure SQL i w programie SQL Server są następujące:

  • W przypadku usługi SQL Managed Instance inspekcja działa na poziomie serwera. Pliki .xel dziennika są przechowywane w usłudze Azure Blob Storage.
  • Dzięki usłudze Azure SQL Database inspekcja działa na poziomie bazy danych. Pliki .xel dziennika są przechowywane w usłudze Azure Blob Storage.
  • W przypadku programu SQL Server lokalnie lub na maszynach wirtualnych inspekcja działa na poziomie serwera. Zdarzenia są przechowywane w dziennikach zdarzeń systemu plików lub windows.

Inspekcja XEvent w usłudze SQL Managed Instance obsługuje cele usługi Azure Blob Storage. Dzienniki plików i systemu Windows nie są obsługiwane.

Kluczowe różnice w składni inspekcji w CREATE AUDIT usłudze Azure Blob Storage to:

  • Udostępniono nową składnię TO URL określającą adres URL kontenera usługi Azure Blob Storage, w .xel którym są umieszczane pliki.
  • Składnia TO FILE nie jest obsługiwana, ponieważ usługa SQL Managed Instance nie może uzyskać dostępu do udziałów plików systemu Windows.

Aby uzyskać więcej informacji, zobacz:

Certyfikaty

Usługa SQL Managed Instance nie może uzyskać dostępu do udziałów plików i folderów systemu Windows, więc obowiązują następujące ograniczenia:

  • Plik CREATE FROM/BACKUP TO nie jest obsługiwany w przypadku certyfikatów.
  • Certyfikat CREATE/BACKUP z FILE/ASSEMBLY programu nie jest obsługiwany. Nie można używać plików kluczy prywatnych.

Zobacz TWORZENIE CERTYFIKATU I CERTYFIKATU KOPII ZAPASOWEJ.

Obejście: Zamiast tworzyć kopię zapasową certyfikatu i przywracać kopię zapasową, pobierz zawartość binarną certyfikatu i klucz prywatny, zapisz go jako plik .sql i utwórz na podstawie pliku binarnego:

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

Referencje

Obsługiwana jest tożsamość zarządzana, usługa Azure Key Vault i SHARED ACCESS SIGNATURE tożsamości. Użytkownicy systemu Windows nie są obsługiwani.

Zobacz CREATE CREDENTIAL (TWORZENIE POŚWIADCZEŃ) i ALTER CREDENTIAL (TWORZENIE POŚWIADCZEŃ ) i ALTER CREDENTIAL (ALTER CREDENTIAL).

Dostawcy usług kryptograficznych

Usługa SQL Managed Instance nie może uzyskać dostępu do plików, więc nie można utworzyć dostawców usług kryptograficznych:

Nazwy logowania i użytkownicy

  • Identyfikatory logowania SQL utworzone przy użyciu poleceń FROM CERTIFICATE, FROM ASYMMETRIC KEYi FROM SID są obsługiwane. Zobacz CREATE LOGIN (TWORZENIE IDENTYFIKATORA LOGOWANIA). Podmioty zabezpieczeń serwera (identyfikatory logowania) są tworzone na poziomie serwera, a użytkownicy (podmioty zabezpieczeń bazy danych) są tworzone na poziomie bazy danych. Obsługiwane są identyfikatory logowania usługi Microsoft Entra utworzone przy użyciu składni CREATE LOGIN i użytkowników usługi Microsoft Entra utworzonych za pomocą składni CREATE USER FROM LOGIN . Podczas tworzenia użytkownika i określania FROM LOGINwartości użytkownik jest skojarzony z identyfikatorem logowania i dziedziczy przypisane do niego role i uprawnienia serwera.

    Usługa SQL Managed Instance obsługuje tworzenie zawartych użytkowników bazy danych na podstawie tożsamości firmy Microsoft entra ze składnią CREATE USER [AADUser/AAD group] FROM EXTERNAL PROVIDER. Użytkownicy utworzeni w ten sposób nie są powiązani z jednostkami serwera, nawet jeśli jednostka serwera o tej samej nazwie istnieje w master bazie danych.

  • Identyfikatory logowania systemu Windows utworzone przy użyciu CREATE LOGIN ... FROM WINDOWS składni nie są obsługiwane. Użyj identyfikatorów logowania i użytkowników firmy Microsoft Entra.

  • Administrator entra firmy Microsoft dla wystąpienia ma nieograniczone uprawnienia administratora.

  • Niektóre funkcje nie obsługują logowania microsoft Entra w interakcjach między wystąpieniami, ale tylko w ramach pojedynczego wystąpienia zarządzanego SQL, takiego jak na przykład replikacja programu SQL Server. Funkcja serwera połączonego obsługuje uwierzytelnianie między wystąpieniami przy użyciu podmiotów zabezpieczeń serwera Firmy Microsoft (identyfikatorów logowania).

  • Ustawienie nazwy logowania entra firmy Microsoft zamapowanego na grupę Entra firmy Microsoft jako właściciela bazy danych nie jest obsługiwane. Członkiem grupy Microsoft Entra może być właściciel bazy danych, nawet jeśli nazwa logowania nie została utworzona w bazie danych.

  • Personifikacja podmiotów zabezpieczeń na poziomie serwera firmy Microsoft przy użyciu innych podmiotów zabezpieczeń entra firmy Microsoft jest obsługiwana, na przykład klauzula EXECUTE AS . Ograniczenia FUNKCJI EXECUTE AS to:

    • Funkcja EXECUTE AS USER nie jest obsługiwana dla użytkowników firmy Microsoft Entra, gdy nazwa różni się od nazwy logowania. Przykładem jest próba utworzenia użytkownika za pomocą składni CREATE USER [myAadUser] FROM LOGIN [john@contoso.com] i personifikacji za pomocą polecenia EXEC AS USER = myAadUser. Podczas tworzenia użytkownika na podstawie identyfikatora logowania firmy Microsoft Entra określ user_name co ten sam login_name z identyfikatora LOGIN.

    • Tylko identyfikatory logowania na poziomie programu SQL Server, które są częścią sysadmin roli, mogą wykonywać następujące operacje przeznaczone dla podmiotów zabezpieczeń firmy Microsoft:

      • EXECUTE AS USER
      • EXECUTE AS LOGIN
    • Aby personifikować użytkownika za pomocą instrukcji EXECUTE AS, użytkownik musi zostać zamapowany bezpośrednio na logowanie firmy Microsoft Entra. Użytkownicy, którzy są członkami grup Entra firmy Microsoft mapowanych na podmioty zabezpieczeń serwera Entra firmy Microsoft, nie mogą być skutecznie personifikowani za pomocą instrukcji EXECUTE AS, mimo że obiekt wywołujący ma uprawnienia personifikacji w określonej nazwie użytkownika.

  • Eksportowanie/importowanie bazy danych przy użyciu plików bacpac jest obsługiwane w przypadku użytkowników usługi Microsoft Entra w usłudze SQL Managed Instance przy użyciu programu SSMS w wersji 18.4 lub nowszej lub sqlPackage.

    • Następujące konfiguracje są obsługiwane przy użyciu pliku bacpac bazy danych:
      • Eksportowanie/importowanie bazy danych między różnymi wystąpieniami zarządzania w ramach tej samej domeny firmy Microsoft Entra.
      • Wyeksportuj bazę danych z wystąpienia zarządzanego SQL i zaimportuj do usługi SQL Database w tej samej domenie firmy Microsoft Entra.
      • Wyeksportuj bazę danych z usługi SQL Database i zaimportuj do wystąpienia zarządzanego SQL w tej samej domenie firmy Microsoft.
      • Eksportowanie bazy danych z usługi SQL Managed Instance i importowanie do programu SQL Server (wersja 2012 lub nowsza).
        • W tej konfiguracji wszyscy użytkownicy firmy Microsoft Entra są utworzeni jako podmioty zabezpieczeń bazy danych programu SQL Server (użytkownicy) bez logowania. Typ użytkowników to SQL i jest widoczny jako SQL_USER w pliku sys.database_principals. Ich uprawnienia i role pozostają w metadanych bazy danych programu SQL Server i mogą być używane do personifikacji. Nie można ich jednak używać do uzyskiwania dostępu do programu SQL Server i logowania się przy użyciu ich poświadczeń.
  • Tylko identyfikator logowania podmiotu zabezpieczeń na poziomie serwera, który jest tworzony przez proces aprowizacji usługi SQL Managed Instance, elementy członkowskie ról serwera, takich jak securityadmin lub sysadmin, lub inne identyfikatory logowania z uprawnieniem ALTER ANY LOGIN na poziomie serwera, mogą tworzyć podmioty zabezpieczeń serwera Firmy Microsoft (identyfikatory logowania) w master bazie danych dla usługi SQL Managed Instance.

  • Identyfikatory logowania oparte na uwierzytelnianiu SQL muszą mieć przypisaną sysadmin rolę w celu utworzenia identyfikatorów logowania dla tożsamości firmy Microsoft Entra.

  • Identyfikator logowania musi należeć do tej samej dzierżawy firmy Microsoft Entra, w której jest hostowane wystąpienie zarządzane usługi Azure SQL.

  • Podmioty zabezpieczeń serwera Microsoft Entra (identyfikatory logowania) są widoczne w Eksplorator obiektów począwszy od programu SQL Server Management Studio 18.0 (wersja zapoznawcza 5).

  • Jednostka serwera z poziomem dostępu administratora systemu jest tworzona automatycznie dla administratora firmy Microsoft Entra po włączeniu go w wystąpieniu.

  • Podczas uwierzytelniania jest stosowana następująca sekwencja w celu rozwiązania uwierzytelniania podmiotu zabezpieczeń:

    1. Jeśli konto Microsoft Entra jest bezpośrednio mapowane na identyfikator logowania firmy Microsoft Entra, który jest obecny jako sys.server_principals typ "E", przyznaj dostęp i zastosuj uprawnienia do tego logowania.
    2. Jeśli konto Microsoft Entra jest członkiem grupy, która jest mapowana na identyfikator logowania entra firmy Microsoft, który jest obecny jako sys.server_principals typ "X", przyznaj dostęp i zastosuj uprawnienia do tego logowania.
    3. Jeśli konto Microsoft Entra istnieje jako bezpośrednio mapowane na użytkownika Microsoft Entra w bazie danych, który jest obecny jako sys.database_principals typ "E", przyznaj dostęp i zastosuj uprawnienia użytkownika bazy danych Microsoft Entra.
    4. Jeśli konto Microsoft Entra jest członkiem grupy Microsoft Entra, która jest mapowana na użytkownika Microsoft Entra w bazie danych, który jest obecny jako sys.database_principals typ "X", przyznaj dostęp i zastosuj uprawnienia użytkownika grupy Microsoft Entra.

Klucz usługi i klucz główny usługi

  • Kopia zapasowa klucza głównego nie jest obsługiwana (zarządzana przez usługę SQL Database).
  • Przywracanie klucza głównego nie jest obsługiwane (zarządzane przez usługę SQL Database).
  • Kopia zapasowa klucza głównego usługi nie jest obsługiwana (zarządzana przez usługę SQL Database).
  • Przywracanie klucza głównego usługi nie jest obsługiwane (zarządzane przez usługę SQL Database).

Konfigurowanie

Rozszerzenie puli

Sortowanie

Sortowanie wystąpienia domyślnego to SQL_Latin1_General_CP1_CI_AS i można go określić jako parametr tworzenia. Zobacz Sortowania.

Poziomy zgodności

  • Obsługiwane poziomy zgodności to 100, 110, 120, 130, 140, 150 i 160.
  • Poziomy zgodności poniżej 100 nie są obsługiwane.
  • Domyślny poziom zgodności dla nowych baz danych to 150. W przypadku przywróconych baz danych poziom zgodności pozostaje niezmieniony, jeśli był 100 lub nowszy.

Zobacz ALTER DATABASE Compatibility Level (Poziom zgodności ALTER DATABASE).

Dublowanie bazy danych

Dublowanie bazy danych nie jest obsługiwane.

  • ALTER DATABASE SET PARTNER opcje i SET WITNESS nie są obsługiwane.
  • CREATE ENDPOINT … FOR DATABASE_MIRRORING nie jest obsługiwany.

Aby uzyskać więcej informacji, zobacz ALTER DATABASE SET PARTNER i SET WITNESS i CREATE ENDPOINT ... DLA DATABASE_MIRRORING.

Opcje bazy danych

  • Wiele plików dziennika nie jest obsługiwanych.
  • Obiekty w pamięci nie są obsługiwane w warstwie usługi Ogólnego przeznaczenia.
  • Istnieje limit 280 plików na wystąpienie ogólnego przeznaczenia, co oznacza maksymalnie 280 plików na bazę danych. Zarówno dane, jak i pliki dziennika w warstwie Ogólnego przeznaczenia są wliczane do tego limitu. Warstwa Krytyczne dla działania firmy obsługuje 32 767 plików na bazę danych.
  • Baza danych nie może zawierać grup plików zawierających dane FILESTREAM. Przywracanie kończy się niepowodzeniem, jeśli .bak zawiera FILESTREAM dane.
  • Każdy plik jest umieszczany w usłudze Azure Blob Storage. We/Wy i przepływność na plik zależą od rozmiaru każdego pojedynczego pliku.

INSTRUKCJA CREATE DATABASE

Następujące ograniczenia mają zastosowanie do :CREATE DATABASE

  • Nie można zdefiniować plików i grup plików.

  • Grupa plików i plik zoptymalizowany pod kątem pamięci są automatycznie dodawane i nazywane XTP.

  • Opcja nie jest obsługiwana CONTAINMENT .

  • WITH opcje nie są obsługiwane.

    Napiwek

    Aby obejść ten problem, użyj polecenia ALTER DATABASE po CREATE DATABASE ustawieniu opcji bazy danych, aby dodać pliki lub ustawić zawieranie.

  • Opcja nie jest obsługiwana FOR ATTACH .

  • Opcja nie jest obsługiwana AS SNAPSHOT OF .

Aby uzyskać więcej informacji, zobacz CREATE DATABASE (TWORZENIE BAZY DANYCH).

ALTER DATABASE, instrukcja

Niektórych właściwości pliku nie można ustawić ani zmienić:

  • Nie można określić ścieżki pliku w instrukcji ALTER DATABASE ADD FILE (FILENAME='path') T-SQL. Usuń FILENAME ze skryptu, ponieważ usługa SQL Managed Instance automatycznie umieszcza pliki.
  • Nie można zmienić nazwy pliku przy użyciu instrukcji ALTER DATABASE .
  • Zmiana pliku XTP lub grupy plików nie jest dozwolona.

Następujące opcje są domyślnie ustawione i nie można ich zmienić:

  • MULTI_USER
  • ENABLE_BROKER
  • AUTO_CLOSE OFF

Nie można modyfikować następujących opcji:

  • 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

Niektóre ALTER DATABASE instrukcje (na przykład SET CONTAINMENT) mogą się nie powieść, na przykład podczas automatycznej kopii zapasowej bazy danych lub bezpośrednio po utworzeniu bazy danych. W takim przypadku ALTER DATABASE należy ponowić próbę. Aby uzyskać więcej informacji na temat powiązanych komunikatów o błędach, zobacz sekcję Uwagi.

Aby uzyskać więcej informacji, zobacz ALTER DATABASE.

Program SQL Server Agent

  • Włączanie i wyłączanie agenta programu SQL Server nie jest obecnie obsługiwane w usłudze SQL Managed Instance. Agent SQL zawsze działa.
  • Wyzwalacz harmonogramu zadań na podstawie bezczynnego procesora CPU nie jest obsługiwany.
  • Ustawienia agenta programu SQL Server są tylko do odczytu. Procedura sp_set_agent_properties nie jest obsługiwana w usłudze SQL Managed Instance.
  • Zadania
    • Obsługiwane są kroki zadania T-SQL.
    • Obsługiwane są następujące zadania replikacji:
      • Czytnik dzienników transakcji
      • Snapshot
      • Dystrybutor
    • Obsługiwane są kroki zadań usług SSIS.
    • Inne typy kroków zadań nie są obecnie obsługiwane:
      • Krok zadania replikacji scalania nie jest obsługiwany.
      • Czytnik kolejek nie jest obsługiwany.
      • Powłoka poleceń nie jest jeszcze obsługiwana.
    • Usługa SQL Managed Instance nie może uzyskać dostępu do zasobów zewnętrznych, na przykład udziałów sieciowych za pośrednictwem narzędzia robocopy.
    • Usługi SQL Server Analysis Services nie są obsługiwane.
  • Powiadomienia są częściowo obsługiwane.
  • Powiadomienie e-mail jest obsługiwane, chociaż wymaga skonfigurowania profilu Poczta bazy danych. Program SQL Server Agent może używać tylko jednego profilu Poczta bazy danych i musi być wywoływany .AzureManagedInstance_dbmail_profile
    • Pager nie jest obsługiwany.
    • Usługa NetSend nie jest obsługiwana.
    • Alerty nie są jeszcze obsługiwane.
    • Serwery proxy nie są obsługiwane.
  • Dziennik zdarzeń nie jest obsługiwany.
  • Użytkownik musi być bezpośrednio mapowany na identyfikator logowania do serwera Entra firmy Microsoft, aby utworzyć, zmodyfikować lub wykonać zadania agenta SQL. Użytkownicy, którzy nie są bezpośrednio mapowane, na przykład użytkownicy należący do grupy Microsoft Entra, która ma uprawnienia do tworzenia, modyfikowania lub wykonywania zadań agenta SQL, nie będą mogli skutecznie wykonywać tych akcji. Jest to spowodowane personifikacją wystąpienia zarządzanego SQL i ograniczeniami EXECUTE AS.
  • Funkcja administracji wieloserwerowej dla zadań głównych/docelowych (MSX/TSX) nie jest obsługiwana.

Aby uzyskać informacje na temat agenta programu SQL Server, zobacz SQL Server Agent (Agent programu SQL Server).

Tabele

Następujące typy tabel nie są obsługiwane:

  • FILESTREAM
  • FILETABLE
  • TABELA ZEWNĘTRZNA (z wyjątkiem technologii PolyBase)
  • MEMORY_OPTIMIZED (nieobsługiwane tylko w warstwie Ogólnego przeznaczenia)

Aby uzyskać informacje na temat tworzenia i zmieniania tabel, zobacz CREATE TABLE i ALTER TABLE.

Funkcje

ZBIORCZE WSTAWIANIE/OPENROWSET

Usługa SQL Managed Instance nie może uzyskać dostępu do udziałów plików i folderów systemu Windows, więc pliki muszą być importowane z usługi Azure Blob Storage:

  • DATASOURCE polecenie jest wymagane podczas importowania BULK INSERT plików z usługi Azure Blob Storage. Zobacz WSTAWIANIE ZBIORCZE.
  • DATASOURCE funkcja jest wymagana OPENROWSET podczas odczytywania zawartości pliku z usługi Azure Blob Storage. Zobacz OPENROWSET.
  • OPENROWSET umożliwia odczytywanie danych z usług Azure SQL Database, Azure SQL Managed Instance lub SQL Server. Inne źródła, takie jak bazy danych Oracle lub pliki programu Excel, nie są obsługiwane.

CLR

Usługa SQL Managed Instance nie może uzyskać dostępu do udziałów plików i folderów systemu Windows, więc obowiązują następujące ograniczenia:

Poczta bazy danych (db_mail)

  • sp_send_dbmail Nie można wysyłać załączników przy użyciu @file_attachments parametru . Lokalny system plików i udziały zewnętrzne lub usługa Azure Blob Storage nie są dostępne w tej procedurze.
  • Zobacz znane problemy związane z @query parametrem i uwierzytelnianiem.

DBCC

Nieudokumentowane instrukcje DBCC włączone w programie SQL Server nie są obsługiwane w usłudze SQL Managed Instance.

  • Obsługiwana jest tylko ograniczona liczba flag śledzenia globalnego. Poziom Trace flags sesji nie jest obsługiwany. Zobacz Flagi śledzenia.
  • DbCC TRACEOFF i DBCC TRACEON współpracują z ograniczoną liczbą globalnych flag śledzenia.
  • DbCC CHECKDB z opcjami REPAIR_ALLOW_DATA_LOSS, REPAIR_FAST i REPAIR_REBUILD nie można używać, ponieważ nie można ustawić bazy danych w SINGLE_USER trybie — zobacz ALTER DATABASE differences (Różnice w funkcji ALTER DATABASE). Potencjalne uszkodzenie bazy danych jest obsługiwane przez zespół pomoc techniczna platformy Azure. Skontaktuj się z pomoc techniczna platformy Azure, jeśli wystąpi jakiekolwiek wskazanie uszkodzenia bazy danych.

Transakcje rozproszone

Transakcje rozproszone oparte na języku T-SQL i .NET w wystąpieniach zarządzanych są ogólnie dostępne. Inne scenariusze, takie jak transakcje XA, transakcje rozproszone między wystąpieniami zarządzanymi i innymi uczestnikami i inne, są obsługiwane za pomocą usługi DTC dla usługi Azure SQL Managed Instance, która jest dostępna w publicznej wersji zapoznawczej.

Zdarzenia rozszerzone

Niektóre elementy docelowe właściwe dla systemu Windows dotyczące zdarzeń rozszerzonych (XEvents) nie są obsługiwane:

Biblioteki zewnętrzne

Zewnętrzne biblioteki języka R i Python w bazie danych są obsługiwane w ograniczonej publicznej wersji zapoznawczej. Zobacz Usługi Machine Learning Services w usłudze Azure SQL Managed Instance (wersja zapoznawcza).

FILESTREAM i FileTable

  • Dane FILESTREAM nie są obsługiwane.
  • Baza danych nie może zawierać grup plików z FILESTREAM danymi.
  • FILETABLE nie jest obsługiwany.
  • Tabele nie mogą mieć FILESTREAM typów.
  • Następujące funkcje nie są obsługiwane:
    • GetPathLocator()
    • GET_FILESTREAM_TRANSACTION_CONTEXT()
    • PathName()
    • GetFileNamespacePat)
    • FileTableRootPath()

Aby uzyskać więcej informacji, zobacz FILESTREAM i FileTables.

Wyszukiwanie semantyczne nie jest obsługiwane.

Serwery połączone

Serwery połączone w usłudze SQL Managed Instance obsługują ograniczoną liczbę obiektów docelowych:

  • Obsługiwane obiekty docelowe to usługi SQL Managed Instance, SQL Database, Azure Synapse SQL Serverless i dedykowane pule oraz wystąpienia programu SQL Server.
  • Obiekty docelowe, które nie są obsługiwane, to pliki, usługi Analysis Services i inne systemy RDBMS. Spróbuj użyć natywnego importu woluminów CSV z usługi Azure Blob Storage przy użyciu BULK INSERT usługi Azure Blob Storage lub OPENROWSET jako alternatywy dla importowania plików lub załaduj pliki przy użyciu bezserwerowej puli SQL w usłudze Azure Synapse Analytics.

Operacji:

Serwery połączone w usłudze Azure SQL Managed Instance obsługują uwierzytelnianie SQL i uwierzytelnianie firmy Microsoft Entra.

PolyBase

Wirtualizacja danych za pomocą usługi Azure SQL Managed Instance umożliwia wykonywanie zapytań dotyczących języka Transact-SQL (T-SQL) względem danych z plików przechowywanych w usłudze Azure Data Lake Storage Gen2 lub Azure Blob Storage oraz łączenia ich z lokalnie przechowywanymi danymi relacyjnymi przy użyciu sprzężeń. Formaty plików Parquet i rozdzielane tekstem (CSV) są obsługiwane bezpośrednio. Format pliku JSON jest pośrednio obsługiwany przez określenie formatu pliku CSV, w którym zapytania zwracają każdy dokument jako oddzielny wiersz. Możliwe jest dalsze analizowanie wierszy przy użyciu poleceń JSON_VALUE i OPENJSON. Aby uzyskać ogólne informacje na temat technologii PolyBase, zobacz PolyBase.

Ponadto opcja CREATE EXTERNAL TABLE AS SELECT (CETAS) umożliwia eksportowanie danych z wystąpienia zarządzanego SQL do zewnętrznego konta magazynu. Za pomocą instrukcji CETAS można utworzyć tabelę zewnętrzną na podstawie plików Parquet lub CSV usługi Azure Blob Storage lub Azure Data Lake Storage (ADLS) Gen2. Instrukcje CETAS mogą również eksportować równolegle wyniki instrukcji T-SQL SELECT do utworzonej tabeli zewnętrznej.

Replikacja

  • Obsługiwane są typy replikacji migawek i dwukierunkowych. Replikacja scalania, replikacja równorzędna i subskrypcje z możliwością aktualizacji nie są obsługiwane.
  • Replikacja transakcyjna jest dostępna dla usługi SQL Managed Instance z pewnymi ograniczeniami:
    • Wszystkie typy uczestników replikacji (Wydawca, Dystrybutor, Subskrybent ściągania i Subskrybent wypychania) mogą być umieszczane w usłudze SQL Managed Instance, ale wydawca i dystrybutor muszą znajdować się zarówno w chmurze, jak i w obu środowiskach lokalnych.
    • Usługa SQL Managed Instance może komunikować się z najnowszymi wersjami programu SQL Server. Aby uzyskać więcej informacji, zobacz macierz obsługiwanych wersji.
    • Replikacja transakcyjna ma pewne dodatkowe wymagania dotyczące sieci.

Aby uzyskać więcej informacji na temat konfigurowania replikacji transakcyjnej, zobacz następujące samouczki:

INSTRUKCJA RESTORE

  • Obsługiwana składnia:
    • RESTORE DATABASE
    • RESTORE FILELISTONLY
    • RESTORE HEADERONLY
    • RESTORE LABELONLY
    • RESTORE VERIFYONLY
  • Nieobsługiwana składnia:
    • RESTORE LOGONLY
    • RESTORE REWINDONLY
  • Źródło:
    • FROM URL (Azure Blob Storage) jest jedyną obsługiwaną opcją.
    • FROM DISK/TAPEUrządzenie /backup nie jest obsługiwane.
    • Zestawy kopii zapasowych nie są obsługiwane.
  • WITH opcje nie są obsługiwane. Próby przywracania, w tym WITH takie jak DIFFERENTIAL, , STATSREPLACEi tak dalej, zakończy się niepowodzeniem.

Operacja przywracania bazy danych jest asynchroniczna i można ponowić próbę w usłudze Azure SQL Managed Instance. Jeśli połączenie nie powiedzie się lub upłynął limit czasu, może wystąpić błąd w programie SSMS. Usługa Azure SQL Managed Instance stale próbuje przywrócić bazę danych w tle i można śledzić postęp procesu przywracania przy użyciu sys.dm_exec_requests i dynamicznych widoków zarządzania sys.dm_operation_status .

Następujące opcje bazy danych są ustawiane lub zastępowane i nie można ich później zmienić:

  • NEW_BROKER jeśli broker nie jest włączony w pliku .bak.
  • ENABLE_BROKER jeśli broker nie jest włączony w pliku .bak.
  • AUTO_CLOSE=OFF jeśli baza danych w pliku .bak ma wartość AUTO_CLOSE=ON.
  • RECOVERY FULL jeśli baza danych w pliku .bak ma SIMPLE lub BULK_LOGGED model odzyskiwania.
  • Dodawana jest grupa plików zoptymalizowana pod kątem pamięci o nazwie XTP, jeśli nie znajduje się w pliku źródłowym .bak.
  • Każda istniejąca grupa plików zoptymalizowana pod kątem pamięci została zmieniona na XTP.
  • SINGLE_USER opcje i RESTRICTED_USER są konwertowane na MULTI_USER.

Ograniczenia:

  • Kopie zapasowe uszkodzonych baz danych mogą być przywracane w zależności od typu uszkodzenia, ale automatyczne kopie zapasowe nie są wykonywane, dopóki uszkodzenie nie zostanie naprawione. Upewnij się, że uruchomiono DBCC CHECKDB źródłową usługę SQL Managed Instance i użyj kopii zapasowej WITH CHECKSUM , aby zapobiec temu problemowi.
  • .BAK Przywracanie pliku bazy danych zawierającego wszelkie ograniczenia opisane w tym dokumencie (na przykład FILESTREAM lub FILETABLE obiektów) nie można przywrócić w usłudze SQL Managed Instance.
  • .BAK nie można przywrócić plików zawierających wiele zestawów kopii zapasowych.
  • .BAK nie można przywrócić plików dziennika zawierających wiele plików dziennika.
  • Kopie zapasowe zawierające bazy danych większe niż 8 TB, aktywne obiekty OLTP w pamięci lub liczbę plików, które przekroczyłyby 280 plików na wystąpienie, nie można przywrócić w wystąpieniu ogólnego przeznaczenia.
  • Kopie zapasowe zawierające bazy danych większe niż 4 TB lub obiekty OLTP w pamięci o całkowitym rozmiarze większym niż rozmiar opisany w temacie Limity zasobów nie można przywrócić w wystąpieniu Krytyczne dla działania firmy. Aby uzyskać informacje na temat instrukcji przywracania, zobacz instrukcje RESTORE.

Ważne

Te same ograniczenia dotyczą wbudowanej operacji przywracania do punktu w czasie. Na przykład nie można przywrócić bazy danych ogólnego przeznaczenia większej niż 4 TB w wystąpieniu Krytyczne dla działania firmy. Krytyczne dla działania firmy bazy danych z plikami OLTP w pamięci lub więcej niż 280 plików nie można przywrócić w wystąpieniu ogólnego przeznaczenia.

Broker usług

Wymiana komunikatów brokera usług między wystąpieniami jest obsługiwana tylko między usługą Azure SQL Managed Instances:

  • CREATE ROUTE: Nie można używać z CREATE ROUTE ADDRESS inną niż LOCAL ani nazwą DNS innego wystąpienia zarządzanego SQL. Port jest zawsze 4022.
  • ALTER ROUTE: Nie można używać z ALTER ROUTE ADDRESS inną niż LOCAL ani nazwą DNS innego wystąpienia zarządzanego SQL. Port jest zawsze 4022.

Zabezpieczenia transportu są obsługiwane, zabezpieczenia okien dialogowych nie są:

  • CREATE REMOTE SERVICE BINDINGnie jest obsługiwany.

Broker usługi jest domyślnie włączony i nie można go wyłączyć. Następujące opcje ALTER DATABASE nie są obsługiwane:

  • ENABLE_BROKER
  • DISABLE_BROKER

Procedury składowane, funkcje i wyzwalacze

  • NATIVE_COMPILATION nie jest obsługiwana w warstwie Ogólnego przeznaczenia.
  • Następujące opcje sp_configure nie są obsługiwane:
    • allow polybase export
    • allow updates
    • filestream_access_level
    • remote access
    • remote data archive
    • remote proc trans
    • scan for startup procs
  • Następujące opcje sp_configure są ignorowane i nie mają wpływu:
    • Ole Automation Procedures
  • sp_execute_external_scripts Program jest obsługiwany tylko w przypadku usług Machine Learning Services dla wystąpienia zarządzanego SQL. W przeciwnym razie sp_execute_external_scripts nie jest obsługiwana w przypadku usługi SQL Managed Instance. Zobacz sp_execute_external_scripts.
  • xp_cmdshell nie jest obsługiwany. Zobacz xp_cmdshell.
  • Extended stored procedures nie są obsługiwane, a dotyczy to również sp_addextendedproc systemów i sp_dropextendedproc. Ta funkcja nie będzie obsługiwana, ponieważ znajduje się w ścieżce wycofania dla programu SQL Server. Aby uzyskać więcej informacji, zobacz Rozszerzone procedury składowane.
  • sp_attach_db, sp_attach_single_file_dbi sp_detach_db nie są obsługiwane. Zobacz sp_attach_db, sp_attach_single_file_db i sp_detach_db.

Funkcje i zmienne systemowe

Następujące zmienne, funkcje i widoki zwracają różne wyniki:

  • SERVERPROPERTY('EngineEdition') Zwraca wartość 8. Ta właściwość jednoznacznie identyfikuje wystąpienie zarządzane SQL. Zobacz SERVERPROPERTY.
  • SERVERPROPERTY('InstanceName') Zwraca wartość NULL, ponieważ koncepcja wystąpienia, ponieważ istnieje dla programu SQL Server, nie ma zastosowania do usługi SQL Managed Instance. Zobacz SERVERPROPERTY('InstanceName').
  • @@SERVERNAME Zwraca pełną nazwę DNS "connectable", na przykład my-managed-instance.wcus17662feb9ce98.database.windows.net. Zobacz @@SERVERNAME.
  • SYS.SERVERS Zwraca pełną nazwę DNS "connectable", taką jak myinstance.domain.database.windows.net właściwości "name" i "data_source". Zobacz SYS. SERWERY.
  • @@SERVICENAME zwraca wartość NULL, ponieważ koncepcja usługi, która istnieje dla programu SQL Server, nie ma zastosowania do usługi SQL Managed Instance. Zobacz @@SERVICENAME.
  • SUSER_ID jest obsługiwany. Zwraca wartość NULL, jeśli identyfikator logowania entra firmy Microsoft nie znajduje się w pliku sys.syslogins. Zobacz SUSER_ID.
  • SUSER_SID nie jest obsługiwany. Zwracane są nieprawidłowe dane, co jest tymczasowym znanym problemem. Zobacz SUSER_SID.

Ograniczenia środowiska

Podsieć

  • Nie można umieścić żadnych innych zasobów (na przykład maszyn wirtualnych) w podsieci, w której wdrożono wystąpienie zarządzane SQL. Wdróż te zasoby przy użyciu innej podsieci.
  • Podsieć musi mieć wystarczającą liczbę dostępnych adresów IP. Minimalna wartość to co najmniej 32 adresy IP w podsieci.
  • Liczba rdzeni wirtualnych i typów wystąpień, które można wdrożyć w regionie, mają pewne ograniczenia i ograniczenia.
  • Istnieje konfiguracja sieci, która musi być stosowana w podsieci.

Sieć wirtualna

  • Sieć wirtualną można wdrożyć przy użyciu modelu zasobów. Model klasyczny nie obsługuje wdrażania sieci wirtualnej.
  • Po utworzeniu wystąpienia zarządzanego SQL przenoszenie wystąpienia zarządzanego SQL lub sieci wirtualnej do innej grupy zasobów lub subskrypcji nie jest obsługiwane.
  • W przypadku wystąpień zarządzanych SQL hostowanych w klastrach wirtualnych utworzonych przed 22 września 2020 r. globalna komunikacja równorzędna sieci wirtualnej nie jest obsługiwana. Możesz połączyć się z tymi zasobami za pośrednictwem usługi ExpressRoute lub sieci wirtualnej z siecią wirtualną za pośrednictwem bram sieci wirtualnej.

Grupy trybu failover

Systemowe bazy danych nie są replikowane do wystąpienia pomocniczego w grupie trybu failover. W związku z tym scenariusze zależne od obiektów z systemowych baz danych są niemożliwe w wystąpieniu pomocniczym, chyba że obiekty są tworzone ręcznie na serwerze pomocniczym.

tempdb

  • Maksymalny rozmiar pliku systemowej tempdb bazy danych nie może być większy niż 24 GB na rdzeń w warstwie Ogólnego przeznaczenia. Maksymalny tempdb rozmiar warstwy Krytyczne dla działania firmy jest ograniczony przez rozmiar magazynu usługi SQL Managed Instance. tempdb Rozmiar pliku dziennika jest ograniczony do 120 GB w warstwie Ogólnego przeznaczenia. Niektóre zapytania mogą zwracać błąd, jeśli potrzebują więcej niż 24 GB na rdzeń lub tempdb jeśli generują więcej niż 120 GB danych dziennika.
  • tempdb zawsze jest podzielony na 12 plików danych: 1 podstawowy, nazywany masterrównież , plik danych i 11 plików danych innych niż podstawowe. Nie można zmienić struktury plików i nie można dodać nowych plików do tempdbprogramu .
  • Metadane bazy danych TempDB zoptymalizowane pod kątem pamięci, nowa funkcja bazy danych sql Server 2019 w pamięci, nie jest obsługiwana.
  • Obiekty utworzone w model bazie danych nie mogą być automatycznie tworzone tempdb po ponownym uruchomieniu lub przejściu w tryb failover, ponieważ tempdb nie pobiera początkowej model listy obiektów z bazy danych. Obiekty należy utworzyć tempdb ręcznie po każdym ponownym uruchomieniu lub przejściu w tryb failover.

msdb

Następujące schematy w systemowej msdb bazie danych w usłudze SQL Managed Instance muszą być własnością odpowiednich wstępnie zdefiniowanych ról:

  • Role ogólne
    • TargetServersRole
  • Naprawiono role bazy danych
    • SQLAgentUserRole
    • SQLAgentReaderRole
    • SQLAgentOperatorRole
  • Role DatabaseMail:
    • DatabaseMailUserRole
  • Role usług integracji:
    • db_ssisadmin
    • db_ssisltduser
    • db_ssisoperator

Ważne

Zmiana wstępnie zdefiniowanych nazw ról, nazw schematów i właścicieli schematów przez klientów wpłynie na normalne działanie usługi. Wszelkie zmiany wprowadzone w nich zostaną przywrócone do wstępnie zdefiniowanych wartości natychmiast po wykryciu lub przy następnej aktualizacji usługi w celu zapewnienia normalnego działania usługi.

Dzienniki błędów

Usługa SQL Managed Instance umieszcza pełne informacje w dziennikach błędów. Istnieje wiele wewnętrznych zdarzeń systemu, które są rejestrowane w dzienniku błędów. Użyj procedury niestandardowej, aby odczytać dzienniki błędów, które filtruje niektóre nieistotne wpisy. Aby uzyskać więcej informacji, zobacz SQL Managed Instance — sp_readmierrorlog lub rozszerzenie usługi SQL Managed Instance (wersja zapoznawcza) dla usługi Azure Data Studio.

Zmiana liczby zachowanych dzienników błędów jest nieobsługiwana.