Verwalten von Stretch Database und Behandeln von Problemen

Gilt für: SQL Server 2016 (13.x) und höher – nur Windows

Wichtig

Stretch Database ist in SQL Server 2022 (16.x) und der Azure SQL-Datenbank veraltet. Diese Funktion wird in einer zukünftigen Version der Datenbank-Engine entfernt. Nutzen Sie diese Funktionen bei Neuentwicklungen nicht mehr, und planen Sie die Änderung von Anwendungen, die diese Funktion zurzeit verwenden.

Verwenden Sie die in diesem Artikel beschriebenen Tools und Methoden, um Stretch Database zu verwalten und Probleme zu behandeln.

Verwalten von lokalen Daten

Abrufen von Informationen zu lokalen Datenbanken und Tabellen, die für Stretch Database aktiviert sind

Öffnen Sie die Katalogansichten sys.databases und sys.tables, um Informationen über SQL Server-Datenbanken und Tabellen zu finden, die für Stretch aktiviert sind. Weitere Informationen finden Sie unter sys.databases (Transact-SQL) und sys.tables (Transact-SQL).

Führen Sie die folgende Anweisung aus, um zu ermitteln, wie viel Speicherplatz eine Stretch-aktivierte Tabelle in SQL Server verwendet.

USE <Stretch-enabled database name>;
GO
EXEC sp_spaceused '<Stretch-enabled table name>', 'true', 'LOCAL_ONLY';
GO

Verwalten der Datenmigration

Überprüfen der auf eine Tabelle angewendeten Filterfunktion

Öffnen Sie die Katalogsicht sys.remote_data_archive_tables , und überprüfen Sie den Wert der filter_predicate -Spalte, um die Funktion zu identifizieren, die von Stretch Database verwendet wird, um die zu migrierenden Zeilen auszuwählen. Wenn der Wert null ist, ist die gesamte Tabelle für eine Migration berechtigt. Weitere Informationen finden Sie unter sys.remote_data_archive_tables (Transact-SQL) und Auswählen von Zeilen für die Migration mit einer Filterfunktion.

Überprüfen des Status der Datenmigration

Wählen Sie Aufgaben> Stretch > Überwachung für eine Datenbank in SQL Server Management Studio aus, um die Datenmigration im Stretch Database-Monitor zu überwachen. Weitere Informationen finden Sie unter Überwachen und Behandeln von Problemen der Datenmigration (Stretch Database).

Oder öffnen Sie die dynamische Verwaltungsansicht sys.dm_db_rda_migration_status, um anzuzeigen, wie viele Batches und Datenzeilen migriert wurden.

Problembehandlung der Datenmigration

Empfehlungen zur Problembehandlung finden Sie unter Überwachen und Behandeln von Problemen der Datenmigration (Stretch Database).

Verwalten von Remotedaten

Abrufen von Informationen zu Remotedatenbanken und Tabellen, die von Stretch Database verwendet werden

Öffnen Sie die Katalogsichten sys.remote_data_archive_databases und sys.remote_data_archive_tables, um Informationen über die Remotedatenbanken und Tabellen anzuzeigen, in denen migrierte Daten gespeichert sind. Weitere Informationen finden Sie untersys.remote_data_archive_databases (Transact-SQL) und sys.remote_data_archive_tables (Transact-SQL).

Führen Sie die folgende Anweisung aus, um zu ermitteln, wie viel Speicherplatz eine Stretch-aktivierte Tabelle in Azure verwendet.

USE <Stretch-enabled database name>;
GO
EXEC sp_spaceused '<Stretch-enabled table name>', 'true', 'REMOTE_ONLY';
GO

Löschen von migrierten Daten

Wenn Sie bereits zu Azure migrierte Daten löschen möchten, befolgen Sie die in sys.sp_rda_reconcile_batchbeschriebenen Schritte.

Verwalten von Tabellenschemas

Verändern Sie das Schema der Remotetabelle nicht

Ändern Sie nicht das Schema einer Azure-Remotetabelle, die mit einer SQL Server-Tabelle verknüpft ist, die für Stretch Database konfiguriert wurde. Ändern Sie insbesondere nicht den Namen oder den Datentyp einer Spalte. Für die Stretch Database-Funktion gelten verschiedene Annahmen hinsichtlich des Schemas einer Remotetabelle in Bezug auf das Schema der SQL Server-Tabelle. Wenn Sie das Remoteschema ändern, funktioniert Stretch Database nicht mehr für die geänderte Tabelle.

Abstimmen von Tabellenspalten

Wenn Sie Spalten aus der Remotetabelle versehentlich gelöscht haben, führen Sie sp_rda_reconcile_columns aus, um Spalten zur Remotetabelle hinzuzufügen, die in der Stretch-aktivierten SQL Server-Tabelle, aber nicht in der Remotetabelle vorhanden sind. Weitere Informationen finden Sie unter sys.sp_rda_reconcile_columns.

Wichtig

Wenn sp_rda_reconcile_columns Spalten neu erstellt, die Sie versehentlich aus der Remotetabelle gelöscht haben, dann werden nicht die zuvor in den gelöschten Spalten enthaltenen Daten wiederhergestellt.

sp_rda_reconcile_columns löscht keine Spalten aus der Remotetabelle, die in der Remotetabelle, aber nicht in der Stretch-aktivierten SQL Server-Tabelle vorhanden sind. Wenn die Azure-Remotetabelle Spalten enthält, die in der Stretch-fähigen SQL Server-Tabelle nicht mehr vorhanden sind, verhindern diese zusätzlichen Spalten nicht die normale Funktionsweise von Stretch Database. Sie können die zusätzlichen Spalten optional manuell entfernen.

Verwalten von Leistung und Kosten

Problembehandlung der Abfrageleistung

Bei Abfragen, die Stretch-aktivierte Tabellen enthalten, wird erwartet, dass sie langsamer ausgeführt werden, als zum Zeitpunkt bevor die Tabellen für Stretch aktiviert wurden. Falls die Abfrageleistung erheblich beeinträchtigt wird, überprüfen Sie die folgenden möglichen Probleme.

  • Befindet sich Ihr Azure-Server in einer anderen geografischen Region als Ihr SQL Server? Konfigurieren Sie Ihren Azure-Server dahingehend, dass er sich in der gleichen geografischen Region wie Ihr SQL Server befindet, um die Netzwerklatenz zu reduzieren.

  • Möglicherweise haben sich Ihre Netzwerkbedingungen verschlechtert. Wenden Sie sich an Ihren Netzwerkadministrator, um Informationen über aktuelle Probleme oder Ausfälle zu erhalten.

Erhöhen der Azure-Leistungsstufe für ressourcenintensive Vorgänge wie z.B. Indizierung

Wenn Sie einen Index für eine große Tabelle, die für Stretch Database konfiguriert ist, erstellen, neu erstellen oder neu organisieren, und während des Vorgangs umfangreiche Abfragen der migrierten Daten in Azure erwarten, sollten Sie die Steigerung der Leistung der entsprechenden Azure-Remotedatenbank während des Vorgangs in Betracht ziehen. Weitere Informationen zu Leistungsstufen und Preisen finden Sie unter SQL Server Stretch Database – Preise.

Sie können den SQL Server Stretch Database-Dienst in Azure nicht anhalten.

Stellen Sie sicher, dass Sie die entsprechenden Leistungs- und Preisstufen auswählen. Wenn Sie die Leistungsstufe für einen ressourcenintensiver Vorgang vorübergehend erhöhen, stellen Sie die vorherige Stufe nach Abschluss des Vorgangs wieder her. Weitere Informationen zu Leistungsstufen und Preisen finden Sie unter SQL Server Stretch Database – Preise.

Ändern des Bereichs von Abfragen

Abfragen für Stretch-aktivierte Tabellen geben standardmäßig sowohl lokale als auch Remotedaten zurück. Sie können den Bereich von Abfragen für alle Abfragen von allen Benutzern oder nur für eine einzelne Abfrage von einem Administrator ändern.

Ändern des Bereichs von Abfragen für alle Abfragen von allen Benutzern

Um den Bereich aller Abfragen von allen Benutzern zu ändern, führen Sie die gespeicherte Prozedur sys.sp_rda_set_query_modeaus. Sie können den Bereich eingrenzen, sodass nur lokale Daten abgefragt werden, und Sie können alle Abfragen deaktivieren oder die Standardeinstellung wiederherstellen. Weitere Informationen finden Sie unter sys.sp_rda_set_query_mode.

Ändern des Bereichs von Abfragen für eine einzelne Abfrage von einem Administrator

Zum Ändern des Bereichs einer einzelnen Abfrage von einem Mitglied der Rolle „db_owner“ fügen Sie den Abfragehinweis WITH ( REMOTE_DATA_ARCHIVE_OVERRIDE = *value* ) zu der SELECT-Anweisung hinzu. Der REMOTE_DATA_ARCHIVE_OVERRIDE-Abfragehinweis kann die folgenden Werte enthalten.

  • LOCAL_ONLY. Es werden nur lokale Daten abgefragt.

  • REMOTE_ONLY. Es werden nur Remotedaten abgefragt.

  • STAGE_ONLY. Es werden nur die Daten in der Tabelle abgefragt, in der Stretch Database für die Migration berechtigte Zeilen bereitstellt und migrierte Zeilen für den angegebenen Zeitraum nach der Migration beibehält. Dieser Abfragehinweis ist die einzige Möglichkeit zum Abfragen der Stagingtabelle.

Die folgende Abfrage gibt z. B. nur lokale Ergebnisse zurück.

USE [<Stretch-enabled database name>];
GO
SELECT *
FROM [<Stretch_enabled table name>]
WITH (REMOTE_DATA_ARCHIVE_OVERRIDE = LOCAL_ONLY)
WHERE someCol = 1 /* sample predicate only, please replace with an appropriate one */;
GO

Durchführen administrativer Aktualisierungs- und Löschvorgänge

Die Befehle UPDATE oder DELETE können standardmäßig nicht für zur Migration berechtigte Zeilen oder für bereits migrierte Zeilen in einer Stretch-fähigen Tabelle ausgeführt werden. Zum Beheben eines Problems kann ein Mitglied der Rolle „db_owner“ einen UPDATE- oder DELETE-Vorgang durch Hinzufügen des Abfragehinweises WITH ( REMOTE_DATA_ARCHIVE_OVERRIDE = *value* ) zur Anweisung ausführen. Der REMOTE_DATA_ARCHIVE_OVERRIDE-Abfragehinweis kann die folgenden Werte enthalten.

  • LOCAL_ONLY. Aktualisieren oder löschen Sie nur lokale Daten.

  • REMOTE_ONLY. Aktualisieren oder löschen Sie nur Remotedaten.

  • STAGE_ONLY. Es werden nur die Daten in der Tabelle aktualisiert oder gelöscht, in der Stretch Database für die Migration berechtigte Zeilen bereitstellt und migrierte Zeilen für den angegebenen Zeitraum nach der Migration beibehält.

Siehe auch