Pourquoi l'espace de stockage libre de mon instance de base de données Amazon RDS est-il faible ou pourquoi l'état de mon instance de base de données est-il plein après l'activation de la scalabilité automatique du stockage ?

Date de la dernière mise à jour : 05/03/2020

J'ai activé la scalabilité automatique du stockage pour mon instance de base de données Amazon Relational Database Service (Amazon RDS). Toutefois, je constate que l'espace de stockage disponible est inférieur à 10 % ou que l'instance de stockage est pleine. D'où vient le problème et comment le résoudre ?

Brève description

Si vous avez récemment augmenté manuellement ou par scalabilité automatique le stockage d'instance de base de données RDS, il ne peut plus y avoir de modifications de stockage sur l'instance pendant six heures (temps de stabilisation) une fois que l'instance de base de données a terminé l'optimisation du stockage. Il est possible que le temps total de stabilisation des modifications dépasse six heures. En effet, le temps de stabilisation commence uniquement une fois l'opération terminée et l'optimisation du stockage peut parfois prendre des heures. Pendant le temps de stabilisation des modifications de stockage, la scalabilité automatique ne peut pas augmenter le stockage de votre instance de base de données, même s'il y a moins de 10 % d'espace de stockage disponible. Pour plus d'informations, consultez Augmentation de la capacité de stockage d'une instance de base de données.

Si vous avez augmenté la capacité de stockage de l'instance de base de données RDS à l'aide de la scalabilité automatique, le stockage augmente de 5 Gio, soit de 10 % du stockage actuellement alloué ou de la croissance prévue en fonction des métriques FreeStorageSpace de la dernière heure, selon la valeur la plus élevée.

Si vous prévoyez une augmentation de la charge de vos données (par exemple, une charge supérieure à 20 % de la taille de stockage actuelle de votre instance de base de données RDS), une bonne pratique consiste à augmenter manuellement la taille de votre stockage de base de données RDS avant le chargement des données. Par exemple, si la taille de stockage de votre instance de base de données RDS est de 100 Gio, dispose de 10,1 Gio d'espace libre et que la consommation de stockage est généralement de 100 Mo par heure, la scalabilité automatique augmentera le stockage de 10 % (10 Gio). En revanche, si vous prévoyez de charger 50 Gio de données en moins d'une heure, l'augmentation de 10 % du stockage ne sera pas suffisante. Et comme l'opération de scalabilité automatique précédente se trouve dans le temps de stabilisation des modifications de stockage, il ne peut pas y avoir de stockage sur l'instance de base de données RDS pendant au moins six heures. En conséquence, l'instance de base de données RDS a l'état stockage plein pendant plusieurs heures.

Résolution

Si vous ne pouvez pas augmenter la taille de stockage de votre instance de base de données RDS, commencez par vérifier les éléments suivant qui indiquent que votre instance est affectée par le temps de stabilisation des modifications de stockage :

  • Le statut de votre instance de base de données RDS est « Storage-optimization » (Optimisation du stockage).
  • Le statut de votre instance de base de données RDS est « Storage-full » (Stockage plein) ou « Available » (Espace disponible), mais le stockage a récemment été modifié. Pour confirmer qu'une opération d'augmentation du stockage a récemment eu lieu, vérifiez les événements de votre instance de base de données RDS pour les messages suivants : « Finished application modification to allocation storage » ou « Finished application autoscale initiated modification to allocation storage ». Comme le temps de stabilisation commence une fois que l'optimisation du stockage est terminée et que l'opération peut prendre plusieurs heures, il est préférable d'attendre 24 heures avant de vérifier les modifications de stockage.

S'il y a eu une modification récente du stockage et que vous ne pouvez pas attendre la fin du temps de stabilisation, vous pouvez restaurer votre base de données dans une nouvelle instance de base de données RDS qui dispose de plus d'espace de stockage Amazon Elastic Block Store (Amazon EBS). Toutefois, si l'instance de base de données RDS est à l'état « Storage full » (Stockage plein), vous devez d'abord arrêter les chargements de données sur l'instance de base de données RDS. Ensuite, vous pouvez libérer de l'espace de stockage à partir de votre instance de base de données RDS en suivant le processus pertinent à votre moteur de base de données. Une fois que vous avez arrêté tous les chargements de données sur l'instance de base de données RDS, l'automatisation Amazon RDS essaie également de libérer de l'espace utilisé par les fichiers journaux. Toutefois, ce processus peut prendre de quelques minutes à plusieurs heures avant que l'instance ne soit plus à l'état « Storage full » (Stockage plein).

Si l'instance de base de données RDS n'est pas à l'état « Storage full » (Stockage plein) vous pouvez utiliser l'une des méthodes suivantes pour augmenter la taille de stockage de votre instance de base de données.

  • Option 1 : créer et promouvoir un réplica en lecture de votre instance de base de données RDS
  • Option 2 : prendre un instantané de bases de données manuel et restaurer votre instance de base de données RDS à un instant donné

Ces deux options provoquent des temps d'arrêt pour votre base de données, mais la création et la promotion d'un réplica en lecture entraînent moins de temps d'arrêt. Les réplicas en lecture d'Amazon RDS sont pris en charge sur toutes les versions des moteurs MySQL, MariaDB et PostgreSQL. Pour les instances de base de données Oracle, les réplicas en lecture sont pris en charge uniquement par Oracle Enterprise Edition, version 12.1.0.2.v10 et ultérieure. Pour utiliser les réplicas en lecture Oracle, vous devez disposer d'une licence Active Data Guard.

Option 1 : créer et promouvoir un réplica en lecture de votre instance de base de données RDS

  1. Créez un réplica en lecture de votre instance de base de données RDS si vous n'en avez pas déjà un.
  2. Augmentez manuellement la capacité de stockage du réplica en lecture. Par défaut, la scalabilité automatique du stockage Amazon RDS est désactivée sur le réplica en lecture.
  3. Donnez un autre nom à votre instance de base de données RDS active pour arrêter tout trafic entrant.
  4. Donnez au réplica en lecture le nom utilisé précédemment par votre instance de base de données RDS active. Ces modifications rendent le point de terminaison du réplica en lecture identique à l'instance de base de données RDS active. Vous n'avez donc pas à reconfigurer vos applications.
  5. Promouvez votre réplica en lecture.

Remarque : pour l'application ou le client, le temps d'arrêt de la base de données intervient au cours des étapes 3 à 5.

Option 2 : prendre un instantané de bases de données manuel et restaurer votre instance de base de données RDS à un point dans temps

  1. Renommez votre instance de base de données RDS active pour arrêter tout trafic entrant. Cela empêche l'instance de base de données RDS d'atteindre un état « Storage-full » (Stockage plein). Si l'instance de base de données RDS est à l'état « Storage-full » (Stockage plein), vous ne pouvez pas passer à l'étape suivante, celle de la prise de l'instantané manuel.
  2. Prenez un instantané de bases de données de votre instance de base de données RDS. Vous devez prendre un nouvel instantané pour empêcher que l'instance de base de données RDS restaurée souffre elle aussi d'un temps de stabilisation post-modification du stockage.
  3. Restaurez votre instance de base de données RDS à un instant dans le passé en choisissant l'heure de restauration la plus récente. Ensuite, pour l'identifiant de l'instance, entrez le nom qui a été utilisé par votre instance de base de données RDS active. Remarque : n'activez pas la scalabilité automatique pour l'instant afin d'éviter toute augmentation de la scalabilité automatique pouvant entraîner un temps de stabilisation.
  4. Modifiez, le cas échéant, l'instance de base de données RDS restaurée en y incluant des groupes de sécurité personnalisés. Le groupe de sécurité de base de données par défaut est appliqué à la nouvelle instance de base de données RDS. Si vous utilisez des groupes de sécurité personnalisés, définissez-les maintenant.
  5. Augmentez manuellement la capacité de stockage de la nouvelle instance de base de données RDS.

Remarque : pour l'application ou le client, le temps d'arrêt de la base de données intervient pendant les étapes 1 à 4.