Avant de migrer une instance PostgreSQL autogérée vers ApsaraDB RDS for PostgreSQL, configurez deux paramètres dans le fichier postgresql.conf : listen_addresses pour autoriser la connexion de l'instance RDS pendant la migration, et un paramètre de rétention des journaux WAL (wal_keep_segments ou wal_keep_size) afin d'éviter la suppression des enregistrements Write-Ahead Logging (WAL) avant la fin de la réplication.
Les exemples de cette rubrique utilisent PostgreSQL 13 sur CentOS 7. Adaptez le numéro de version dans les chemins d'accès et les commandes à votre environnement.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Une instance PostgreSQL autogérée déployée sur une instance Elastic Compute Service (ECS) ou dans un centre de données
Un accès à l'utilisateur
postgresainsi qu'à l'utilisateurrootsur l'hôte
Étape 1 : Vérifier les valeurs actuelles des paramètres
Connectez-vous à l'instance PostgreSQL autogérée et exécutez les commandes suivantes pour vérifier les valeurs actuelles.
| Paramètre | S'applique à | Commande | Valeur requise |
|---|---|---|---|
listen_addresses |
Toutes les versions | SHOW listen_addresses; |
* |
wal_keep_segments |
PostgreSQL 10, 11, 12 | SHOW wal_keep_segments; |
4096 ou plus |
wal_keep_size |
PostgreSQL 13 et versions ultérieures | SHOW wal_keep_size; |
65536 Mo ou plus |
Fonction de ces paramètres :
listen_addresses: spécifie les adresses IP depuis lesquelles l'instance accepte les connexions. Définissez ce paramètre sur*pour permettre à l'instance RDS de se connecter pendant la migration.wal_keep_segments/wal_keep_size: contrôle la quantité de données WAL conservées dans le répertoirepg_wal. Si la valeur est trop faible, les enregistrements WAL sont supprimés après une sauvegarde complète, ce qui interrompt la réplication et vous oblige à redémarrer la sauvegarde depuis le début.
Les paramètres listen_addresses et de rétention WAL sont statiques : ils ne prennent effet qu'après un redémarrage complet du service. Si une valeur ne respecte pas les exigences, suivez les étapes 2 à 5 pour arrêter le service, mettre à jour le fichier et redémarrer.
Si toutes les valeurs répondent déjà aux exigences, passez directement à la section Création d'un compte pour la migration cloud sur une instance PostgreSQL autogérée.
Étape 2 : Arrêter le service de base de données PostgreSQL
Seul l'utilisateurpostgrespeut exécuter les commandespg_ctl. Exécutezsu - postgrespour basculer vers l'utilisateurpostgres.
/usr/pgsql-13/bin/pg_ctl stop -m fast
Étape 3 : Localiser le fichier postgresql.conf
Seul l'utilisateurrootpeut exécuter la commandefind. Exécutezsu - rootpour basculer vers l'utilisateurroot.
find / -name postgresql.conf
Le résultat affiche le chemin d'accès au fichier, par exemple :
/var/lib/pgsql/13/data/postgresql.conf
Étape 4 : Modifier le fichier postgresql.conf
Accédez au répertoire et ouvrez le fichier.
cd /var/lib/pgsql/13/data/
vim postgresql.conf
Définissez les paramètres avec les valeurs requises. Ces paramètres peuvent être commentés par défaut ; supprimez le caractère # au début de chaque ligne après modification.
listen_addresses = '*'
# PostgreSQL 10, 11, or 12:
wal_keep_segments = 4096
# PostgreSQL 13 and later:
wal_keep_size = 65536
Appuyez sur Esc, puis saisissez :wq pour enregistrer et quitter.
Étape 5 : Démarrer le service de base de données PostgreSQL
Seul l'utilisateurpostgrespeut exécuter les commandespg_ctl. Exécutezsu - postgrespour basculer vers l'utilisateurpostgres.
/usr/pgsql-13/bin/pg_ctl start
Étapes suivantes
Création d'un compte pour la migration cloud sur une instance PostgreSQL autogérée