Cette page liste les erreurs connues et les étapes de dépannage recommandées pour :
Erreurs de tâches de migration
Le processus de tâche de migration peut générer des erreurs lors de 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. Le job de migration reprend automatiquement une fois ces erreurs corrigées.
- Certaines erreurs sont irrécupérables, comme les erreurs de réplication des données. Vous devez redémarrer le job de migration une fois ces erreurs corrigées.
Lorsqu'une erreur se produit, l'état du job de migration passe à Failed
et le sous-état reflète le dernier état avant l'échec.
Pour résoudre une erreur, accédez à la tâche de migration ayant échoué pour afficher l'erreur, puis suivez les étapes décrites dans le message d'erreur.
Pour afficher plus de détails sur l'erreur, accédez à Cloud Monitoring à l'aide du lien sur le job de migration. Les journaux sont filtrés en fonction du job de migration spécifique.
Le tableau suivant contient quelques exemples de problèmes et leur solution :
Problème constaté | Causes possibles | Solutions possibles |
---|---|---|
Message d'erreur : Database Migration Service can't set up a tunnel to be
connected to the bastion host .
|
Database Migration Service n'a pas pu accéder à l'hôte bastion ou celui-ci n'accepte pas les connexions. | Vérifiez les paramètres du tunnel SSH de transfert dans le profil de connexion source et la configuration du serveur de tunnel SSH, puis réessayez. |
Message d'erreur : Database Migration Service can't connect to the database ou Database Migration Service private connectivity error, cannot connect to the database .
|
Database Migration Service n'a pas pu établir de connexion à la base de données Oracle source. |
Vérifiez que vous pouvez accéder à la base de données source depuis votre projet. Vérifiez les paramètres liés à votre méthode de configuration de la connectivité source. Si un code d'erreur Oracle spécifique est inclus, par exemple
|
Message d'erreur : Archiving mode is not ARCHIVELOG . |
Votre base de données source ne s'exécute pas en mode ARCHIVELOG . |
Configurez votre base de données source pour qu'elle utilise le mode ARCHIVELOG .
Pour en savoir plus, consultez
Configurer votre base de données Oracle source.
|
Message d'erreur : Supplemental logging ("ALL COLUMN LOGGING") isn't turned
on for the tables listed below .
|
La journalisation complémentaire n'est pas activée pour votre base de données source. | Activez les données de journalisation supplémentaires et définissez leur mode sur ALL .
Pour en savoir plus, consultez
Configurer votre base de données Oracle source.
|
Message d'erreur : No Archive Log Files were found in the source . |
Database Migration Service ne lit que les journaux d'archive fermés. Aucun journal n'a été trouvé dans la base de données source. |
Si la base de données n'a aucune opération d'écriture active, vous devrez peut-être effectuer au moins une opération |
Message d'erreur : We're missing the necessary permissions to read
from the source .
|
Le compte utilisateur de migration dans votre base de données source ne dispose pas des autorisations requises. |
Database Migration Service se connecte à votre source en tant que compte utilisateur que vous configurez dans le profil de connexion source. Ce compte doit disposer d'un ensemble spécifique d'autorisations (par exemple, Assurez-vous que le compte utilisateur de migration dispose des droits nécessaires. Pour en savoir plus, consultez Configurer votre base de données Oracle source. |
Message d'erreur : Unable to connect to the destination database . |
Un problème est survenu lors de la connexion à la base de données de destination. | Vérifiez que vous pouvez accéder à la base de données de destination depuis votre projet. Vérifiez les paramètres liés à votre méthode de configuration de la connectivité de destination. |
Message d'erreur : The following tables don't exist in the destination database: {table_names} . |
Les tables listées que vous essayez de migrer n'existent pas dans la base de données de destination. | Database Migration Service crée la table et les définitions nécessaires lorsque vous convertissez votre schéma source. |
Message d'erreur : password authentication failed for user {username} . |
Le nom d'utilisateur ou le mot de passe de la base de données de destination sont mal configurés. | Assurez-vous que le profil de connexion PostgreSQL de destination est correctement configuré avec le bon nom d'utilisateur et le bon mot de passe. |
Message d'erreur : The following tables in the destination database
don't have primary keys: {table_names} .
|
Les tables listées dans le message d'erreur existent dans la base de données de destination, mais il leur manque des clés primaires. |
Les espaces de travail de conversion Database Migration Service ajoutent automatiquement des clés primaires aux tables qui n'en ont pas lorsque vous convertissez le schéma. Si vous utilisez d'anciens espaces de travail de conversion, vous devez créer manuellement les clés primaires dans votre destination. Pour en savoir plus, consultez Anciens espaces de travail de conversion. |
Avertissement : The following tables have foreign keys: {table_names} . |
Les tables listées dans le message d'erreur existent dans la base de données de destination, mais elles comportent des clés étrangères. |
Database Migration Service ne réplique pas les données de manière transactionnelle. Il est donc possible que les tables soient migrées dans le désordre. Si des clés étrangères sont présentes et qu'une table enfant qui utilise une clé étrangère est migrée avant son parent, vous risquez de rencontrer des erreurs de réplication. Pour éviter de tels problèmes d'intégrité des données, ignorez les clés étrangères en utilisant l'option |
Message d'erreur : Unable to resume replication as log position is lost . |
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. | Un job de migration ne doit pas être mis en pause pendant une durée supérieure (ou proche) à la période de conservation des journaux. Si la position du journal est perdue, vous devez recréer le job de migration. |
Message d'erreur : ORA-00942: table or view does not exist . |
Cette erreur peut se produire en raison de la mise en cache sur le serveur Oracle. | Recréez l'utilisateur de la base de données pour résoudre le problème de mise en cache. |
Le job de migration reste dans la phase de vidage complet et ne passe pas à la phase de capture des données modifiées (CDC). | Database Migration Service effectue toujours un vidage complet pour certaines tables, ou une ou plusieurs tables ne peuvent pas terminer le vidage complet en raison d'erreurs. |
|
Problèmes de connectivité
Cette section liste et décrit les étapes de dépannage pour les éventuels problèmes de connectivité réseau.
Impossible de se connecter à la base de données de destination : EOF
L'exécution d'un test de connectivité renvoie le message d'erreur [DATABASE] unable to connect to the destination database: EOF
.
Cause possible : le rattachement de service est mal configuré.
À essayer : assurez-vous que enable_proxy_protocol
est défini sur false
dans le
fichier de configuration Terraform du rattachement de service.
Le protocole proxy n'est accepté que pour les serveurs HTTP tels que NGINX et Apache.
Lorsque vous utilisez gcloud
pour créer la configuration Private Service Connect, le protocole proxy est désactivé par défaut.
Délai de connexion expiré, connexion refusée
L'exécution du test de connectivité échoue ou expire. Cela est probablement dû à un routage mal configuré dans la configuration Private Service Connect. Plusieurs raisons peuvent expliquer ce problème.
Cause possible : il manque une règle de pare-feu qui autorise la plage CIDR NAT Private Service Connect à accéder au sous-réseau Private Service Connect où se trouve le bastion, en particulier l'interface nic0
de la VM bastion.
À essayer : assurez-vous que votre règle d'administration ne limite pas les règles de pare-feu internes, comme la règle de pare-feu psc_sp_in_fw
définie dans l'exemple de script Terraform pour
configurer la connectivité IP privée de destination pour les instances Cloud SQL non compatibles avec PSC.
Cause possible : le proxy est hors service. Aucun écouteur n'est disponible sur le port fourni. La connexion est donc suspendue.
À essayer : vous pouvez essayer d'établir une connexion SSH à la VM bastion et de rechercher le proxy à l'aide de la commande suivante :
netstat -tunalp | grep PORT
Analysez les réponses à la commande :
Si vous obtenez une réponse vide, cela signifie que le proxy est hors service. Essayez d'exécuter les commandes suivantes :
sudo su; cd /
et vérifiez si le serveur Dante est installé en exécutantsudo dpkg -s dante-server
:Si le proxy est installé, le message suivant s'affiche :
Status: install ok installed
Si le proxy n'est pas installé, le problème est probablement dû à l'absence de routeur. Ajoutez un routeur et vérifiez si vous pouvez télécharger le proxy en exécutant
apt-get install dante-server
.
Si le proxy est en cours d'exécution et écoute sur le port fourni, essayez d'ouvrir une connexion en procédant comme suit :
Installez le client PostgreSQL :
sudo apt-get install postgresql-client
.Connectez-vous à la base de données PostgreSQL :
psql -h 127.0.0.1 -p PORT -U DBUSERNAME -W
(vous serez invité à saisir le mot de passe).Remplacez les éléments suivants :
PORT
: numéro de port de la base de données.DBUSERNAME
: nom d'utilisateur utilisé pour se connecter à la base de données PostgreSQL
Installez le client Telnet :
sudo apt-get install telnet
Connectez-vous au client Telnet :
telnet 127.0.0.1 PORT
Remplacez
PORT
par le numéro de port de la base de données.
En fonction des résultats des commandes :
Si les commandes ne parviennent pas à ouvrir une connexion, essayez de consulter les journaux du proxy pour trouver la cause du problème. La cause première peut varier en fonction de la configuration de l'instance Cloud SQL.
Si la connexion est ouverte à l'aide de telnet, mais qu'elle se bloque dans le client, le problème est probablement lié au routage de l'adresse IP du bastion. Sur votre VM, saisissez
ip route
dans le terminal. Vérifiez si vous pouvez trouver une règle de routage qui route les connexions vers l'adresse IP privée de l'instance Cloud SQL à l'aide de l'nic
secondaire (nic1
, adresse IPDB_SUBNETWORK_GATEWAY
).
Cause possible : le rattachement de service n'accepte pas la connexion au point de terminaison provenant de Database Migration Service. Le rattachement de service contient une liste des projets acceptés, et le projet Database Migration Service n'y figure pas.
Solutions à essayer : Pour résoudre le problème, essayez l'une des solutions suivantes :
Dans la console Google Cloud , accédez à Private Service Connect.
Accéder à Private Service Connect
Dans l'onglet Services publiés, acceptez la connexion de Database Migration Service pour votre rattachement de service (si elle est en attente).
Ajoutez le projet demandeur aux projets autorisés sur le rattachement de service (s'il est refusé).
Pour savoir comment ajouter un projet autorisé dans Terraform, consultez la documentation Terraform.
Pour en savoir plus sur l'ajout d'un projet autorisé dans
gcloud
, consultez la documentation de référence de Google Cloud CLI.
Si le problème persiste, recréez le profil de connexion.
Supprimez le profil de connexion associé à la connectivité Private Service Connect, puis recréez-le.
Résoudre les erreurs Oracle SCAN
Cette section décrit les problèmes potentiels que vous pouvez rencontrer lors de la migration depuis des sources Oracle Real Application Clusters (RAC) à l'aide de la fonctionnalité Single Client Access Name (SCAN).
Impossible d'établir une connexion à une base de données Oracle SCAN
L'exécution du test de connectivité échoue ou expire.
Cause possible : vous essayez peut-être d'établir une connectivité directement à votre base de données source Oracle SCAN. Database Migration Service n'est pas compatible avec la connectivité directe aux bases de données à l'aide de la fonctionnalité SCAN dans les environnements Oracle RAC.
Solutions à essayer : Pour résoudre le problème, essayez l'une des solutions suivantes :
Connectez-vous directement à l'un des nœuds.
Utilisez le gestionnaire de connexion Oracle.
Créez une configuration de connectivité privée à l'aide d'une solution de proxy inverse telle que HAProxy.