Pour migrer des données d'une instance PostgreSQL auto-hébergée vers ApsaraDB RDS for PostgreSQL, créez un compte de base de données dédié disposant des privilèges de réplication sur l'instance source. Ce compte permet à la fonctionnalité de migration cloud de diffuser les données depuis votre instance auto-hébergée.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Une instance PostgreSQL auto-hébergée déployée sur une instance Elastic Compute Service (ECS) ou dans un centre de données
Un accès administratif à l'instance PostgreSQL auto-hébergée (un superutilisateur ou un rôle doté du privilège
CREATEROLE)Une instance ApsaraDB RDS for PostgreSQL en tant que cible de migration
Procédure
Le compte de migration nécessite trois autorisations : CREATEROLE, REPLICATION et l'appartenance au rôle pg_monitor.
Si un compte disposant déjà de ces autorisations existe sur l'instance PostgreSQL auto-hébergée, ignorez cette procédure et passez directement à Mettre à jour le fichier pg_hba.conf d'une instance PostgreSQL auto-hébergée .
-
Connectez-vous à l'instance PostgreSQL auto-hébergée et exécutez l'instruction SQL suivante pour créer le compte de migration :
CREATE USER migratetest CREATEROLE REPLICATION LOGIN PASSWORD '123456';Remarque : Remplacez
123456par un mot de passe robuste et unique. N'utilisez pas le mot de passe de l'exemple dans les environnements de production.Paramètre Description migratetestNom du compte. Remplacez-le par le nom de votre choix. CREATEROLEAccorde la capacité de créer et de gérer des rôles, ce qui est requis pour le processus de migration. REPLICATIONActive la diffusion WAL (Write-Ahead Logging) pour la réplication des données. LOGINAutorise le compte à établir des connexions. PASSWORDDéfinit le mot de passe de connexion du compte. -
Accordez le rôle
pg_monitorau compte de migration :GRANT pg_monitor TO migratetest;Le rôle
pg_monitorfournit un accès en lecture aux vues et fonctions de surveillance utilisées pour superviser l'activité du serveur de base de données, y compris la progression de la réplication. -
Vérifiez que le compte a été créé avec les autorisations appropriées :
SELECT rolname, rolcreaterole, rolreplication FROM pg_roles WHERE rolname = 'migratetest';Résultat attendu :
rolname | rolcreaterole | rolreplication -------------+---------------+---------------- migratetest | t | tPour vérifier l'appartenance au rôle
pg_monitor:SELECT pg_has_role('migratetest', 'pg_monitor', 'member');Résultat attendu :
pg_has_role ------------- t
Étapes suivantes
Mettre à jour le fichier pg_hba.conf d'une instance PostgreSQL auto-hébergée