Accéder au contenu principal Passer au contenu complémentaire

Configuration du basculement

Note Informations
  • Les procédures décrites dans cette rubrique doivent être exécutées par votre DBA PostgreSQL.
  • Requiert Data Movement gateway 2024.11.14 ou une version ultérieure

Cette rubrique explique comment configurer PostgreSQL et Data Movement gateway de sorte à supporter un scénario de basculement. La procédure à suivre dépend de votre configuration de basculement PostgreSQL spécifique.

Si l'ID d'objet de base de données des bases de données principale et secondaire reste le même après un basculement (ce qui est généralement le cas), il vous suffit de mettre à jour le fichier hosts sur le poste Data Movement gateway en y indiquant l'adresse IP du serveur de base de données secondaire. Toutefois, si l'ID d'objet de base de données de la base de données secondaire n'est pas le même que celui de la base de données principale après un basculement, une configuration supplémentaire est nécessaire. Il n'est généralement pas possible de savoir à l'avance si l'ID d'objet va changer, mais, si vous le savez, exécutez la procédure Configuration du basculement lorsque l'ID d'objet des bases de données principale et secondaire est différent décrite ci-dessous. Si vous ne savez pas si l'ID d'objet va changer, nous vous recommandons d'exécuter la procédure plus simple décrite à la section Configuration du basculement lorsque l'ID d'objet des bases de données principale et secondaire est le même, car l'ID d'objet restera généralement le même après un basculement.

Si vous avez effectué la configuration plus simple et que Data Movement gateway ne parvient pas à se rétablir lors du basculement, vous devrez exécuter la procédure Configuration du basculement lorsque l'ID d'objet des bases de données principale et secondaire est différent.

Note InformationsAlors que la procédure Configuration du basculement lorsque l'ID d'objet des bases de données principale et secondaire est le même est supportée à la fois par les projets de réplication et les tâches de dépôt temporaire dans les projets de pipeline de données, la procédure Configuration du basculement lorsque l'ID d'objet des bases de données principale et secondaire est différent n'est supportée que par les projets de réplication.

Configuration du basculement lorsque l'ID d'objet des bases de données principale et secondaire est le même

En cas de basculement, la tâche de données rencontrera une erreur récupérable et tentera de se reconnecter à l'adresse IP du serveur de base de données principale. Toutefois, cette opération est généralement vouée à l'échec, car le serveur de base de données secondaire a (presque toujours) une adresse IP différente.

Si le changement d'adresses IP n'est pas géré par un service de basculement DNS, vous devrez spécifier la nouvelle adresse IP dans le fichier hosts sur le poste Data Movement gateway. Le chemin d'accès au fichier hosts est /etc/hosts. Après la mise à jour du fichier hosts, la tâche de données reprendra automatiquement.

Configuration du basculement lorsque l'ID d'objet des bases de données principale et secondaire est différent

Note InformationsSupporté uniquement avec les projets de réplication.

En fonctionnement standard, la tâche de données crée automatiquement un emplacement lorsqu'elle déplace des données à partir d'une source PostgreSQL. Les noms d'emplacement contiennent l'ID d'objet de la base de données. Dans de rares cas, l'ID d'objet des bases de données principale et secondaire sera différent. Dans ce cas, la tâche de données échouera lors d'un basculement, car elle ne parviendra pas à trouver l'emplacement qu'elle a créé pour la base de données principale dans la base de données secondaire. Dans ce cas, il se produira l'erreur suivante :

[SOURCE_CAPTURE ]E: Can't resume task after replication slot was dropped. [1020101] (postgres_endpoint_capture.c:445)

Si vous rencontrez une telle erreur, procédez comme suit :

  1. Dans la section Propriétés internes des paramètres du connecteur, ajoutez la propriété interne slotName et définissez la valeur du nom d'emplacement.

    Le slotName spécifié doit déjà exister sur le serveur PostgreSQL principal. Vous pouvez créer un nouvel emplacement ou utiliser un emplacement existant.

    Pour créer un nouvel emplacement et récupérer son LSN, exécutez la requête suivante :

    SELECT lsn FROM pg_create_logical_replication_slot ('user_provided_slot_name', 'test_decoding');

    Pour obtenir une liste des emplacements disponibles et de leurs LSN, exécutez la requête suivante :

    SELECT slot_name, restart_lsn FROM pg_replication_slots WHERE slot_type = 'logical';

  2. Saisissez le LSN du slotName spécifié dans le champ Position du changement source de la boîte de dialogue Options d'exécution avancées, puis préparez et démarrez la tâche de données.

    En cas de basculement, le serveur secondaire prend presque immédiatement le relais et deviendra le serveur principal. Le basculement doit être géré par l'extension pg_failover_slots.

  3. En cas de basculement, la tâche de données rencontrera une erreur récupérable et tentera de se reconnecter à l'adresse IP du serveur de base de données principale. Toutefois, cette opération est généralement vouée à l'échec, car le serveur de base de données secondaire a (presque toujours) une adresse IP différente. Si le changement d'adresses IP n'est pas géré par un service de basculement DNS, vous devrez spécifier la nouvelle adresse IP dans le fichier hosts sur le poste Data Movement gateway. Le chemin d'accès au fichier hosts est /etc/hosts. Après la mise à jour du fichier hosts, la tâche de données reprendra automatiquement.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !