Importer des données dans Postgre SQL sur Amazon RDS - Amazon Relational Database Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Importer des données dans Postgre SQL sur Amazon RDS

Supposons que vous disposiez d'un SQL déploiement Postgre existant que vous souhaitez transférer vers AmazonRDS. La complexité de votre tâche dépend de la taille de votre base de données et des types d'objets de base de données que vous transférez. Prenons l'exemple d'une base de données qui contient des jeux de données se mesurant en gigaoctets, ainsi que des déclencheurs et des procédures stockés. Une telle base de données va être plus compliquée qu'une base de données simple avec seulement quelques mégaoctets de données de test et pas de déclencheurs, ni de procédures stockés.

Nous vous recommandons d'utiliser les outils natifs de migration SQL de base de données Postgre dans les conditions suivantes :

  • Vous avez une migration homogène, dans le sens où vous migrez depuis une base de données avec le même moteur de base de données que la base de données cible.

  • Vous migrez une base de données entière.

  • Les outils natifs vous permettent de migrer votre système avec une interruption minimale.

Dans la plupart des autres cas, la meilleure approche consiste à effectuer une migration AWS de base de données à l'aide de Database Migration Service (AWS DMS). AWS DMSpeut migrer des bases de données sans interruption de service et, pour de nombreux moteurs de base de données, poursuivre la réplication continue jusqu'à ce que vous soyez prêt à passer à la base de données cible. Vous pouvez migrer vers le même moteur de base de données ou vers un autre moteur de base de données à l'aide de AWS DMS. Si vous migrez vers un moteur de base de données différent de celui de votre base de données source, vous pouvez utiliser le AWS Schema Conversion Tool (AWS SCT). Vous pouvez l'utiliser AWS SCT pour migrer des objets de schéma qui ne sont pas migrés par AWS DMS. Pour plus d'informations AWS DMS, voir Qu'est-ce que c'est AWS Database Migration Service ?

Modifiez votre groupe de paramètres de base de données pour inclure les paramètres suivants pour votre importation uniquement. Vous devez tester les réglages des paramètres pour déterminer les réglages les plus efficaces pour la taille de votre instance de base de données. Vous devez également revenir aux valeurs de production pour ces paramètres une fois votre importation terminée.

Modifiez les paramètres de l'instance de base de données comme suit :

  • Désactivez les sauvegardes de l'instance de base de données (affectez la valeur 0 à backup_retention).

  • Désactivez le mode multi-AZ.

Modifiez votre groupe de paramètres DB pour inclure les paramètres suivants. Vous devez utiliser ces paramètres uniquement lors de l'importation des données. Vous devez tester les réglages des paramètres pour déterminer les réglages les plus efficaces pour la taille de votre instance de base de données. Vous devez également revenir aux valeurs de production pour ces paramètres une fois votre importation terminée.

Paramètre Valeur recommandée lors de l'importation Description

maintenance_work_mem

524288, 1048576, 2097152 ou 4194304 (en Ko). Ces paramètres sont comparables à 512 Mo, 1 Go, 2 Go et 4 Go.

La valeur de ce paramètre dépend de la taille de votre hôte. Ce paramètre est utilisé lors CREATE INDEX des instructions et chaque commande parallel peut utiliser cette quantité de mémoire. Calculez la meilleure valeur afin de ne pas définir de valeur si élevée et risquer de manquer de mémoire.

max_wal_size

256 (pour la version 9.6), 4096 (pour les versions 10 et ultérieures)

Taille maximale pour les laisser WAL pousser lors des points de contrôle automatiques. L'augmentation de ce paramètre peut augmenter le temps nécessaire à la reprise sur incident. Ce paramètre remplace checkpoint_segments Postgre SQL 9.6 et versions ultérieures.

Pour Postgre SQL version 9.6, cette valeur est exprimée en unités de 16 Mo. Pour les versions ultérieures, la valeur est exprimée en unités de 1 Mo. Par exemple, dans la version 9.6, 128 signifie 128 fragments d'une taille de 16 Mo chacun. Dans la version 12.4, 2048 signifie 2048 fragments de 1 Mo chacun.

checkpoint_timeout

1800

La valeur de ce paramètre permet une WAL rotation moins fréquente.

synchronous_commit

Désactivé

Désactivez ce paramètre pour accélérer les écritures. La désactivation de ce paramètre peut augmenter le risque de perte de données en cas de panne du serveur (ne le désactivez pasFSYNC).

wal_buffers

8192

Cette valeur est en unités de 8 Ko. Cela contribue encore une fois à votre vitesse WAL de génération

autovacuum

0

Désactivez le paramètre d'aspiration SQL automatique Postgre pendant que vous chargez des données afin qu'il n'utilise pas de ressources

Utilisez les commandes pg_dump -Fc (compressé) ou pg_restore -j (parallèle) avec ces paramètres.

Note

La SQL commande Postgre pg_dumpall nécessite des autorisations super_user qui ne sont pas accordées lorsque vous créez une instance de base de données. Elle ne peut donc pas être utilisée pour importer des données.