Comment puis-je optimiser la consommation de stockage dans mon instance de base de données Amazon RDS for SQL Server ?
Mon instance de base de données SQL Server Amazon Relational Database Service (Amazon RDS) for Microsoft SQL Server utilise plus de mémoire que prévu. Je souhaite optimiser l’espace de stockage de mon disque.
Brève description
Vous pouvez surveiller l'espace de stockage disponible d’une instance de base de données à l'aide de la métrique FreeStorageSpace dans Amazon CloudWatch. La métrique FreeStorageSpace ne décrit pas la manière dont le moteur SQL Server utilise le stockage disponible. Surveillez fréquemment cette métrique et activez l’autoscaling du stockage pour vous assurer de ne pas manquer d’espace de stockage.
Résolution
Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'interface.
L'instance Amazon RDS for SQL Server est à l'état Stockage plein
Vous ne pouvez pas effectuer des opérations de base lorsque votre instance Amazon RDS est bloquée à l'état Stockage plein. Pour plus d’informations, consultez la section Comment puis-je résoudre les problèmes qui surviennent lorsque les instances de base de données Amazon RDS manquent d'espace de stockage ?
Certaines instances de base de données RDS for SQL Server présentent des limites quant à la manière dont vous pouvez modifier le stockage. Si votre instance de base de données n'est pas éligible à la modification, l'option Stockage alloué de la console Amazon RDS est désactivée. Pour mettre à l’échelle le stockage sur une instance lorsque l'option de modification n'est pas disponible, utilisez la sauvegarde et la restauration natives pour migrer vos données vers une nouvelle instance. Assurez-vous que la nouvelle instance dispose d'entrées/sorties par seconde (IOPS) provisionnées ou utilise le type de stockage à usage général (SSD). Vous pouvez également utiliser un outil de migration de données pour migrer vers la nouvelle instance. Pour plus d'informations, consultez la section Modification d'une instance de base de données Amazon RDS.
Pour voir les options de stockage valides pour votre instance de base de données, exécutez la commande describe-valid-db-instance-modifications :
describe-valid-db-instance-modifications
Remarque : Le stockage à grande échelle et l’autoscaling du stockage ne sont pas pris en charge dans les instances RDS for SQL Server qui utilisent un stockage magnétique.
Pour les instances pour lesquelles l’autoscaling du stockage est activé, vous ne pouvez étendre le stockage que dans certains scénarios. Pour plus d'informations, consultez la section Gestion automatique de la capacité avec l’autoscaling du stockage Amazon RDS. En outre, vous ne pouvez étendre le stockage que lorsque le seuil de stockage maximum n'est pas égal ou supérieur à l'incrément de stockage. Pour en savoir plus, consultez la section Limites.
Consommation de stockage pour les instances RDS for SQL Server
Pour obtenir des informations sur l'utilisation de l'espace disque physique pour votre instance de base de données RDS for SQL Server, exécutez une requête similaire à l'exemple suivant :
SELECT D.name AS [database_name] , F.name AS [file_name] , F.type_desc AS [file_type] , CONVERT(decimal(10,2), F.size * 0.0078125) AS [size_on_disk_mb] , CONVERT(decimal(10,2), F.max_size * 0.0078125) AS [max_size_mb] FROM sys.master_files AS F INNER JOIN sys.databases AS D ON F.database_id = D.database_id;
Les fichiers contenant des LIGNES comportent des données, et les fichiers contenant des JOURNAUX représentent les transactions en cours.
Pour plus d'informations, consultez la page sys.master_files (Transact-SQL) sur le site Web de Microsoft.
Remarque : La vue système sys.master_files indique la taille de démarrage de tempdb. Cela ne reflète pas la taille actuelle de tempdb.
Pour vérifier la taille actuelle de tempdb, exécutez la requête suivante :
select name AS [database_name], physical_name AS [file_name], convert(decimal(10,2),size*0.0078125) AS [size_on_disk_mb] from tempdb.sys.database_files;
Avant d'optimiser votre stockage, assurez-vous de bien comprendre comment le moteur SQL Server utilise le stockage. Le stockage du moteur SQL Server est défini de manière générale dans les catégories suivantes :
Fichiers de base de données
Vous pouvez décomposer l'espace de stockage total utilisé par une base de données individuelle en lignes, index et espace libre dans la base de données actuellement active. Pour ventiler l'espace de stockage total, exécutez la requête suivante :
EXEC sp_spaceused;
Fichiers journaux de transactions
Pour déterminer la quantité de stockage utilisée par les journaux de transactions, exécutez la requête suivante :
DBCC SQLPERF(LOGSPACE)
Il est possible que vous observiez de l'espace libre dans les journaux de transactions. Pour libérer un espace libre excessif, exécutez la commande DBCC SHRINKFILE. Pour plus d'informations, consultez la page DBCC SHRINKFILE (Transact-SQL) sur le site Web de Microsoft.
Pour réduire l'allocation excessive d'espace libre pour les journaux de transactions, utilisez les options de fichier et de groupe de fichiers ALTER DATABASE (Transact-SQL). Les options configurent les paramètres de croissance automatique de la base de données. Pour plus d'informations, consultez la page Options de fichiers et de groupes de fichiers ALTER DATABASE (Transact-SQL) sur le site Web de Microsoft.
Base de données temporaire (tempdb)
La base de données tempdb de SQL Server s'agrandit automatiquement. Si la base de données tempdb consomme une grande quantité de stockage disponible, vous pouvez réduire la base de données tempdb.
Remarque : Si vous réduisez une base de données tempdb, vérifiez l’existence de messages d’erreur dans l’onglet Message de SQL Server Management Studio (SSMS) après avoir exécuté la commande.
Si vous recevez une erreur « DBCC SHRINKFILE : Page could not be moved because it is a work table page », consultez les pages DBCC FREESYSTEMCACHE (Transact-SQL) et DBCC FREEPROCCACHE (Transact-SQL) sur le site Web de Microsoft. Vous pouvez également redémarrer l'instance de base de données pour effacer la base de données tempdb.
Il est possible que les instances de base de données dont le stockage est plein ne parviennent pas à redémarrer. Dans ce cas, augmentez le stockage alloué à votre instance de base de données, puis effectuez une nouvelle tentative de redémarrage. Pour plus d’informations, consultez la section Comment puis-je résoudre les problèmes qui surviennent lorsque les instances de base de données Amazon RDS manquent d'espace de stockage ?
Index de base de données
Si vous dédiez une grande partie de votre espace de stockage disponible aux index, vous pourrez peut-être économiser de l'espace grâce au réglage des index. Pour obtenir des informations sur l'utilisation des index, exécutez la vue de gestion dynamique sys.dm_db_index_usage_stats. Cela peut vous aider à évaluer les priorités de réglage. Pour plus d'informations, consultez la page sys.dm_db_index_usage_stats (Transact-SQL) sur le site Web de Microsoft.
Fichiers de suivi
Les fichiers de suivi, y compris les fichiers C2 Audit Trace et les fichiers de vidage, peuvent consommer une grande quantité d'espace disque. Amazon RDS supprime automatiquement les fichiers de suivi et de vidage datant de plus de 7 jours. Toutefois, vous pouvez également ajuster les paramètres de conservation de vos fichiers de suivi. Pour plus d'informations, consultez la section Définition de la période de conservation des fichiers de suivi et de vidage.
Espace consommé par l'intégration d'Amazon S3
Si vous avez intégré votre instance de base de données RDS à Amazon S3, vous avez peut-être chargé des fichiers sur votre lecteur D: qui occupent de l'espace. Pour vérifier l'espace occupé par votre intégration S3, exécutez une commande pour répertorier les fichiers de votre instance de base de données. Pour plus d'informations, consultez la section Répertorier les fichiers sur l'instance de base de données RDS.
CDC
Pour les bases de données pour lesquelles le CDC est activé, la taille du fichier journal augmente en fonction de la fréquence des modifications apportées aux tables ou bases de données sources. L'espace de stockage peut éventuellement être saturé. Si le disque journal est plein, le CDC ne peut pas traiter d'autres transactions.
Audit
Si l'audit n'est pas configuré correctement pour une instance, les journaux peuvent augmenter de façon exponentielle et affecter le stockage. Pour plus d'informations, consultez la section SQL Server Audit.
Le mode d'audit C2 enregistre une grande quantité d'informations sur les événements dans le fichier journal. Le fichier journal peut s'agrandir rapidement et placer l'instance à l’état Stockage plein. Pour plus d'informations, consultez la page Mode d'audit C2 (option de configuration du serveur) sur le site Web de Microsoft.
En outre, si vous activez des fonctionnalités telles que le stockage de requêtes, l'utilisation de vos ressources peut être affectée.
Informations connexes
Amazon RDS for Microsoft SQL Server
Surveillance des métriques dans une instance Amazon RDS
L’instance de base de données Amazon RDS manque d’espace de stockage
Migration de bases de données Microsoft SQL Server vers le cloud AWS
Vidéos associées
Contenus pertinents
- demandé il y a 16 jourslg...
- demandé il y a 2 moislg...
- demandé il y a 4 moislg...
- AWS OFFICIELA mis à jour il y a un mois
- AWS OFFICIELA mis à jour il y a un an
- AWS OFFICIELA mis à jour il y a 2 ans