Je souhaite minimiser la durée d’indisponibilité et optimiser les performances d'une mise à niveau majeure de ma base de données Amazon Relational Database Service (Amazon RDS) pour PostgreSQL.
Brève description
Remarque : les mises à niveau de versions majeures peuvent contenir des modifications de base de données qui ne sont pas compatibles avec vos applications existantes. Avant de procéder à la mise à niveau, assurez-vous de tester minutieusement la mise à niveau dans un environnement hors production. Pour plus d'informations, consultez la section Comment effectuer une mise à niveau d'une version majeure de RDS pour PostgreSQL.
Pour mettre à niveau votre instance de base de données (DB), utilisez l'une des méthodes suivantes :
- Restauration d’instantanés
- Mise à niveau manuelle
- Déploiement bleu/vert
- AWS Database Migration Service (AWS DMS)
Prérequis :
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'AWS CLI.
Optimiser les performances de mise à niveau
Pour minimiser les problèmes potentiels lors de l'exécution de la version majeure du moteur, procédez comme suit :
Pour identifier les transactions à l’état en cours depuis plus de 10 minutes, exécutez la commande suivante :
SELECT * FROM pg_stat_activity
WHERE pid <> pg_backend_pid()
AND state in ('idle', 'idle in transaction', 'idle in transaction (aborted)', 'disabled','active')
AND state_change < current_timestamp - INTERVAL '10' MINUTE
AND usename != 'rdsadmin';
Si vous identifiez une transaction de longue durée, utilisez pg_cancel_backend ou pg_terminate_backend pour terminer la transaction. Pour plus d'informations, consultez la page Fonctions de signalisation du serveur sur le site Web de PostgreSQL.
Effectuer une mise à niveau grâce à une restauration instantanée
Créez un instantané de base de données de votre instance de base de données, effectuez une mise à niveau vers une version majeure ultérieure, puis restaurez-le sur une nouvelle instance de base de données.
Remarque : vous devez utiliser un nom différent pour la nouvelle instance de base de données et votre application doit s'arrêter pendant le processus de mise à niveau. Vous devez également mettre à jour les points de terminaison de l'application une fois la mise à niveau terminée.
Mettre à niveau manuellement votre instance de base de données
Pour mettre à niveau manuellement votre instance de base de données, consultez la section Mise à niveau manuelle de la version du moteur.
Remarque : les mises à niveau manuelles des bases de données requièrent une durée d’indisponibilité. Pour minimiser la durée d’indisponibilité, utilisez un déploiement bleu/vert.
Utiliser une mise à niveau de déploiement bleu/vert
Pour créer un déploiement bleu/vert, consultez la section Création d'un déploiement bleu/vert. Lorsque vous vous trouvez dans un environnement vert, spécifiez une version de moteur ultérieure.
Pour plus d'informations sur les déploiements bleu/vert, consultez la section Limitations et considérations relatives aux déploiements bleu/vert Amazon RDS.
Utiliser AWS DMS pour effectuer la mise à niveau
Utilisez AWS Database Migration Service (AWS DMS) pour migrer les données de votre instance de base de données actuelle vers une nouvelle instance dotée de la version mise à niveau. AWS DMS prend en charge la capture de données modifiées (CDC) pour une réplication continue.
Mettre à niveau la table pg_statistics
Après avoir terminé la mise à niveau de la version majeure du moteur, exécutez la commande ANALYZE VERBOSE; sur toutes les bases de données pour mettre à niveau la table pg_statistics. Pour en savoir plus, consultez la page ANALYZE sur le site Web de PostgreSQL.