Gestion et dépannage de Stretch Database
S’applique à : SQL Server 2016 (13.x) et versions ultérieures - Windows uniquement
Important
Stretch Database est déprécié dans SQL Server 2022 (16.x) et Azure SQL Database. Cette fonctionnalité sera supprimée dans une version future de moteur de base de données. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité.
Pour gérer Stretch Database et résoudre ses problèmes, utilisez les méthodes et outils décrits dans cet article.
Gérer des données locales
Obtenir des informations sur les bases de données et tables locales compatibles avec Stretch Database
Ouvrez les affichages catalogue sys.databases
et sys.tables
pour afficher des informations sur les tables et bases de données SQL Server compatibles avec Stretch Database. Pour plus d’informations, voir sys.databases (Transact-SQL) et sys.tables (Transact-SQL).
Pour afficher la quantité d’espace qu’utilise une table compatible Stretch dans SQL Server, exécutez l’instruction suivante.
USE <Stretch-enabled database name>;
GO
EXEC sp_spaceused '<Stretch-enabled table name>', 'true', 'LOCAL_ONLY';
GO
Gérer la migration des données
Vérifier la fonction de filtre appliquée à une table
Ouvrez l’affichage catalogue sys.remote_data_archive_tables
et vérifiez la valeur de la colonne filter_predicate
pour identifier la fonction que Stretch Database utilise pour sélectionner les lignes à faire migrer. Si la valeur est null, la table entière est éligible à la migration. Pour plus d’informations, consultez sys.remote_data_archive_tables (Transact-SQL) et Sélection des lignes à migrer à l’aide d’une fonction de filtre.
Vérifier l’état de la migration des données
Sélectionnez Tâches > Stretch > Monitor pour une base de données dans SQL Server Management Studio afin de superviser la migration des données dans Stretch Database Monitor. Pour plus d’informations, voir Surveillance et dépannage de la migration de données (Stretch Database).
Vous pouvez également ouvrir la vue de gestion dynamique sys.dm_db_rda_migration_status
pour voir le nombre de lots et de lignes de données migrés.
Résolution des problèmes liés à la migration des données
Pour obtenir des suggestions de dépannage, voir Surveillance et dépannage de la migration de données (Stretch Database).
Gérer les données distantes
Obtenir des informations sur les bases de données et tables distantes utilisées par Stretch Database
Ouvrez les affichages catalogue sys.remote_data_archive_databases
et sys.remote_data_archive_tables
pour consulter des informations sur les bases de données et tables distantes qui stockent les données migrées. Pour plus d’informations, voir sys.remote_data_archive_databases (Transact-SQL) et sys.remote_data_archive_tables (Transact-SQL).
Pour afficher la quantité d’espace qu’utilise une table compatible Stretch dans Azure, exécutez l’instruction suivante.
USE <Stretch-enabled database name>;
GO
EXEC sp_spaceused '<Stretch-enabled table name>', 'true', 'REMOTE_ONLY';
GO
Supprimer des données qui ont migré
Si vous souhaitez supprimer des données qui ont déjà migré vers Azure, suivez les étapes décrites dans sys.sp_rda_reconcile_batch.
Gérer le schéma de table
Ne modifiez pas le schéma de la table distante
Ne modifiez pas le schéma d’une table Azure distante associée à une table SQL Server configurée pour Stretch Database. Surtout, ne modifiez ni le nom ni le type de données d’une colonne. La fonctionnalité Stretch Database émet plusieurs hypothèses sur le schéma de la table distante par rapport au schéma de la table SQL Server. Si vous modifiez le schéma, Stretch Database cesse de fonctionner pour la table modifiée.
Rapprocher des colonnes de table
Si vous avez accidentellement supprimé des colonnes de la table distante, exécutez sp_rda_reconcile_columns
pour ajouter à la table distante des colonnes qui existent dans la table SQL Server compatible Stretch mais pas dans la table distante. Pour plus d’informations, consultez sys.sp_rda_reconcile_columns.
Important
Quand sp_rda_reconcile_columns
recrée des colonnes que vous avez supprimées par inadvertance de la table distante, les données qui se trouvaient précédemment dans les colonnes supprimées ne sont pas restaurées.
sp_rda_reconcile_columns
ne supprime pas de la table distante les colonnes qui existent dans cette table distante mais pas dans la table SQL Server compatible Stretch. Si des colonnes comprises dans la table Azure distante n’existent plus dans la table SQL Server compatible Stretch, ces colonnes supplémentaires n’empêchent pas Stretch Database de fonctionner normalement. Vous pouvez éventuellement supprimer manuellement les colonnes supplémentaires.
Gérer les coûts et performances
Dépannage de la performance des requêtes
Attendez-vous à ce que les requêtes incluant des tables Stretch s’exécutent plus lentement que celle incluant des tables non compatibles avec Stretch. Si les performances des requêtes se dégradent considérablement, passez en revue les problèmes suivants.
Votre serveur Azure se trouve-t-il dans une autre région géographique que votre serveur SQL Server ? Configurez votre serveur Azure dans la même région géographique que votre serveur SQL Server pour réduire la latence du réseau.
Il se peut que votre réseau connaisse des problèmes de performance. Pour plus d’informations sur les pannes ou problèmes récents, contactez l’administrateur de votre réseau.
Augmenter le niveau de performances d’Azure pour les opérations gourmandes en ressources telles que l’indexation
Quand vous générez, regénérez ou réorganisez un index sur une table volumineuse configurée pour Stretch Database et que vous vous attendez à une interrogation intensive des données migrées dans Azure au même moment, augmentez le niveau de performance de la base de données Azure distante correspondante pendant l’opération. Pour plus d’informations sur les niveaux de performance et la tarification, consultez la page Tarification de SQL Server Stretch Database.
Vous ne pouvez pas suspendre le service SQL Server Stretch Database sur Azure
Assurez-vous de sélectionner le niveau de performance et de tarification approprié. Si vous augmentez le niveau de performance temporairement pour une opération gourmande en ressources, restaurez le niveau précédent à l’issue de l’opération. Pour plus d’informations sur les niveaux de performance et la tarification, consultez la page Tarification de SQL Server Stretch Database.
Modifier l’étendue des requêtes
Les requêtes sur les tables Stretch retournent des données à la fois locales et distantes par défaut. Vous pouvez modifier l’étendue des requêtes pour toutes les requêtes effectuées par tous les utilisateurs ou uniquement pour une seule requête effectuée par un administrateur.
Modifier l’étendue des requêtes pour toutes les requêtes effectuées par tous les utilisateurs
Pour modifier l’étendue de toutes les requêtes effectuées par tous les utilisateurs, exécutez la procédure stockée sys.sp_rda_set_query_mode
. Vous pouvez réduire l’étendue pour interroger uniquement les données locales, désactiver toutes les requêtes ou restaurer le paramètre par défaut. Pour plus d’informations, consultez sys.sp_rda_set_query_mode.
Modifier l’étendue des requêtes pour une seule requête effectuée par un administrateur
Pour modifier l’étendue d’une requête unique effectuée par un membre du rôle db_owner, ajoutez l’indicateur de requête WITH ( REMOTE_DATA_ARCHIVE_OVERRIDE = *value* )
à l’instruction SELECT. L’indicateur de requête REMOTE_DATA_ARCHIVE_OVERRIDE peut avoir les valeurs suivantes.
LOCAL_ONLY. Interroge uniquement les données locales.
REMOTE_ONLY. Interroge uniquement les données distantes.
STAGE_ONLY. Interroge uniquement les données de la table où Stretch Database effectue une copie intermédiaire des lignes éligibles à la migration et conserve les lignes qui ont migré pendant la période spécifiée après la migration. Cet indicateur de requête est le seul moyen d’interroger la table de mise en lots.
Par exemple, la requête suivante retourne uniquement des résultats locaux.
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
Effectuer des suppressions et mises à jour administratives
Par défaut, vous ne pouvez pas mettre à jour ou supprimer des lignes éligibles à la migration, ou des lignes qui ont déjà migré, dans une table compatible Stretch. Quand vous devez corriger un problème, un membre du rôle db_owner peut exécuter une opération UPDATE ou DELETE en ajoutant l’indicateur de requête WITH ( REMOTE_DATA_ARCHIVE_OVERRIDE = *value* )
à l’instruction. L’indicateur de requête REMOTE_DATA_ARCHIVE_OVERRIDE peut avoir les valeurs suivantes.
LOCAL_ONLY. Met à jour ou supprime des données locales uniquement.
REMOTE_ONLY. Met à jour ou supprime des données distantes uniquement.
STAGE_ONLY. Met à jour ou supprime uniquement les données de la table où Stretch Database effectue une copie intermédiaire des lignes éligibles à la migration et conserve les lignes qui ont migré pendant la période spécifiée après la migration.