Le flux peut rencontrer des erreurs pendant l'exécution.
- Certaines erreurs, telles qu'un mot de passe incorrect dans la base de données source, peuvent être récupérées, ce qui signifie qu'elles peuvent être corrigées et que le flux reprend automatiquement.
- Les erreurs peuvent affecter un seul objet, comme un événement contenant des types de données non compatibles. D'autres erreurs peuvent affecter plusieurs objets ou l'ensemble du flux, par exemple lorsque Datastream ne parvient pas à se connecter à la base de données source.
- Selon l'erreur, des informations sont fournies sur les pages Flux ou Détails du flux de l'interface utilisateur Datastream. Vous pouvez également utiliser les API Datastream pour récupérer des informations sur l'erreur.
Pour résoudre une erreur, accédez au flux pour afficher l'erreur, puis suivez la procédure décrite dans le message.
Cette page contient des informations sur la configuration, la connectivité, Oracle et les erreurs MySQL, ainsi que la procédure à suivre pour les résoudre.
Erreurs de configuration et de connectivité
Erreur | Procédure de dépannage |
---|---|
Échec de la connexion à la base de données source (générique). | Cette situation peut se produire pour diverses raisons. Pour résoudre cette erreur, procédez comme suit :
La diffusion reprend automatiquement. |
Échec de la connexion à la base de données source (liste d'autorisation d'adresses IP). | Cela peut se produire si la méthode de connectivité choisie est Liste d'autorisation d'adresses IP, mais qu'une ou plusieurs des adresses IP sortantes de Datastream ne sont pas correctement ajoutées à la base de données source. Assurez-vous que les adresses IP sortantes affichées dans le profil de connexion Datastream sont configurées sur le pare-feu réseau afin que le serveur de base de données source puisse accepter les connexions provenant de ces adresses IP. Une fois le problème corrigé, le flux reprend automatiquement. |
Échec de la connexion à la base de données source (tunnel SSH de transfert). | Cela peut se produire en cas de problème avec le tunnel SSH de transfert. Vérifiez l'état du tunnel. Si le tunnel est arrêté, il doit être démarré. Une fois le problème corrigé, le flux reprend automatiquement. |
Datastream ne peut pas se connecter à un hôte bastion via un tunnel SSH de transfert. | Vérifiez que la configuration du tunnel SSH de transfert est correcte dans le profil de connexion source et que le port est ouvert sur le serveur du tunnel SSH. |
Échec de la connexion à la base de données source en raison de certificats incorrects. | Cela peut se produire en cas de problème avec les certificats fournis lors de la définition du profil de connexion source. Accédez à la page Profils de connexion, puis sélectionnez le profil de connexion donné. Vérifiez que les certificats sont correctement configurés. Une fois les modifications effectuées, enregistrez le profil de connexion. Le flux reprend automatiquement. |
Échec de la connexion à la base de données source à l'aide de la connectivité privée. |
|
Le type de connectivité STATIC_SERVICE_IP_CONNECTIVITY n'est pas autorisé lorsque la règle d'administration constraints/datastream.disablePublicConnectivity est activée. | Vous avez sélectionné les méthodes de connectivité réseau liste d'autorisation d'adresses IP publiques ou tunnel SSH de transfert pour le profil de connexion que vous créez. Toutefois, la règle d'administration Bloquer les méthodes de connectivité publique pour Datastream est activée. Vous ne pouvez donc pas sélectionner de méthodes de connectivité publiques pour votre profil de connexion. Pour résoudre ce problème, sélectionnez la méthode de connectivité réseau privée Appairage de VPC ou désactivez la règle d'administration. Pour désactiver la règle d'administration, procédez comme suit :
|
Lorsque je configure la base de données source de mon flux, je ne trouve pas les tables et les schémas que je souhaite transférer dans la liste des objets à inclure. | Cela peut se produire si votre base de données contient des milliers de tables et de schémas. Il est possible que certains d'entre eux ne figurent pas dans la liste des objets à extraire lors de la configuration de la source du flux dans la console Google Cloud. Au lieu de sélectionner Schémas et tables spécifiques dans la section Sélectionner des objets à inclure, sélectionnez Personnalisé. Dans le champ Critères de correspondance des objets, saisissez les schémas et les tables que vous souhaitez extraire avec Datastream. |
J'ai ajouté plusieurs tables à mon flux à l'aide du menu Objets à inclure. Toutefois, lorsque je consulte l'onglet Objects (Objets) dans Stream details (Détails du flux), je constate que certains tableaux sont manquants. | Assurez-vous qu'au moins une mise à jour CDC est effectuée pour chacune de ces tables afin que Datastream puisse reconnaître les modifications et inclure automatiquement les tables dans le flux. |
Échec du chargement de la liste des objets lorsque vous utilisez le menu Objects to include (Objets à inclure) dans la console Google Cloud. | Cela peut se produire si votre base de données contient plus de 5 000 schémas et tables. Utilisez une autre méthode pour spécifier les objets à inclure ou utilisez l'API Datastream. Pour en savoir plus, consultez la section Configurer les bases de données sources. |
Événements supprimés pendant la diffusion et non répliqués dans la destination. | Datastream peut supprimer les événements non compatibles pendant la diffusion. Pour résoudre le problème, vous pouvez effectuer les actions suivantes:
|
Erreurs Oracle
Erreur | Procédure de dépannage |
---|---|
La journalisation supplémentaire est mal configurée dans la base de données source. | Une erreur peut se produire lors de la récupération des données de capture de données modifiées (CDC) en cours si la configuration de la journalisation supplémentaire n'est pas correcte dans la base de données source. Vérifiez que la journalisation supplémentaire est correctement configurée. Plus précisément, vérifiez que la journalisation supplémentaire est activée pour les tables de base de données qui sont insérées par flux depuis la source vers la destination. La diffusion reprend automatiquement. |
Impossible de reprendre la réplication car la position du journal est perdue. | Cette erreur peut se produire lorsque le processus de réplication est suspendu pendant une longue période, ce qui entraîne la perte de la position dans le journal. Les flux ne doivent pas être mis en pause pendant des périodes qui approchent la période de conservation des journaux. Recréez le flux. |
Les fichiers journaux sont partiellement ou entièrement manquants. | Les fichiers journaux ont peut-être été supprimés. Oracle purge les fichiers journaux dès que possible, sauf si vous spécifiez une période de rotation minimale pour les conserver.
Sur le serveur Oracle, définissez la durée de conservation des fichiers journaux. Par exemple, utilisez Pour un déploiement RDS, utilisez |
La liste d'exclusion est basée sur la liste d'inclusion. | La liste d'inclusion est entièrement contenue dans la liste d'exclusion. Par conséquent, la liste des objets que Datastream extrait de la source est vide. Modifiez la sélection d'objets, puis réessayez. |
Le mode de journalisation de la base de données Oracle n'est pas défini sur ARCHIVELOG. | Modifiez le mode de journalisation, puis réessayez. |
Datastream renvoie un message d'erreur ORA-00942: table or view does not exist , mais tout est correctement configuré. |
Cela peut être dû à la mise en cache sur le serveur Oracle. Recréer l'utilisateur de la base de données devrait résoudre le problème de mise en cache. |
Les modifications apportées à une source Oracle ne sont pas répercutées dans la destination lorsque le flux est déjà en cours d'exécution. | Comme Datastream lit les fichiers journaux de rétablissement archivés, les modifications que vous apportez à la source ne sont pas répercutées dans la destination tant que le journal n'est pas archivé. Pour voir les modifications dans la destination, modifiez la règle d'archivage des journaux ou forcez manuellement un changement de journal. Pour en savoir plus, consultez Utiliser les fichiers journaux de rétablissement de base de données Oracle. |
Une erreur interne inattendue s'est produite. | Pour en savoir plus, contactez l'assistance Google. |
Erreurs MySQL
Erreur | Procédure de dépannage |
---|---|
Le binlog n'est pas configuré correctement dans la base de données source. | Cela peut se produire pour les flux MySQL continus si la configuration du binlog est incorrecte dans la base de données source. Pour résoudre cette erreur, procédez comme suit :
|
Impossible de reprendre la réplication car la position du binlog est perdue. | Cette erreur peut se produire lorsque le processus de réplication est suspendu pendant une longue période, ce qui entraîne la perte de la position du binlog. Les flux ne doivent pas être mis en pause pendant des périodes qui approchent la période de conservation du journal binaire. Recréez le flux. |
Échec de l'exécution du flux en raison de versions de base de données source et de destination incompatibles. | Cela peut se produire lorsque la base de données source ne respecte pas la matrice de compatibilité des versions. Pour résoudre cette erreur, procédez comme suit :
|
Les binlogs sources MySQL AWS RDS sont partiellement ou entièrement manquants. | Les journaux binaires ont peut-être été supprimés. AWS RDS purge les journaux binaires dès que possible, sauf si vous spécifiez une période de rotation minimale pour les conserver.
Dans l'instance MySQL AWS RDS source, définissez la durée de conservation des binlogs en heures. Par exemple, utilisez mysql.rds_set_configuration('binlog retention hours', 168); pour conserver les journaux binaires pendant au moins sept jours. |
La liste d'exclusion est basée sur la liste d'inclusion. | La liste d'inclusion est entièrement contenue dans la liste d'exclusion. Par conséquent, la liste des objets que Datastream extrait de la source est vide. Modifiez la sélection d'objets, puis réessayez. |
Datastream ne peut pas répliquer une base de données MySQL. | Assurez-vous que Datastream dispose des autorisations nécessaires pour répliquer la base de données. |
Lorsque vous créez un profil de connexion pour une source MySQL, plusieurs certificats SSL encodés en PEM ne sont pas acceptés dans le menu Type de chiffrement. | Datastream n'est pas compatible avec les chaînes de certificats SSL dans les profils de connexion MySQL. Seuls les certificats X.509 encodés au format PEM sont acceptés. |
Latence élevée lors de la diffusion en streaming à partir d'une source MySQL. | Améliorez la capacité de Datastream à lire à partir de la base de données source:
|
Échec de la validation de la configuration du CDC MySQL. | Votre base de données source n'était pas configurée pour la méthode CDC que vous avez sélectionnée. Sélectionnez une autre méthode ou terminez la configuration de votre méthode CDC. Pour en savoir plus, consultez Configurer une base de données MySQL source. |
Une erreur interne inattendue s'est produite. | Pour en savoir plus, contactez l'assistance Google. |
Erreurs PostgreSQL
Erreur | Procédure de dépannage |
---|---|
Le décodage logique n'est pas configuré correctement dans la base de données source. | Vérifiez que le décodage logique est correctement configuré. Consultez Configurer une base de données PostgreSQL source. |
L'emplacement de réplication n'existe pas. | Une erreur peut se produire lors de la récupération des données de capture des données modifiées (CDC) en cours si l'emplacement de réplication n'existe pas dans la base de données. Vérifiez que l'emplacement de réplication est correctement configuré. Consultez Configurer une base de données PostgreSQL source. |
L'emplacement de réplication est configuré avec un plug-in incorrect. | Cette erreur peut se produire si l'emplacement de réplication est configuré avec un plug-in autre que pgoutput . Vérifiez que l'emplacement de réplication est correctement configuré. Pour en savoir plus, consultez Base de données PostgreSQL source. |
L'emplacement de réplication est actif dans un autre processus. | Cette erreur peut se produire si l'emplacement de réplication est utilisé par un autre processus. Les emplacements de réplication ne peuvent être utilisés que par un seul processus à la fois. Assurez-vous de ne pas utiliser le même emplacement de réplication dans un autre processus que Datastream. |
La publication n'est pas configurée correctement. | Cette erreur peut se produire lorsque la publication n'est pas configurée pour exposer les tables incluses dans la configuration du flux. Vérifiez que la publication est correctement configurée. Consultez la section Configurer les informations concernant la base de données source pour le flux. |
La publication n'existe pas. | Cette erreur peut se produire si la publication n'existe pas dans la base de données. Vérifiez que la publication est correctement configurée. Consultez Configurer une base de données PostgreSQL source. |
Impossible de reprendre la réplication, car les fichiers WAL sont perdus. | Cette erreur peut se produire lorsque le processus de réplication est mis en pause pendant une longue période, ce qui entraîne la perte des fichiers WAL. Les flux ne doivent pas être mis en pause pendant des périodes qui approchent la période de conservation des fichiers WAL. Recréez le flux. |
La liste d'exclusion est basée sur la liste d'inclusion. | La liste d'inclusion est entièrement contenue dans la liste d'exclusion. Par conséquent, la liste des objets que Datastream extrait de la source est vide. Modifiez la sélection d'objets, puis réessayez. |
Datastream ne peut pas répliquer un schéma PostgreSQL. | Assurez-vous que Datastream dispose des autorisations nécessaires pour répliquer le schéma. |
Les transactions volumineuses sur la base de données source entraînent des problèmes de réplication et de synchronisation des données. | Si vous insérez, mettez à jour ou supprimez un nombre important d'enregistrements dans la base de données source, l'emplacement de réplication peut être surchargé par les événements correspondants. Datastream a besoin de temps pour lire et traiter ces événements. Étant donné que les emplacements de réplication PostgreSQL sont monothread, le traitement des autres modifications dans l'emplacement de réplication, y compris les modifications apportées aux données d'autres tables, est retardé jusqu'à ce que Datastream rattrape toutes les modifications dans l'emplacement de réplication. |
Les transactions volumineuses sur la base de données source entraînent un débit CDC faible. | Datastream n'est pas compatible avec la CDC multithread dans PostgreSQL. Pour contourner cette limitation et augmenter le débit de CDC, vous pouvez diviser la source en plusieurs flux, chacun avec son propre emplacement de publication et de réplication. Par exemple, vous pouvez créer un flux pour la plus grande table de votre base de données et un autre pour toutes les autres tables, ou un flux pour vos tables de priorité élevée et un autre pour les autres. Les cas d'utilisation peuvent varier. Vous devez donc déterminer ce qui est le plus pertinent dans votre scénario de CDC spécifique. Pour en savoir plus sur la création d'une publication, consultez Configurer une base de données PostgreSQL source. |
Événements non pris en charge supprimés avec le code de motif: BIGQUERY_TOO_MANY_PRIMARY_KEYS . |
Lorsque l'identité de la réplication PostgreSQL d'une table est définie sur FULL , Datastream traite toutes les colonnes de cette table comme des clés primaires. Si la table contient plus de 16 colonnes, cela ne respecte pas la limite de CDC BigQuery et entraîne une erreur. Pour résoudre ce problème, procédez comme suit :
|
Une erreur interne inattendue s'est produite. | Pour en savoir plus, contactez l'assistance Google. |
Erreurs SQL Server
Erreur | Procédure de dépannage |
---|---|
La CDC est désactivée pour la base de données DATABASE_NAME. | La capture de données modifiées (CDC) doit être activée pour la base de données. Datastream a besoin d'un accès en lecture direct aux journaux de transactions afin de répliquer les modifications en temps réel dans la base de données source et d'obtenir des informations de journal complètes. Activez la CDC pour la base de données, puis réessayez. Pour savoir comment activer la CDC pour une base de données, consultez Configurer une base de données SQL Server source. |
Tables avec CDC désactivée | La capture de données modifiées (CDC) doit être activée pour toutes les tables incluses dans le flux. Datastream a besoin d'un accès en lecture direct aux journaux des transactions afin de répliquer les modifications en temps réel dans les tables sources et d'obtenir des informations de journal complètes. Activez la CDC pour les tables incluses dans le flux, puis réessayez. Pour savoir comment activer la capture de données modifiées pour les tables sources, consultez Configurer une base de données SQL Server source. |
Autorisations manquantes. | Datastream ne dispose pas des autorisations nécessaires pour lire la source. Accordez les droits appropriés au compte utilisateur utilisé pour se connecter à votre base de données, puis réessayez. |
L'édition EDITION_NAME de SQL Server n'est pas compatible. | Datastream n'est pas compatible avec cette édition de SQL Server. Pour en savoir plus sur les éditions compatibles de SQL Server, consultez la page Présentation de SQL Server en tant que source. |
La version VERSION_NAME de SQL Server de l'édition Standard n'est pas compatible. | Datastream n'est pas compatible avec cette version de l'édition Standard de SQL Server. Pour en savoir plus sur les versions compatibles de SQL Server, consultez la section Présentation de SQL Server en tant que source. |
Échec de la configuration du CDC SQL Server. | La méthode CDC que vous avez sélectionnée n'est pas conforme à la configuration de votre base de données. Modifiez la méthode CDC, puis réessayez. |
Erreurs BigQuery
Erreur | Procédure de dépannage |
---|---|
BIGQUERY_UNSUPPORTED_PRIMARY_KEY_CHANGE, details: Failed to write to BigQuery due to an unsupported primary key change: adding primary keys to existing tables is not supported. |
Si la clé primaire change dans la source, vous devez supprimer la table dans BigQuery et relancer le remplissage en arrière. Il s'agit d'une limite de BigQuery, car il n'est pas possible de garantir la fusion correcte des nouveaux événements avec les lignes existantes si la clé primaire est différente. Pour en savoir plus, consultez Configurer une destination BigQuery. |
La table BigQuery de destination contient beaucoup plus d'enregistrements que la table source. | Cela peut se produire lorsque la table source ne possède pas de clé primaire. Dans ce cas, Datastream traite la table en mode d'écriture "append-only" (ajout uniquement), et chaque événement d'une ligne donnée apparaît sur une ligne distincte dans BigQuery. |
Les données sont dupliquées lors de la mise à jour en mode d'écriture Ajout uniquement. | Lorsque vous sélectionnez le mode d'écriture Ajout uniquement pour votre flux, vos données sont ajoutées dans BigQuery en tant que flux d'événements SELECT * FROM (SELECT *, row_number() OVER (PARTITION BY datastream_metadata.uuid) AS num FROM TABLE_NAME) WHERE num=1
|
Datastream est configuré pour le mode d'écriture de fusion, mais les modifications ne sont pas fusionnées dans BigQuery. | Vérifiez qu'une clé primaire est définie dans votre table source. BigQuery en a besoin pour fusionner les modifications dans la table de destination. Si aucune clé primaire n'est définie, envisagez d'en ajouter une dans la table source ou de destination. Pour ajouter une clé primaire dans votre table BigQuery de destination, procédez comme suit:
|
Impossible d'ajouter, de supprimer ou de modifier la définition d'une clé primaire pour une table déjà répliquée dans BigQuery. | Par défaut, Datastream ne permet pas d'ajouter une clé primaire à une table déjà répliquée dans BigQuery sans clé primaire ni de supprimer une clé primaire d'une table répliquée dans BigQuery avec une clé primaire. Vous pouvez toutefois modifier la définition de la clé primaire d'une table source répliquée dans BigQuery qui dispose déjà d'une clé primaire:
|
Étape suivante
- Pour savoir comment rechercher les problèmes potentiels de votre flux, consultez Dépannage d'un flux.
- Pour savoir comment configurer votre base de données source, consultez Sources.
- Pour savoir comment configurer votre destination BigQuery ou Cloud Storage, consultez la section Destinations.