Bewertungsregeln für die Migration von SQL Server zu Azure SQL Managed Instance

Gilt für: Azure SQL Managed Instance

Mit Migrationstools wird Ihre SQL Server-Quellinstanz überprüft, indem mehrere Bewertungsregeln angewendet werden. Die Regeln identifizieren Probleme, die behoben werden müssen, bevor für Ihre SQL Server-Datenbank die Migration zu Azure SQL Managed Instance durchgeführt wird.

Dieser Artikel enthält eine Liste mit den Regeln, die zum Bewerten der Durchführbarkeit einer Migration Ihrer SQL Server-Datenbank zu Azure SQL Managed Instance verwendet werden.

Zusammenfassung von Regeln

Titel der Regel Ebene Category Details
AnalysisCommandJob Instanz Warnung Der AnalysisCommand-Auftragsschritt wird in Azure SQL Managed Instance nicht unterstützt.
AnalysisQueryJob Instanz Warnung AnalysisQuery-Auftragsschritt wird in Azure SQL Managed Instance nicht unterstützt.
AssemblyFromFile Datenbank Problem CREATE ASSEMBLY und ALTER ASSEMBLY mit einem Dateiparameter werden in Azure SQL Managed Instance nicht unterstützt.
BulkInsert Datenbank Problem BULK INSERT bei anderer Datenquelle als Azure-Blob wird in Azure SQL Managed Instance nicht unterstützt.
ClrStrictSecurity Datenbank Warnung Als SAFE oder EXTERNAL_ACCESS markierte CLR-Assemblys werden als UNSAFE eingestuft.
ComputeClause Datenbank Warnung Die COMPUTE-Klausel wird nicht mehr unterstützt und wurde entfernt.
CryptographicProvider Datenbank Problem Es wurde eine Verwendung von CREATE CRYPTOGRAPHIC PROVIDER oder ALTER CRYPTOGRAPHIC PROVIDER gefunden. Dies wird in Azure SQL Managed Instance nicht unterstützt.
DatabasePrincipalAlias Datenbank Problem SYS.DATABASE_PRINCIPAL_ALIASES wird nicht mehr unterstützt und wurde entfernt.
DbCompatLevelLowerThan100 Datenbank Warnung Ein Datenbank-Kompatibilitätsgrad von unter 100 wird nicht unterstützt.
DisableDefCNSTCHK Datenbank Problem Die SET-Option „DISABLE_DEF_CNST_CHK“ wird nicht mehr unterstützt und wurde entfernt.
FastFirstRowHint Datenbank Warnung Der FASTFIRSTROW-Abfragehinweis wird nicht mehr unterstützt und wurde entfernt.
FileStream Datenbank Problem FILESTREAM und Dateitabelle werden in Azure SQL Managed Instance nicht unterstützt.
LinkedServerWithNonSQLProvider Datenbank Problem Ein Verbindungsserver (kein SQL Server-Anbieter) wird in Azure SQL Managed Instance nicht unterstützt.
MergeJob Instanz Warnung Der Auftragsschritt „Zusammenführen“ (Merge) wird in Azure SQL Managed Instance nicht unterstützt.
MIDatabaseSize Datenbank Problem Für Azure SQL Managed Instance wird eine Datenbankgröße von über 16 TB nicht unterstützt.
MIHeterogeneousMSDTCTransactSQL Datenbank Problem BEGIN DISTRIBUTED TRANSACTION mit einem anderen Remoteserver als einem SQL Server-Remoteserver wird in Azure SQL Managed Instance nicht unterstützt.
MIHomogeneousMSDTCTransactSQL Datenbank Problem BEGIN DISTRIBUTED TRANSACTION wird für Azure SQL Managed Instance für mehrere Server unterstützt.
MIInstanceSize Instanz Warnung Die maximale Instanzspeichergröße in Azure SQL Managed Instance darf nicht größer als 8 TB sein.
MultipleLogFiles Datenbank Problem Für Azure SQL Managed Instance werden keine Datenbanken mit mehreren Protokolldateien unterstützt.
NextColumn Datenbank Problem Tabellen und Spalten mit dem Namen NEXT führen in Azure SQL Managed Instance zu einem Fehler.
NonANSILeftOuterJoinSyntax Datenbank Warnung Linke äußere Verknüpfung (kein ANSI-Format) wird nicht mehr unterstützt und wurde entfernt.
NonANSIRightOuterJoinSyntax Datenbank Warnung Rechte äußere Verknüpfung (kein ANSI-Format) wird nicht mehr unterstützt und wurde entfernt.
NumDbExceeds100 Instanz Warnung Für Azure SQL Managed Instance werden maximal 100 Datenbanken pro Instanz unterstützt.
OpenRowsetWithNonBlobDataSourceBulk Datenbank Problem OpenRowSet bei einem Massenvorgang bei einer Datenquelle, die kein Azure-Blobspeicher ist, wird in Azure SQL Managed Instance nicht unterstützt.
OpenRowsetWithNonSQLProvider Datenbank Problem OpenRowSet mit einem anderen Anbieter als SQL wird in Azure SQL Managed Instance nicht unterstützt.
PowerShellJob Instanz Warnung Der PowerShell-Auftragsschritt wird in Azure SQL Managed Instance nicht unterstützt.
QueueReaderJob Instanz Warnung Der Warteschlangenleser-Auftragsschritt wird in Azure SQL Managed Instance nicht unterstützt.
RAISERROR Datenbank Warnung RAISERROR-Aufrufe im Legacystil sollten durch moderne Äquivalente ersetzt werden.
SqlMail Datenbank Warnung SQL Mail wird nicht mehr unterstützt.
SystemProcedures110 Datenbank Warnung Es wurden Anweisungen erkannt, in denen auf entfernte gespeicherte Systemprozeduren verwiesen wird, die in Azure SQL Managed Instance nicht verfügbar sind.
TraceFlags Instanz Warnung Es wurden Ablaufverfolgungsflags gefunden, die in Azure SQL Managed Instance nicht unterstützt werden.
TransactSqlJob Instanz Warnung Der T-SQL-Auftragsschritt enthält nicht unterstützte Befehle in Azure SQL Managed Instance.
WindowsAuthentication Instanz Warnung Datenbankbenutzer mit Zuordnung der Windows-Authentifizierung (integrierte Sicherheit) werden in Azure SQL Managed Instance nicht unterstützt.
XpCmdshell Datenbank Problem „xp_cmdshell“ wird in Azure SQL Managed Instance nicht unterstützt.

AnalysisCommand-Auftrag

Titel: AnalysisCommand-Auftragsschritt wird in Azure SQL Managed Instance nicht unterstützt.
Kategorie: Warnung

Beschreibung
Bei diesem Auftragsschritt wird ein Analysis Services-Befehl ausgeführt. Der AnalysisCommand-Auftragsschritt wird in Azure SQL Managed Instance nicht unterstützt.

Empfehlung
Sehen Sie sich in Azure Migrate den Abschnitt mit den betroffenen Objekten an. Es werden alle Aufträge angezeigt, für die der Auftragsschritt mit dem Analysis Services-Befehl verwendet wird, und Sie können ermitteln, ob der Auftragsschritt oder das betroffene Objekt entfernt werden kann. Alternativ können Sie zu SQL Server auf einer Azure-VM migrieren.

Weitere Informationen: Unterschiede im SQL Server-Agent in Azure SQL Managed Instance

AnalysisQuery-Auftrag

Titel: AnalysisQuery-Auftragsschritt wird in Azure SQL Managed Instance nicht unterstützt.
Kategorie: Warnung

Beschreibung
Bei diesem Auftragsschritt wird eine Analysis Services-Abfrage durchgeführt. AnalysisQuery-Auftragsschritt wird in Azure SQL Managed Instance nicht unterstützt.

Empfehlung
Sehen Sie sich in Azure Migrate den Abschnitt mit den betroffenen Objekten an. Es werden alle Aufträge angezeigt, für die der Auftragsschritt mit der Analysis Services-Abfrage verwendet wird, und Sie können ermitteln, ob der Auftragsschritt oder das betroffene Objekt entfernt werden kann. Alternativ können Sie zu SQL Server auf einer Azure-VM migrieren.

Weitere Informationen: Unterschiede im SQL Server-Agent in Azure SQL Managed Instance

Assembly aus Datei

Titel: CREATE ASSEMBLY und ALTER ASSEMBLY mit einem Dateiparameter werden in Azure SQL Managed Instance nicht unterstützt.
Kategorie: Problem

Beschreibung
Azure SQL Managed Instance unterstützt CREATE ASSEMBLY oder ALTER ASSEMBLY mit einem Dateiparameter nicht. Ein binärer Parameter wird unterstützt. Das spezifische Objekt, in dem der Dateiparameter verwendet wird, finden Sie im Abschnitt Betroffene Objekte.

Empfehlung
Überprüfen Sie Objekte mithilfe von CREATE ASSEMBLY oder ALTER ASSEMBLY mit einem Dateiparameter. Wenn solche Objekte erforderlich sind, konvertieren Sie den Dateiparameter in einen binären Parameter. Alternativ können Sie zu SQL Server auf einer Azure-VM migrieren.

Weitere Informationen: CLR-Unterschiede in Azure SQL Managed Instance

BULK INSERT

Titel: BULK INSERT bei anderer Datenquelle als Azure-Blob wird in Azure SQL Managed Instance nicht unterstützt.
Kategorie: Problem

Beschreibung
Azure SQL Managed Instance kann nicht auf Dateifreigaben oder Windows-Ordner zugreifen. Der Abschnitt „Betroffene Objekte“ enthält Informationen zu den spezifischen Verwendungsmöglichkeiten für BULK INSERT-Anweisungen, für die nicht auf ein Azure-Blob verwiesen wird. Objekte mit „BULK INSERT“, bei denen die Quelle nicht Azure Blob Storage ist, funktionieren nach der Migration zu Azure SQL Managed Instance nicht mehr.

Empfehlung
Sie müssen BULK INSERT-Anweisungen, für die lokale Dateien oder Dateifreigaben verwendet werden, auf die Verwendung von Dateien aus Azure Blob Storage umstellen, wenn Sie eine Migration zu Azure SQL Managed Instance durchführen.

Weitere Informationen: Masseneinfügen und OPENROWSET-Unterschiede in Azure SQL Managed Instance

CLR-Sicherheit

Titel: Als SAFE oder EXTERNAL_ACCESS markierte CLR-Assemblys werden als UNSAFE eingestuft.
Kategorie: Warnung

Beschreibung
In Azure SQL Managed Instance wird der strenge CLR-Sicherheitsmodus erzwungen. Dieser Modus ist standardmäßig aktiviert und umfasst Breaking Changes für Datenbanken mit benutzerdefinierten CLR-Assemblys, die entweder als SAFE oder EXTERNAL_ACCESS markiert sind.

Empfehlung

CLR verwendet die Codezugriffssicherheit (Code Access Security, CAS) im .NET Framework, die nicht länger als Sicherheitsbegrenzung unterstützt wird. Eine CLR-Assembly, die mit PERMISSION_SET = SAFE erstellt wurde, kann womöglich auf externe Systemressourcen zugreifen, nicht verwalteten Code aufrufen und sysadmin-Privilegien erwerben. In SQL Server 2017 (14.x) und höheren Versionen verbessert die sp_configure Option clr strict security die Sicherheit von CLR-Assemblys. clr strict security ist standardmäßig aktiviert und behandelt SAFE- und EXTERNAL_ACCESS-Assemblys so, als wären Sie als UNSAFE gekennzeichnet. Die Option clr strict security kann für die Abwärtskompatibilität deaktiviert werden, es wird jedoch nicht empfohlen.

Wir empfehlen Ihnen, alle Assemblys mit einem Zertifikat oder einem asymmetrischen Schlüssel mit einem entsprechenden Anmeldenamen zu signieren, dem UNSAFE ASSEMBLY-Berechtigung für die master-Datenbank gewährt wurde. SQL Server-Administratoren können auch Assemblys einer Liste von Assemblys hinzufügen, der die Datenbank-Engine vertrauen sollte. Weitere Informationen finden Sie unter sys.sp_add_trusted_assembly.

COMPUTE-Klausel

Titel: Die COMPUTE-Klausel wird nicht mehr unterstützt und wurde entfernt.
Kategorie: Warnung

Beschreibung
Die COMPUTE-Klausel generiert Gesamtsummen, die als zusätzliche Summenspalten am Ende des Resultsets aufgeführt werden. Diese Klausel wird in Azure SQL Managed Instance aber nicht mehr unterstützt.

Empfehlung
Das T-SQL-Modul muss stattdessen mit dem ROLLUP-Operator umgeschrieben werden. Der folgende Code veranschaulicht, wie COMPUTE durch ROLLUP ersetzt werden kann:

USE AdventureWorks2022;
GO

SELECT SalesOrderID,
    UnitPrice,
    UnitPriceDiscount
FROM Sales.SalesOrderDetail
ORDER BY SalesOrderID COMPUTE SUM(UnitPrice),
    SUM(UnitPriceDiscount) BY SalesOrderID;
GO

SELECT SalesOrderID,
    UnitPrice,
    UnitPriceDiscount,
    SUM(UnitPrice) AS UnitPrice,
    SUM(UnitPriceDiscount) AS UnitPriceDiscount
FROM Sales.SalesOrderDetail
GROUP BY SalesOrderID,
    UnitPrice,
    UnitPriceDiscount
WITH ROLLUP;

Weitere Informationen: Nicht mehr unterstützte Datenbank-Engine-Funktionalität in SQL Server

Kryptografieanbieter

Titel: Es wurde eine Verwendung von CREATE CRYPTOGRAPHIC PROVIDER oder ALTER CRYPTOGRAPHIC PROVIDER gefunden. Dies wird in Azure SQL Managed Instance nicht unterstützt.
Kategorie: Problem

Beschreibung
Für Azure SQL Managed Instance werden CRYPTOGRAPHIC PROVIDER-Anweisungen nicht unterstützt, weil der Zugriff auf Dateien nicht möglich ist. Der Abschnitt „Betroffene Objekte“ enthält Informationen zu den spezifischen Verwendungsmöglichkeiten für CRYPTOGRAPHIC PROVIDER-Anweisungen. Objekte mit „CREATE CRYPTOGRAPHIC PROVIDER“ oder „ALTER CRYPTOGRAPHIC PROVIDER“ funktionieren nach der Migration zu Azure SQL Managed Instance nicht mehr richtig.

Empfehlung
Überprüfen Sie Objekte mit „CREATE CRYPTOGRAPHIC PROVIDER“ oder „ALTER CRYPTOGRAPHIC PROVIDER“. Entfernen Sie in allen erforderlichen Objekten die Verwendungsmöglichkeiten dieser Funktionen. Alternativ können Sie zu SQL Server auf einer Azure-VM migrieren.

Weitere Informationen: Unterschiede bei Kryptografieanbietern in Azure SQL Managed Instance

Datenbankkompatibilität

Titel: Datenbank-Kompatibilitätsgrad von unter 100 wird nicht unterstützt.
Kategorie: Warnung

Beschreibung
Der Datenbank-Kompatibilitätsgrad ist ein wichtiges Tool zur Unterstützung der Datenbankmodernisierung. Hiermit können Upgrades für die SQL Server-Datenbank-Engine durchgeführt werden, während der funktionale Status von Anwendungen, die Verbindungen herstellen, erhalten bleibt, indem der vor einem Upgrade wirksame Kompatibilitätsgrad beibehalten wird. Für Azure SQL Managed Instance werden Kompatibilitätsgrade von unter 100 nicht unterstützt. Wenn die Datenbank mit einem Kompatibilitätsgrad von unter 100 in Azure SQL Managed Instance wiederhergestellt wird, wird der Kompatibilitätsgrad auf 100 aktualisiert.

Empfehlung
Ermitteln Sie, ob die Anwendungsfunktionalität intakt ist, wenn der Datenbank-Kompatibilitätsgrad in Azure SQL Managed Instance auf 100 aktualisiert wird. Alternativ können Sie zu SQL Server auf einer Azure-VM migrieren.

Weitere Informationen: Unterstützte Kompatibilitätsgrade in Azure SQL Managed Instance

Datenbankprinzipal-Alias

Titel: SYS.DATABASE_PRINCIPAL_ALIASES wird nicht mehr unterstützt und wurde entfernt.
Kategorie: Problem

Beschreibung
sys.database_principal_aliases wird nicht mehr unterstützt und wurde in Azure SQL Managed Instance entfernt.

Empfehlung
Verwenden Sie anstelle von Aliasen Rollen.

Weitere Informationen: Nicht mehr unterstützte Datenbank-Engine-Funktionalität in SQL Server

Option „DISABLE_DEF_CNST_CHK“

Titel: Die SET-Option „DISABLE_DEF_CNST_CHK“ wird nicht mehr unterstützt und wurde entfernt.
Kategorie: Problem

Beschreibung
Die SET-Option „DISABLE_DEF_CNST_CHK“ wird nicht mehr unterstützt und wurde in Azure SQL Managed Instance entfernt.

Weitere Informationen: Nicht mehr unterstützte Datenbank-Engine-Funktionalität in SQL Server

FASTFIRSTROW-Hinweis

Titel: Der FASTFIRSTROW-Abfragehinweis wird nicht mehr unterstützt und wurde entfernt.
Kategorie: Warnung

Beschreibung
Der FASTFIRSTROW-Abfragehinweis wird nicht mehr unterstützt und wurde in Azure SQL Managed Instance entfernt.

Empfehlung
Verwenden Sie OPTION (FAST n) anstelle des FASTFIRSTROW-Abfragehinweises.

Weitere Informationen: Nicht mehr unterstützte Datenbank-Engine-Funktionalität in SQL Server

FILESTREAM

Titel: Filestream und Dateitabelle werden in Azure SQL Managed Instance nicht unterstützt.
Kategorie: Problem

Beschreibung
Das Feature „FILESTREAM“, mit dem Sie unstrukturierte Daten (z. B. Textdokumente, Bilder und Videos) im NTFS-Dateisystem speichern können, wird in Azure SQL Managed Instance nicht unterstützt. Diese Datenbank kann nicht migriert werden, weil eine Sicherung, die FILESTREAM-Dateigruppen enthält, in Azure SQL Managed Instance nicht wiederhergestellt werden kann.

Empfehlung
Laden Sie die unstrukturierten Dateien in Azure-Blobspeicher hoch, und speichern Sie die Metadaten zu diesen Dateien (Name, Typ, URL-Speicherort, Speicherschlüssel usw.) in Azure SQL Managed Instance. Sie müssen für Ihre Anwendung ggf. einen Reengineering-Vorgang durchführen, um das Streamen von Blobs für Azure SQL Managed Instance zu ermöglichen. Alternativ können Sie zu SQL Server auf einer Azure-VM migrieren.

Weitere Informationen: Streamen von Blobs für SQL Azure: Blog

Heterogener MS DTC

Titel: BEGIN DISTRIBUTED TRANSACTION mit einem anderen Remoteserver als einem SQL Server-Remoteserver wird in Azure SQL Managed Instance nicht unterstützt.
Kategorie: Problem

Beschreibung
Eine verteilte Transaktion, die mit „Transact SQL BEGIN DISTRIBUTED TRANSACTION“ gestartet und mit Microsoft Distributed Transaction Coordinator (MS DTC) verwaltet wird, wird in Azure SQL Managed Instance nicht unterstützt, wenn kein SQL Server-Remoteserver genutzt wird.

Empfehlung
Navigieren Sie in Azure Migrate zum Abschnitt „Betroffene Objekte“, um alle Objekte anzuzeigen, für die BEGIN DISTRIBUTED TRANSACTION verwendet wird. Erwägen Sie, die Teilnehmerdatenbanken zu Azure SQL Managed Instance zu migrieren, damit verteilte Transaktionen instanzübergreifend unterstützt werden. Weitere Informationen finden Sie unter Transaktionen über mehrere Server für Azure SQL Managed Instance.

Alternativ können Sie zu SQL Server auf einer Azure-VM migrieren.

Homogener MS DTC

Titel: BEGIN DISTRIBUTED TRANSACTION wird für Azure SQL Managed Instance für mehrere Server unterstützt.
Kategorie: Problem

Beschreibung
Eine verteilte Transaktion, die mit „Transact SQL BEGIN DISTRIBUTED TRANSACTION“ gestartet und mit Microsoft Distributed Transaction Coordinator (MS DTC) verwaltet wird, wird für Azure SQL Managed Instance auf mehreren Servern unterstützt.

Empfehlung
Navigieren Sie in Azure Migrate zum Abschnitt „Betroffene Objekte“, um alle Objekte anzuzeigen, für die BEGIN DISTRIBUTED TRANSACTION verwendet wird. Erwägen Sie, die Teilnehmerdatenbanken zu Azure SQL Managed Instance zu migrieren, damit verteilte Transaktionen instanzübergreifend unterstützt werden. Weitere Informationen finden Sie unter Transaktionen über mehrere Server für Azure SQL Managed Instance.

Alternativ können Sie zu SQL Server auf einer Azure-VM migrieren.

Verbindungsserver (kein SQL-Anbieter)

Titel: Verbindungsserver (kein SQL Server-Anbieter) wird in Azure SQL Managed Instance nicht unterstützt.
Kategorie: Problem

Beschreibung
Mit Verbindungsservern kann die SQL Server-Datenbank-Engine Befehle für OLE DB-Datenquellen ausführen, die sich außerhalb der Instanz von SQL Server befinden. Ein Verbindungsserver (kein SQL Server-Anbieter) wird in Azure SQL Managed Instance nicht unterstützt.

Empfehlung
Für Azure SQL Managed Instance wird die Funktionalität für Verbindungsserver nicht unterstützt, wenn der Remoteserveranbieter kein SQL Server-Anbieter ist, z. B. Oracle, Sybase usw.

Die folgenden Aktionen werden empfohlen, um zu vermeiden, dass Verbindungsserver verwendet werden müssen:

  • Identifizieren Sie die abhängigen Datenbanken für die Remoteserver, bei denen es sich nicht um SQL-Server handelt, und verschieben Sie diese in die zu migrierende Datenbank.
  • Migrieren Sie die abhängigen Datenbanken zu unterstützten Zielen, z. B. SQL Managed Instance, SQL-Datenbank, Azure Synapse SQL und SQL Server-Instanzen.
  • Erwägen Sie, einen Verbindungsserver zwischen Azure SQL Managed Instance und SQL Server auf virtuellen Azure-Computern (SQL-VM) zu erstellen. Erstellen Sie anschließend auf der SQL-VM einen Verbindungsserver für Oracle, Sybase usw. Für diesen Ansatz sind zwei Hops erforderlich, aber er kann als vorübergehende Problemumgehung genutzt werden.
  • Alternativ können Sie zu SQL Server auf einer Azure-VM migrieren.

Weitere Informationen: Unterschiede bei T-SQL zwischen SQL Server und Azure SQL Managed Instance: Verbindungsserver

Auftrag „Zusammenführen“

Titel: Auftragsschritt „Zusammenführen“ wird in Azure SQL Managed Instance nicht unterstützt.
Kategorie: Warnung

Beschreibung
Hierbei handelt es sich um einen Auftragsschritt, mit dem der Replikationsmerge-Agent aktiviert wird. Der Replikationsmerge-Agent ist ein Hilfsprogramm in Form einer ausführbaren Datei, die die in den Datenbanktabellen enthaltene Anfangsmomentaufnahme auf die Abonnenten anwendet. Er führt außerdem inkrementelle Datenänderungen zusammen, die nach der Erstellung der Anfangsmomentaufnahme auf dem Verleger ausgeführt wurden, und löst Konflikte entweder entsprechend den von Ihnen konfigurierten Regeln oder mithilfe eines von Ihnen erstellten benutzerdefinierten Konfliktlösers. Der Auftragsschritt „Zusammenführen“ (Merge) wird in Azure SQL Managed Instance nicht unterstützt.

Empfehlung
Sehen Sie sich in Azure Migrate den Abschnitt mit den betroffenen Objekten an. Es werden alle Aufträge angezeigt, für die der Auftragsschritt „Zusammenführen“ verwendet wird, und Sie können ermitteln, ob der Auftragsschritt oder das betroffene Objekt entfernt werden kann. Alternativ können Sie zu SQL Server auf einer Azure-VM migrieren.

Weitere Informationen: Unterschiede im SQL Server-Agent in Azure SQL Managed Instance

Größe der SQL Managed Instance-Datenbank

Titel: Für Azure SQL Managed Instance wird eine Datenbankgröße von über 16 TB nicht unterstützt.
Kategorie: Problem

Beschreibung
Die Datenbankgröße übersteigt die maximale Größe des reservierten Instanzspeichers. Diese Datenbank kann nicht für die Migration ausgewählt werden, da der zulässige Grenzwert für die Größe überschritten wird.

Empfehlung
Ermitteln Sie, ob die Daten archiviert, komprimiert oder per Sharding in mehreren Datenbanken angeordnet werden können. Alternativ können Sie zu SQL Server auf einer Azure-VM migrieren.

Weitere Informationen: Hardwarmerkmale von Azure SQL Managed Instance

SQL Managed Instance – Instanzgröße

Titel: Maximale Instanzspeichergröße in Azure SQL Managed Instance darf nicht größer als 8 TB sein.
Kategorie: Warnung

Beschreibung
Die Größe aller Datenbanken übersteigt die maximale Größe des reservierten Instanzspeichers.

Empfehlung
Erwägen Sie, die Datenbanken zu anderen Azure SQL Managed Instances oder zu SQL Server auf virtuelle Azure-Computer zu migrieren, falls alle Datenbanken auf derselben Instanz vorhanden sein müssen.

Weitere Informationen: Hardwarmerkmale von Azure SQL Managed Instance

Mehrere Protokolldateien

Titel: Für Azure SQL Managed Instance werden nicht mehrere Protokolldateien unterstützt.
Kategorie: Problem

Beschreibung
Unter SQL Server ist es möglich, dass für eine Datenbank Protokolldaten in mehrere Dateien geschrieben werden. Diese Datenbank verfügt über mehrere Protokolldateien. Dies wird in Azure SQL Managed Instance nicht unterstützt. Diese Datenbank kann nicht migriert werden, da die Sicherung unter Azure SQL Managed Instance nicht wiederhergestellt werden kann.

Empfehlung
Für Azure SQL Managed Instance wird nur ein Protokoll pro Datenbank unterstützt. Sie müssen alle Protokolldateien bis auf eine löschen, bevor Sie diese Datenbank zu Azure migrieren:

ALTER DATABASE [database_name] REMOVE FILE [log_file_name]

Weitere Informationen: Nicht unterstützte Datenbankoptionen in Azure SQL Managed Instance

Nächste Spalte

Titel: Tabellen und Spalten mit dem Namen NEXT führen in Azure SQL Managed Instance zu einem Fehler.
Kategorie: Problem

Beschreibung
Es wurden Tabellen oder Spalten mit dem Namen NEXT erkannt. In Microsoft SQL Server eingeführte Sequenzen verwenden die ANSI-Standardfunktion NEXT VALUE FOR. Tabellen oder Spalten mit dem Namen NEXT und Spalten mit dem Alias VALUE ohne ANSI-Standardschlüsselwort AS können einen Fehler verursachen.

Empfehlung
Schreiben Sie Anweisungen so um, dass sie das ANSI-Standardschlüsselwort AS enthalten, wenn für eine Tabelle oder Spalte ein Alias verwendet wird. Wenn eine Spalte beispielsweise den Namen NEXT hat und über den Alias VALUE verfügt, führt die Abfrage SELECT NEXT VALUE FROM TABLE zu einem Fehler und sollte wie folgt umgeschrieben werden: SELECT NEXT AS VALUE FROM TABLE. Entsprechend gilt auch Folgendes: Wenn eine Tabelle den Namen NEXT hat und über den Alias VALUE verfügt, führt die Abfrage SELECT Col1 FROM NEXT VALUE zu einem Fehler und sollte wie folgt umgeschrieben werden: SELECT Col1 FROM NEXT AS VALUE.

Linke äußere Verknüpfung (kein ANSI-Format)

Titel: Linke äußere Verknüpfung (kein ANSI-Format) wird nicht mehr unterstützt und wurde entfernt.
Kategorie: Warnung

Beschreibung
Linke äußere Verknüpfung (kein ANSI-Format) wird nicht mehr unterstützt und wurde in Azure SQL Managed Instance entfernt.

Empfehlung
Verwenden Sie die ANSI-Joinsyntax.

Weitere Informationen: Nicht mehr unterstützte Datenbank-Engine-Funktionalität in SQL Server

Rechte äußere Verknüpfung (kein ANSI-Format)

Titel: Rechte äußere Verknüpfung (kein ANSI-Format) wird nicht mehr unterstützt und wurde entfernt.
Kategorie: Warnung

Beschreibung
Rechte äußere Verknüpfung (kein ANSI-Format) wird nicht mehr unterstützt und wurde in Azure SQL Managed Instance entfernt.

Weitere Informationen: Nicht mehr unterstützte Datenbank-Engine-Funktionalität in SQL Server

Empfehlung
Verwenden Sie die ANSI-Joinsyntax.

Datenbankanzahl überschreitet 100

Titel: Für Azure SQL Managed Instance werden maximal 100 Datenbanken pro Instanz unterstützt.
Kategorie: Warnung

Beschreibung
Die maximale Anzahl von Datenbanken, die in Azure SQL Managed Instance unterstützt wird, ist 100, sofern nicht die Instanzspeichergröße erreicht wurde.

Empfehlung
Erwägen Sie, die Datenbanken zu anderen Azure SQL Managed Instances oder zu SQL Server auf virtuelle Azure-Computer zu migrieren, falls alle Datenbanken auf derselben Instanz vorhanden sein müssen.

Weitere Informationen: Ressourcenlimits für Azure SQL Managed Instance

OPENROWSET (Datenquelle (kein Blob))

Titel: OPENROWSET bei einem Massenvorgang mit einer Datenquelle, die kein Azure-Blobspeicher ist, wird in Azure SQL Managed Instance nicht unterstützt.
Kategorie: Problem

Beschreibung
Für OPENROWSET werden Massenvorgänge über einen integrierten BULK-Anbieter unterstützt, mit dem Daten aus einer Datei gelesen und als Rowset zurückgegeben werden können. OPENROWSET bei einer Datenquelle, die kein Azure-Blobspeicher ist, wird in Azure SQL Managed Instance nicht unterstützt.

Empfehlung
Eine Azure SQL Managed Instance kann nicht auf Dateifreigaben und Windows-Ordner zugreifen. Daher müssen die Dateien aus Azure Blob Storage importiert werden. Aus diesem Grund wird für die OPENROWSET-Funktion nur der Blobtyp DATASOURCE unterstützt. Alternativ können Sie zu SQL Server auf einer Azure-VM migrieren.

Weitere Informationen: Masseneinfügen und OPENROWSET-Unterschiede in Azure SQL Managed Instance

OPENROWSET (kein SQL-Anbieter)

Titel: OpenRowSet mit einem anderen Anbieter als SQL wird in Azure SQL Managed Instance nicht unterstützt.
Kategorie: Problem

Beschreibung
Diese Methode ist eine Alternative zum Zugriff auf Tabellen eines Verbindungsservers. Sie ist eine einmalig verwendete Ad-hoc-Methode zum Verbinden und Zugreifen auf Remotedaten mithilfe von OLE DB. OpenRowSet mit einem anderen Anbieter als SQL wird in Azure SQL Managed Instance nicht unterstützt.

Empfehlung
Die Funktion OPENROWSET kann nur auf SQL Server-Instanzen (entweder verwaltet, lokal oder auf virtuellen Computern) für die Ausführung von Abfragen verwendet werden. Die Anbieter SQLNCLI, SQLNCLI11, SQLOLEDB und MSOLEDBSQL (empfohlen) werden unterstützt. Für die Neuentwicklung wird der Microsoft OLE DB-Treiber für SQL Server empfohlen.

Die empfohlene Aktion besteht darin, die abhängigen Datenbanken für die Remoteserver zu identifizieren, bei denen es sich nicht um SQL-Server handelt, und diese in die zu migrierende Instanz zu verschieben.

Weitere Informationen: Masseneinfügen und OPENROWSET-Unterschiede in Azure SQL Managed Instance

PowerShell-Auftrag

Titel: PowerShell-Auftragsschritt wird in Azure SQL Managed Instance nicht unterstützt.
Kategorie: Warnung

Beschreibung
Hierbei handelt es sich um einen Auftragsschritt, bei dem ein PowerShell-Skript ausgeführt wird. Der PowerShell-Auftragsschritt wird in Azure SQL Managed Instance nicht unterstützt.

Empfehlung
Sehen Sie sich in Azure Migrate den Abschnitt mit den betroffenen Objekten an. Es werden alle Aufträge angezeigt, für die der PowerShell-Auftragsschritt verwendet wird, und Sie können ermitteln, ob der Auftragsschritt oder das betroffene Objekt entfernt werden kann. Ermitteln Sie, ob Azure Automation verwendet werden kann. Alternativ können Sie zu SQL Server auf einer Azure-VM migrieren.

Weitere Informationen: Unterschiede im SQL Server-Agent in Azure SQL Managed Instance

Warteschlangenleser-Auftrag

Titel: Warteschlangenleser-Auftragsschritt wird in Azure SQL Managed Instance nicht unterstützt.
Kategorie: Warnung

Beschreibung
Hierbei handelt es sich um einen Auftragsschritt, bei dem der Warteschlangenlese-Agent für die Replikation aktiviert wird. Der Warteschlangenlese-Agent für die Replikation ist eine ausführbare Datei, die in einer Microsoft SQL Server-Warteschlange oder einer Microsoft Message Queue gespeicherte Nachrichten liest und diese dann auf den Herausgeber anwendet. Der Warteschlangenlese-Agent wird bei Momentaufnahme- und Transaktionsveröffentlichungen verwendet, die das verzögerte Update über eine Warteschlange gestatten. Der Warteschlangenleser-Auftragsschritt wird in Azure SQL Managed Instance nicht unterstützt.

Empfehlung
Sehen Sie sich in Azure Migrate den Abschnitt mit den betroffenen Objekten an. Es werden alle Aufträge angezeigt, für die der Warteschlangenleser-Auftragsschritt verwendet wird, und Sie können ermitteln, ob der Auftragsschritt oder das betroffene Objekt entfernt werden kann. Alternativ können Sie zu SQL Server auf einer Azure-VM migrieren.

Weitere Informationen: Unterschiede im SQL Server-Agent in Azure SQL Managed Instance

RAISERROR

Titel: RAISERROR-Aufrufe im Legacystil sollten durch moderne Äquivalente ersetzt werden.
Kategorie: Warnung

Beschreibung
RAISERROR-Aufrufe wie im folgenden Beispiel werden als Aufrufe im Legacystil bezeichnet, da sie keine Kommas und Klammern enthalten. RAISERROR 50001 'this is a test'. Diese Methode zum Aufrufen von RAISERROR wird nicht mehr unterstützt und wurde in Azure SQL Managed Instance entfernt.

Empfehlung
Schreiben Sie die Anweisung um, indem Sie die aktuelle RAISERROR-Syntax verwenden, oder ermitteln Sie, ob der moderne Ansatz mit BEGIN TRY { } END TRY BEGIN CATCH { THROW; } END CATCH möglich ist.

Weitere Informationen: Nicht mehr unterstützte Datenbank-Engine-Funktionalität in SQL Server

SQL Mail

Titel: SQL Mail wird nicht mehr unterstützt.
Kategorie: Warnung

Beschreibung
SQL Mail wird nicht mehr unterstützt und wurde in Azure SQL Managed Instance entfernt.

Empfehlung
Verwenden Sie Datenbank-E-Mail.

Weitere Informationen: Nicht mehr unterstützte Datenbank-Engine-Funktionalität in SQL Server

SystemProcedures110

Titel: Es wurden Anweisungen erkannt, in denen auf entfernte gespeicherte Systemprozeduren verwiesen wird, die in Azure SQL Managed Instance nicht verfügbar sind.
Kategorie: Warnung

Beschreibung
Die folgenden nicht unterstützten gespeicherten Systemprozeduren und erweiterten gespeicherten Prozeduren können in Azure SQL Managed Instance nicht verwendet werden: sp_dboption, sp_addserver, sp_dropalias, sp_activedirectory_obj, sp_activedirectory_scp und sp_activedirectory_start.

Empfehlung
Entfernen Sie Verweise auf nicht unterstützte Systemprozeduren, die in Azure SQL Managed Instance entfernt wurden.

Weitere Informationen: Nicht mehr unterstützte Datenbank-Engine-Funktionalität in SQL Server

Transact-SQL-Auftrag

Titel: T-SQL-Auftragsschritt enthält nicht unterstützte Befehle in Azure SQL Managed Instance.
Kategorie: Warnung

Beschreibung
Bei diesem Auftragsschritt werden Transact-SQL-Skripts zu geplanten Zeiten ausgeführt. Der T-SQL-Auftragsschritt enthält nicht unterstützte Befehle, die in Azure SQL Managed Instance nicht unterstützt werden.

Empfehlung
Sehen Sie sich in Azure Migrate den Abschnitt mit den betroffenen Objekten an. Darin sind alle Aufträge mit Befehlen aufgeführt, die in Azure SQL Managed Instance nicht unterstützt werden. Ermitteln Sie, ob der Auftragsschritt oder das betroffene Objekt entfernt werden kann. Alternativ können Sie zu SQL Server auf einer Azure-VM migrieren.

Weitere Informationen: Unterschiede im SQL Server-Agent in Azure SQL Managed Instance

Ablaufverfolgungsflags

Titel: Ablaufverfolgungsflags gefunden, die in Azure SQL Managed Instance nicht unterstützt werden.
Kategorie: Warnung

Beschreibung
Für Azure SQL Managed Instance wird nur eine begrenzte Zahl von globalen Ablaufverfolgungsflags unterstützt. Ablaufverfolgungsflags für Sitzungen werden nicht unterstützt.

Empfehlung
Sehen Sie sich in Azure Migrate den Abschnitt mit den betroffenen Objekten an. Darin sind alle Ablaufverfolgungsflags aufgeführt, die in Azure SQL Managed Instance nicht unterstützt werden, und Sie können ermitteln, ob sie entfernt werden können. Alternativ können Sie zu SQL Server auf einer Azure-VM migrieren.

Weitere Informationen: Ablaufverfolgungsflags

Windows-Authentifizierung

Titel: Datenbankbenutzer mit Zuordnung der Windows-Authentifizierung (integrierte Sicherheit) werden in Azure SQL Managed Instance nicht unterstützt.
Kategorie: Warnung

Beschreibung
Azure SQL Managed Instance unterstützt zwei Arten der Authentifizierung:

  • SQL-Authentifizierung, bei der ein Benutzername und ein Kennwort verwendet werden
  • Die Microsoft Entra-Authentifizierung, die Identitäten verwendet, die von der Microsoft Entra ID verwaltet und für verwaltete und integrierte Domänen unterstützt werden.

Datenbankbenutzer mit Zuordnung der Windows-Authentifizierung (integrierte Sicherheit) werden in Azure SQL Managed Instance nicht unterstützt.

Empfehlung
Verbinden Sie das lokale Active Directory mit der Microsoft Entra ID. Die Windows-Identität kann dann durch die entsprechenden Microsoft Entra-Identitäten ersetzt werden. Alternativ können Sie zu SQL Server auf einer Azure-VM migrieren.

Weitere Informationen: Sicherheitsfunktionen für SQL Managed Instance

xp_cmdshell

Titel: „xp_cmdshell“ wird in Azure SQL Managed Instance nicht unterstützt.
Kategorie: Problem

Beschreibung
xp_cmdshell für die Erstellung einer Windows-Befehlsshell und die Übergabe einer Zeichenfolge für die Ausführung wird in Azure SQL Managed Instance nicht unterstützt.

Empfehlung
Sehen Sie sich in Azure Migrate den Abschnitt mit den betroffenen Objekten an. Darin sind alle Objekte aufgeführt, für die xp_cmdshell verwendet wird, und Sie können ermitteln, ob der Verweis auf xp_cmdshell oder das betroffene Objekt entfernt werden kann. Erwägen Sie, sich mit Azure Automation vertraut zu machen, um einen cloudbasierten Dienst für die Automatisierung und Konfiguration nutzen zu können. Alternativ können Sie zu SQL Server auf einer Azure-VM migrieren.

Weitere Informationen: Gespeicherte Prozeduren: Unterschiede in Azure SQL Managed Instance