Różnice języka T-SQL między Azure SQL Managed Instance SQL Server &
Artykuł
Dotyczy: Azure SQL Managed Instance
W tym artykule podsumowano i wyjaśniono różnice w składni i zachowaniu między Azure SQL Managed Instance a SQL Server.
SQL Managed Instance zapewnia wysoką zgodność z aparatem bazy danych SQL Server, a większość funkcji jest obsługiwana w SQL Managed Instance.
Istnieją pewne ograniczenia paaS wprowadzone w SQL Managed Instance i pewne zmiany zachowania w porównaniu z SQL Server. Różnice są podzielone na następujące kategorie:
Azure SQL Managed Instance ma automatyczne kopie zapasowe, dzięki czemu użytkownicy mogą tworzyć pełne kopie zapasowe bazy danychCOPY_ONLY. Różnicowe, dzienniki i kopie zapasowe migawek plików nie są obsługiwane.
Za pomocą SQL Managed Instance można utworzyć kopię zapasową bazy danych wystąpień tylko na koncie usługi Azure Blob Storage:
Obsługiwany jest tylko warunek BACKUP TO URL.
FILEUrządzenia do TAPEtworzenia kopii zapasowych , i kopii zapasowych 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śm: REWIND, NOREWIND, UNLOADi NOUNLOAD nie są obsługiwane.
Opcje specyficzne dla dziennika: NORECOVERY, STANDBYi NO_TRUNCATE nie są obsługiwane.
Ograniczenia:
Za pomocą SQL Managed Instance można utworzyć kopię zapasową bazy danych wystąpień 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 wykonane na SQL Managed Instance można przywrócić tylko do wystąpienia SQL Server 2022. Wynika to z tego, że SQL Managed Instance ma wyższą wewnętrzną wersję bazy danych w porównaniu z innymi wersjami SQL Server. Aby uzyskać więcej informacji, zobacz Przywracanie kopii zapasowej bazy danych SQL Managed Instance do 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 SQL Managed Instance wynosi 195 GB, czyli maksymalny rozmiar obiektu blob. Zwiększ liczbę pasków w poleceniu tworzenia kopii zapasowej, aby zmniejszyć rozmiar poszczególnych pasków i pozostać w tym limicie.
Porada
Aby obejść to ograniczenie, podczas tworzenia kopii zapasowej bazy danych z SQL Server w środowisku lokalnym lub na maszynie wirtualnej można wykonywać następujące czynności:
Tworzenie kopii zapasowej do DISK pliku zamiast tworzenia kopii zapasowej do URLpliku .
Przekaż pliki kopii zapasowej do usługi Blob Storage.
Przywróć do SQL Managed Instance.
Polecenie Restore w 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 BACKUP.
Zabezpieczenia
Inspekcja
Najważniejsze różnice między inspekcją w usłudze Microsoft Azure SQL i SQL Server to:
W przypadku SQL Managed Instance inspekcja działa na poziomie serwera. Pliki .xel dziennika są przechowywane w usłudze Azure Blob Storage.
W przypadku usługi Azure SQL Database inspekcja działa na poziomie bazy danych. Pliki .xel dziennika są przechowywane w usłudze Azure Blob Storage.
W przypadku SQL Server, lokalnie lub na maszynach wirtualnych inspekcja działa na poziomie serwera. Zdarzenia są przechowywane w dziennikach zdarzeń systemu plików lub systemu Windows.
Inspekcja XEvent w usłudze SQL Managed Instance obsługuje obiekty docelowe usługi Azure Blob Storage. Dzienniki plików i systemu Windows nie są obsługiwane.
Kluczowe różnice w CREATE AUDIT składni inspekcji w usłudze Azure Blob Storage są następujące:
Udostępniono nową składnię TO URL umożliwiającą określenie adresu URL kontenera usługi Azure Blob Storage, w .xel którym są umieszczane pliki.
Składnia TO FILE nie jest obsługiwana, ponieważ SQL Managed Instance nie może uzyskać dostępu do udziałów plików systemu Windows.
Obsługiwane są jednostki serwera usługi Azure Active Directory (Azure AD) utworzone przy użyciu składni CREATE LOGIN lub składni CREATE USER FROM LOGIN [Azure AD Login]. Te identyfikatory logowania są tworzone na poziomie serwera.
SQL Managed Instance obsługuje jednostki bazy danych Azure AD ze składnią CREATE USER [AADUser/AAD group] FROM EXTERNAL PROVIDER. Ta funkcja jest również znana jako Azure AD użytkowników zawartej bazy 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 usługi Azure Active Directory.
Użytkownicy niebędący administratorami Azure AD użytkowników na poziomie bazy danych można utworzyć przy użyciu CREATE USER ... FROM EXTERNAL PROVIDER składni . Zobacz CREATE USER ... OD DOSTAWCY ZEWNĘTRZNEGO.
Niektóre funkcje nie obsługują użycia Azure AD jednostek serwera (identyfikatorów logowania) w interakcji między wystąpieniami, ale tylko w ramach jednej SQL Managed Instance. Przykładem takiej funkcji jest replikacja SQL. Funkcja serwera połączonego obsługuje uwierzytelnianie między wystąpieniami przy użyciu jednostek serwera Azure AD (identyfikatorów logowania).
Ustawienie nazwy logowania Azure AD mapowanej na grupę Azure AD, ponieważ właściciel bazy danych nie jest obsługiwany. Członkiem grupy Azure AD 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 Azure AD przy użyciu innych podmiotów zabezpieczeń Azure AD jest obsługiwana, na przykład klauzula EXECUTE AS. Ograniczenia funkcji EXECUTE AS są następujące:
Funkcja EXECUTE AS USER nie jest obsługiwana w przypadku Azure AD użytkowników, 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 próby personifikacji za pomocą polecenia EXEC AS USER = myAadUser. Podczas tworzenia użytkownika na podstawie jednostki serwera Azure AD (identyfikatora logowania) określ user_name co ten sam login_name z identyfikatora LOGIN.
Tylko podmioty zabezpieczeń na poziomie SQL Server (identyfikatory logowania), które są częścią sysadmin roli, mogą wykonywać następujące operacje przeznaczone dla podmiotów zabezpieczeń Azure AD:
EXECUTE AS USER
EXECUTE AS LOGIN
Aby personifikować użytkownika za pomocą instrukcji EXECUTE AS, użytkownik musi zostać zamapowany bezpośrednio na Azure AD podmiot zabezpieczeń serwera (identyfikator logowania). Użytkownicy, którzy są członkami grup Azure AD mapowanych na podmioty zabezpieczeń serwera Azure AD, 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 Azure AD w SQL Managed Instance przy użyciu programu SSMS w wersji 18.4 lub nowszej albo pakietu 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 Azure AD.
Wyeksportuj bazę danych z SQL Managed Instance i zaimportuj do SQL Database w tej samej domenie Azure AD.
Wyeksportuj bazę danych z SQL Database i zaimportuj do SQL Managed Instance w tej samej domenie Azure AD.
Eksportowanie bazy danych z SQL Managed Instance i importowanie do SQL Server (wersja 2012 lub nowsza).
W tej konfiguracji wszyscy użytkownicy Azure AD są utworzeni jako SQL Server podmioty zabezpieczeń bazy danych (użytkownicy) bez logowań. Typ użytkowników to SQL i jest widoczny w programie SQL_USERsys.database_principals. Ich uprawnienia i role pozostają w metadanych bazy danych SQL Server i mogą być używane do personifikacji. Nie można ich jednak używać do uzyskiwania dostępu do SQL Server i logowania się przy użyciu poświadczeń.
Tylko identyfikator logowania podmiotu zabezpieczeń na poziomie serwera, który jest tworzony przez proces aprowizacji SQL Managed Instance, członków ról serwera, takich jak securityadmin lub sysadmin, lub innych identyfikatorów logowania z uprawnieniem ALTER ANY LOGIN na poziomie serwera, może utworzyć Azure AD podmioty zabezpieczeń serwera (identyfikatory logowania) w master bazie danych dla SQL Managed Instance.
Jeśli identyfikator logowania jest podmiotem zabezpieczeń SQL, tylko identyfikatory logowania, które są częścią sysadmin roli, mogą użyć polecenia create, aby utworzyć identyfikatory logowania dla konta Azure AD.
Identyfikator logowania Azure AD musi być członkiem Azure AD w tym samym katalogu używanym do Azure SQL Managed Instance.
Azure AD podmioty zabezpieczeń serwera (identyfikatory logowania) są widoczne w Eksplorator obiektów począwszy od wersji SQL Server Management Studio 18.0 (wersja zapoznawcza 5).
Jednostka serwera z poziomem dostępu administratora systemu jest tworzona automatycznie dla konta administratora Azure AD po włączeniu go w wystąpieniu.
Podczas uwierzytelniania stosowana jest następująca sekwencja w celu rozpoznania podmiotu zabezpieczeń uwierzytelniania:
Jeśli konto Azure AD istnieje jako bezpośrednio mapowane na jednostkę serwera Azure AD (identyfikator logowania), który jest obecny jako sys.server_principals typ "E", przyznaj dostęp i zastosuj uprawnienia podmiotu zabezpieczeń serwera Azure AD (identyfikator logowania).
Jeśli konto Azure AD jest członkiem grupy Azure AD, która jest mapowana na jednostkę serwera Azure AD (identyfikator logowania), która jest obecna jako sys.server_principals typ "X", przyznaj dostęp i zastosuj uprawnienia logowania grupy Azure AD.
Jeśli konto Azure AD istnieje jako bezpośrednio mapowane na użytkownika Azure AD w bazie danych, który jest obecny jako sys.database_principals typ "E", udziel dostępu i zastosuj uprawnienia użytkownika bazy danych Azure AD.
Jeśli konto Azure AD jest członkiem grupy Azure AD mapowanej na użytkownika Azure AD w bazie danych, który jest obecny jako sys.database_principals typ "X", przyznaj dostęp i zastosuj uprawnienia użytkownika grupy Azure AD.
Domyślnym sortowaniem wystąpienia jest 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.
Baza danych nie może zawierać grup plików zawierających dane strumienia plików. Przywracanie kończy się niepowodzeniem, jeśli plik 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.
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') języka T-SQL. Usuń FILENAME ze skryptu, ponieważ SQL Managed Instance automatycznie umieszcza pliki.
Nie można zmienić nazwy pliku przy użyciu instrukcji ALTER DATABASE .
Modyfikowanie pliku lub grupy plików XTP jest niedozwolone.
Następujące opcje są domyślnie ustawione i nie można ich zmienić:
MULTI_USER
ENABLE_BROKER
AUTO_CLOSE OFF
Nie można zmodyfikować 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ą nie powieść się przejściowo, na przykład podczas automatycznego tworzenia kopii zapasowej bazy danych lub bezpośrednio po utworzeniu bazy danych. W takim przypadku ALTER DATABASE należy ponowić próbę instrukcji . Aby uzyskać więcej informacji na temat powiązanych komunikatów o błędach, zobacz sekcję Uwagi.
Włączanie i wyłączanie agenta SQL Server nie jest obecnie obsługiwane w SQL Managed Instance. Agent SQL zawsze działa.
Wyzwalacz harmonogramu zadań na podstawie bezczynnego procesora CPU nie jest obsługiwany.
SQL Server Ustawienia agenta są tylko do odczytu. Procedura sp_set_agent_properties nie jest obsługiwana w SQL Managed Instance.
Stanowiska
Kroki zadania języka T-SQL są obsługiwane.
Obsługiwane są następujące zadania replikacji:
Czytnik dzienników transakcji
Snapshot
Dystrybutor
Obsługiwane są kroki zadania usług SSIS.
Inne typy kroków zadania 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.
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.
SQL Server Analysis Services nie jest obsługiwana.
Powiadomienia są częściowo obsługiwane.
Email powiadomienia są obsługiwane, chociaż wymaga skonfigurowania profilu Poczta bazy danych. 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 Azure AD podmiot zabezpieczeń serwera (identyfikator logowania), aby tworzyć, modyfikować lub wykonywać zadania agenta SQL. Użytkownicy, którzy nie są bezpośrednio mapowane, na przykład użytkownicy należący do grupy Azure AD, która ma prawa do tworzenia, modyfikowania lub wykonywania zadań agenta SQL, nie będą mogli skutecznie wykonywać tych akcji. Jest to spowodowane ograniczeniami SQL Managed Instance personifikacji i WYKONYWANIA JAKO.
Funkcja administracji wieloserwerowej dla zadań master/target (MSX/TSX) nie jest obsługiwana.
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
Wstawianie zbiorcze /OPENROWSET
SQL Managed Instance nie można uzyskać dostępu do udziałów plików i folderów systemu Windows, dlatego pliki muszą być importowane z usługi Azure Blob Storage:
DATASOURCE jest wymagane w poleceniu podczas importowania BULK INSERT plików z usługi Azure Blob Storage. Zobacz WSTAWIANIE ZBIORCZE.
DATASOURCE jest wymagany w OPENROWSET funkcji podczas odczytywania zawartości pliku z usługi Azure Blob Storage. Zobacz OPENROWSET.
OPENROWSETmoże służyć do odczytywania danych z Azure SQL Database, Azure SQL Managed Instance lub SQL Server wystąpień. Inne źródła, takie jak bazy danych Oracle lub pliki programu Excel, nie są obsługiwane.
CLR
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:
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 Azure Blob Storage nie są dostępne w tej procedurze.
Zobacz znane problemy związane z @query parametrami i uwierzytelnianiem.
DBCC
Nieudokumentowane instrukcje DBCC włączone w SQL Server nie są obsługiwane w SQL Managed Instance.
Obsługiwana jest tylko ograniczona liczba flag śledzenia globalnego. Poziom Trace flags sesji nie jest obsługiwany. Zobacz Flagi ś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 bazie danych ALTER DATABASE). Potencjalne uszkodzenie bazy danych jest obsługiwane przez zespół pomoc techniczna platformy Azure. Skontaktuj się z pomoc techniczna platformy Azure, jeśli istnieje jakiekolwiek wskazanie uszkodzenia bazy danych.
Połączone serwery w SQL Managed Instance obsługują ograniczoną liczbę obiektów docelowych:
Obsługiwane obiekty docelowe to SQL Managed Instance, SQL Database, Azure Synapse bezserwerowe i dedykowane pule SQL oraz wystąpienia 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 csv z Azure Blob Storage przy użyciu BULK INSERT lub jako alternatywy dla importowania plików lub załaduj pliki przy użyciu bezserwerowej puli SQL w usłudze Azure Synapse AnalyticsOPENROWSET.
Operacje:
sp_dropserver Program jest obsługiwany w przypadku usuwania połączonego serwera. Zobacz sp_dropserver.
Funkcja OPENROWSET może służyć do wykonywania zapytań tylko na wystąpieniach SQL Server. Mogą być zarządzane, lokalne lub na maszynach wirtualnych. Zobacz OPENROWSET.
Funkcja OPENDATASOURCE może służyć do wykonywania zapytań tylko w wystąpieniach SQL Server. Mogą być zarządzane, lokalne lub na maszynach wirtualnych. Może to być na przykład SELECT * FROM OPENDATASOURCE('SQLNCLI', '...').AdventureWorks2012.HumanResources.Employee. SQLNCLITylko wartości , SQLNCLI11, SQLOLEDBi MSOLEDBSQL są obsługiwane jako dostawca. SQL Server Native Client (często skrócony SNAC) został usunięty z SQL Server 2022 r. i SQL Server Management Studio 19 (SSMS). SQL Server Native Client (SQLNCLI lub SQLNCLI11) i starszego dostawcy Microsoft OLE DB dla SQL Server (SQLOLEDB) nie są zalecane w przypadku nowego programowania. Przejdź do nowego sterownika MICROSOFT OLE DB (MSOLEDBSQL) dla SQL Server lub najnowszego sterownika ODBC firmy Microsoft dla SQL Server w przyszłości.
Połączone serwery na Azure SQL Managed Instance obsługują uwierzytelnianie SQL i uwierzytelnianie Azure AD.
PolyBase
Wirtualizacja danych z Azure SQL Managed Instance umożliwia wykonywanie zapytań języka Transact-SQL (T-SQL) względem danych z plików przechowywanych w Azure Data Lake Storage Gen2 lub Azure Blob Storage i łą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 o 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. Funkcja CETAS może również równolegle eksportować wyniki instrukcji T-SQL SELECT do utworzonej tabeli zewnętrznej.
Replikacja
Obsługiwane są typy replikacji migawki i dwukierunkowe. Replikacja scalania, replikacja równorzędna i subskrypcje z możliwością aktualizacji nie są obsługiwane.
Wszystkie typy uczestników replikacji (wydawca, dystrybutor, subskrybent ściągania i subskrybent wypychania) można umieścić na SQL Managed Instance, ale wydawca i dystrybutor muszą znajdować się zarówno w chmurze, jak i w obu środowiskach lokalnych.
SQL Managed Instance może komunikować się z najnowszymi wersjami SQL Server. Aby uzyskać więcej informacji, zobacz macierz obsługiwanych wersji.
FROM URL (Azure Blob Storage) jest jedyną obsługiwaną opcją.
FROM DISK/TAPE/backup device 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 Azure SQL Managed Instance. Jeśli połączenie zakończy się niepowodzeniem lub upłynął limit czasu, może wystąpić błąd w programie SSMS. Azure SQL Managed Instance nadal próbuje przywrócić bazę danych w tle i można śledzić postęp procesu przywracania przy użyciu sys.dm_exec_requests i sys.dm_operation_status dynamicznych widoków zarządzania.
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 AUTO_CLOSE=ONwartość .
RECOVERY FULL jeśli baza danych w pliku bak ma SIMPLE lub BULK_LOGGED tryb odzyskiwania.
Dodawana jest grupa plików zoptymalizowana pod kątem pamięci o nazwie XTP, jeśli nie znajduje się w źródłowym pliku 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ą zostać przywrócone w zależności od typu uszkodzenia, ale automatyczne kopie zapasowe nie zostaną wykonane, dopóki uszkodzenie nie zostanie naprawione. Upewnij się, że uruchomiono DBCC CHECKDB źródłową SQL Managed Instance i użyj kopii zapasowejWITH CHECKSUM, aby zapobiec temu problemowi.
.BAK Nie można przywrócić pliku bazy danych zawierającej jakiekolwiek ograniczenia opisane w tym dokumencie (na przykład FILESTREAM lub FILETABLE obiektów) w 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 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 limitach 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 wystąpieniami zarządzanymi Azure SQL:
CREATE ROUTE: Nie można używać CREATE ROUTE z ADDRESS inną nazwą LOCAL niż dns innej SQL Managed Instance. Port jest zawsze 4022.
ALTER ROUTE: Nie można używać ALTER ROUTE z ADDRESS inną nazwą LOCAL niż dns innej SQL Managed Instance. Port jest zawsze 4022.
Zabezpieczenia transportu są obsługiwane, zabezpieczenia okna dialogowego nie są:
CREATE REMOTE SERVICE BINDINGnie są obsługiwane.
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_COMPILATIONnie jest obsługiwana w warstwie Ogólnego przeznaczenia.
xp_cmdshell nie jest obsługiwane. Zobacz xp_cmdshell.
Extended stored procedures nie są obsługiwane, a dotyczy to sp_addextendedproc również parametrów i sp_dropextendedproc. Ta funkcja nie będzie obsługiwana, ponieważ znajduje się ona w ścieżce wycofania dla SQL Server. Aby uzyskać więcej informacji, zobacz Rozszerzone procedury składowane.
Następujące zmienne, funkcje i widoki zwracają różne wyniki:
SERVERPROPERTY('EngineEdition') zwraca wartość 8. Ta właściwość jednoznacznie identyfikuje SQL Managed Instance. Zobacz SERVERPROPERTY.
SERVERPROPERTY('InstanceName')zwraca wartość NULL, ponieważ koncepcja wystąpienia istnieje dla SQL Server nie ma zastosowania do 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 SYSTEM. SERWERY.
@@SERVICENAMEzwraca wartość NULL, ponieważ koncepcja usługi istnieje dla SQL Server nie ma zastosowania do SQL Managed Instance. Zobacz @@SERVICENAME.
SUSER_ID jest obsługiwana. Zwraca wartość NULL, jeśli identyfikator logowania Azure AD nie znajduje się w elemecie 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 SQL Managed Instance. 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, ma pewne ograniczenia i limity.
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 połączenia między sieciami wirtualnymi 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 SQL Managed Instance. TempdbRozmiar 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 element jest zawsze podzielony na 12 plików danych: 1 podstawowy, nazywany również głównym, plikiem danych i 11 plikami danych innych niż podstawowe. Nie można zmienić struktury plików i nie można dodać nowych plików do programu tempdb.
Obiekty utworzone w bazie danych modelu nie mogą być automatycznie tworzone tempdb po ponownym uruchomieniu lub przejściu w tryb failover, ponieważ tempdb nie pobiera początkowej listy obiektów z bazy danych modelu. 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 SQL Managed Instance muszą być własnością odpowiednich wstępnie zdefiniowanych ról:
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 zaraz po wykryciu lub przy następnej aktualizacji usługi najpóźniej w celu zapewnienia normalnego działania usługi.
Dzienniki błędów
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 SQL Managed Instance (wersja zapoznawcza) dla programu Azure Data Studio.
Zmiana liczby zachowanych dzienników błędów jest nieobsługiwana.
W tym artykule opisano funkcję linku Azure SQL Managed Instance, która umożliwia ciągłe replikowanie danych z SQL Server do chmury lub migrowanie SQL Server baz danych z minimalnym przestojem.