Verschieben von Daten in SQL Managed Instance
Viele Migrationen umfassen einen Zeitraum, in dem die lokale und die Clouddatenbank synchronisiert bleiben müssen. Beispielsweise kann es vorkommen, dass Clients Änderungen an beiden Datenbanken vornehmen.
Sie haben die Datenbank für Produkte aus dem Sporteinzelhandel in Azure SQL Managed Instance migriert. Die Clouddatenbank wird bereits von der Website verwendet. Sie beginnen mit der Neukonfiguration von Clients für die Verwendung der neuen Datenbank. Sie haben beschlossen, eine schubweise Umstellung der Benutzer*innen auf das neue System durchzuführen. Für jedes Team müssen Sie sich Zeit nehmen, um Probleme zu beheben, bevor Sie die nächsten Benutzer migrieren. Dieser Ansatz ermöglicht das Behandeln und Beheben von Problemen, ohne dabei die Arbeit aller Benutzer*innen gleichzeitig zu unterbrechen. Als Nächstes konfigurieren Sie das Datenanalysesystem neu, um die neue Datenbank in Azure zu verwenden. Sie müssen sicherstellen, dass die Clouddatenbanken und lokalen Datenbanken während dieses Zeitraums stündlich synchronisiert werden.
Sie untersuchen verschiedene Methoden für die Implementierung der Datensynchronisierung. Diese Methoden können zudem für die selektive Datenmigration verwendet werden, wenn Sie lediglich eine Teilmenge der Tabellen übertragen müssen. Diese Flexibilität ermöglicht es Ihnen, die Datenmigration genau anzupassen.
Konnektivitätsoptionen für lokale Server
Häufig möchten Sie Daten in lokalen Datenbanken mit Azure SQL Managed Instance synchronisieren. Möglicherweise möchten Sie die Migration von Clientanwendungen zur neuen Datenbank in einer Stagingumgebung durchführen. Dies bedeutet, dass es einen Zeitraum gibt, in dem Clients eine Verbindung mit beiden Datenbanken herstellen.
Bevor Sie eine Methode für die Datensynchronisierung auswählen, müssen Sie sichere Konnektivität gewährleisten. Es sind drei verschiedene Konnektivitätsoptionen zum Herstellen der Verbindung zwischen lokalen Computern und Ressourcen in Azure verfügbar.
- Point-to-Site. Mit einer P2S-VPN-Gatewayverbindung (Point-to-Site) können Sie von einem einzelnen Clientcomputer aus eine sichere Verbindung mit Ihrem virtuellen Netzwerk herstellen.
- Site-to-Site. Ein Site-to-Site-VPN-Gateway wird verwendet, um einen gesamten lokalen Standort mit dem Azure-Netzwerk zu verbinden.
- ExpressRoute: Mit Azure ExpressRoute können Sie private Verbindungen zwischen Azure-Rechenzentren und einer lokalen Infrastruktur oder einer Infrastruktur in einer Housingumgebung herstellen. ExpressRoute-Verbindungen erfolgen nicht über das öffentliche Internet und bieten eine höhere Sicherheit, größere Zuverlässigkeit und schnellere Geschwindigkeit bei geringerer Latenz als herkömmliche Verbindungen über das Internet.
Öffentlicher Endpunkt
Der öffentliche Endpunkt für SQL Managed Instance unterstützt Sie dabei, eine Internetverbindung ohne VPN mit der Datenbank herzustellen. Dieser Endpunkt ist ausschließlich für die Datenkommunikation konzipiert. Der öffentliche Endpunkt für Daten kann zusätzlich zum privaten Endpunkt vorhanden sein. Aus Sicherheitsgründen ermöglicht die Implementierung die Aufgabentrennung (Separation of Duties, SoD) zwischen einem Datenbankadministrator und einem Netzwerkadministrator, wenn der öffentliche Endpunkt aktiviert wird.
Um den öffentlichen Endpunkt für eine verwaltete SQL-Datenbank-Instanz zu aktivieren, sind zwei Schritte erforderlich. Für die Aufgabentrennung benötigen Sie zwei unterschiedliche Rollen mit den folgenden Datenbank- und Netzwerkberechtigungen, um diese Schritte auszuführen:
- Ein*e Datenbankadministrator*in mit Berechtigungen für die rollenbasierte Zugriffssteuerung im Bereich Microsoft.Sql/managedInstances/* muss ein PowerShell-Skript ausführen, um öffentliche Endpunkte für verwaltete Instanzen zu aktivieren.
- Ein*e Netzwerkadministrator*in mit Berechtigungen für die rollenbasierte Zugriffssteuerung im Bereich Microsoft.Network/* muss den Port 3342 öffnen, der vom öffentlichen Endpunkt in der Netzwerksicherheitsgruppe (NSG) verwendet wird, und eine UDR-Route bereitstellen, um ein asymmetrisches Routing zu vermeiden.
Auswählen einer Synchronisierungsmethode
Sie können viele Methoden verwenden, um Daten aus einer verwalteten SQL-Datenbank-Instanz mit einem lokalen Server in beide Richtungen zu synchronisieren.
Native Sicherung und Wiederherstellung
Sie können eine Datenbank in Azure SQL Managed Instance aus einer Azure Blob Storage-Datei mithilfe von Shared Access Signature (SAS) wiederherstellen.
Dabei werden Anmeldeinformationen mit Zugriff auf Azure Blob Storage erstellt und anschließend der BACKUP DATABASE
-Befehl mit der Option COPY_ONLY
verwendet. Wenn die Größe Ihrer Datenbank bei über 200 GB liegt, können Sie eine übergreifende Sicherung verwenden, indem Sie mehrere URL-Speicherorte bereitstellen.
BACKUP DATABASE YourDatabase TO URL = 'https://youraccount.blob.core.windows.net/yourcontainer/yourdatabase.bak' WITH COPY_ONLY
So stellen Sie die Datenbank in SQL Managed Instance wieder her:
RESTORE DATABASE YourDatabase FROM URL = 'https://youraccount.blob.core.windows.net/yourcontainer/yourdatabase.bak'
BACPAC-Datei mit SqlPackage
Eine BACPAC-Datei ist im Wesentlichen eine komprimierte Version der Metadaten und Daten Ihrer Datenbank. Obwohl diese Bereitstellungsmethode mit der SQL-Datenbank kompatibel ist, unterstützt SQL Managed Instance nicht die Migration über BACPAC im Azure-Portal. Alternativ sollte das SQLPackage-Hilfsprogramm mit der BACPAC-Datei verwendet werden.
Massenkopierprogramm (Bulk Copy Program, BCP)
Das BCP-Hilfsprogramm ist ein Befehlszeilentool, mit dem Tabellen in Dateien exportiert werden, damit Sie diese importieren können. Verwenden Sie diesen Ansatz für die Migration zwischen einer einzelnen SQL-Datenbank und SQL Managed Instance.
Azure Data Factory (ADF)
Azure Data Factory wurde für die Verschiebung und Orchestrierung von Daten entwickelt, wobei der Fokus auf der Erfassung von Daten liegt. ADF verfügt über die Unterstützung für Integration Runtime zum Ausführen von SSIS-Paketen und die öffentliche Internetunterstützung für SQL Managed Instance.
Transaktionsreplikation
Die Transaktionsreplikation ist eine Möglichkeit zum Verschieben von Daten zwischen kontinuierlich verbundenen Datenbankservern.
Der Prozess beginnt mit einer Momentaufnahme des Veröffentlichungsdatenbankobjekts und der Daten. Sobald die Anfangsmomentaufnahme erstellt wurde, werden alle nachfolgenden Änderungen an den Daten oder Schemas beim Herausgeber normalerweise in Quasi-Echtzeit an Azure SQL Managed Instance übermittelt, sobald diese auftreten.
SQL Managed Instance ist dadurch flexibel, dass der Dienst ein Herausgeber, Verteiler und Abonnent sein kann.
Die Replikation ist eine der wenigen Technologien, mit denen Sie Teile einer Tabelle replizieren können. Dabei werden diese Tabellenteile als Artikel bezeichnet. Diese Daten werden dann an einen Verteiler gesendet, der die Daten für eine beliebige Anzahl von Abonnenten bereitstellt.
Anforderungen
- Für die Verbindung zwischen den Teilnehmern der Replikation wird SQL-Authentifizierung verwendet.
- Ein Azure-Speicherkonto für das von der Replikation verwendete Arbeitsverzeichnis.
- Offener Port 445 (TCP ausgehend) in den Sicherheitsregeln des Subnetzes der verwalteten Instanz für den Zugriff auf die Azure-Dateifreigabe
- Offener Port 1433 (TCP ausgehend), wenn sich der Herausgeber oder Verteiler in einer verwalteten Instanz befindet und der Abonnent lokal ist
Verbinden von Anwendungen mit einer verwalteten SQL-Instanz
Eine verwaltete SQL-Instanz muss in einem für verwaltete Instanzen dedizierten Subnetz des virtuellen Azure-Netzwerks platziert werden. Diese Bereitstellung bietet Ihnen eine sichere private IP-Adresse und die Möglichkeit, eine Verbindung mit lokalen Netzwerken herzustellen.
Benutzer und Clientanwendungen können über das Azure-Portal, PowerShell, die Azure CLI und die REST-API eine Verbindung mit der Datenbank der verwalteten SQL-Datenbank-Instanz herstellen.
Jeglicher Datenaustausch ist verschlüsselt und mithilfe von Zertifikaten signiert. Um die Vertrauenswürdigkeit der Kommunikationspartner sicherzustellen, überprüfen verwaltete Instanzen diese Zertifikate regelmäßig anhand von Zertifikatsperrlisten. Wenn die Zertifikate widerrufen werden, schließt die verwaltete SQL-Instanz die Verbindungen, um die Daten zu schützen.