Cette page liste les erreurs connues et les étapes de dépannage recommandées pour :
Erreurs de job de migration
Le processus de job 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 ne peuvent pas être récupérées, 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 au job 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 figurant dans le job de migration. Les journaux sont filtrés en fonction du job de migration spécifique.
Le tableau suivant présente quelques exemples de problèmes et de solutions possibles :
| 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 l'hôte bastion 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 connectivité avec 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 la section
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.
|
Les données de journal supplémentaires ne sont pas activées dans votre base de données source. | Activez les données de journal supplémentaires et définissez leur mode sur ALL.
Pour en savoir plus, consultez la section
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, et aucun journal n'a été trouvé dans la base de données source. |
Si la base de données n'a pas d'opérations d'écriture actives, 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 de 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 a besoin 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 la section 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 de 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 des espaces de travail de conversion hérités, vous devez créer manuellement les clés primaires dans votre destination. Pour en savoir plus, consultez la section Espaces de travail de conversion hérités. |
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 . Les tables peuvent donc être 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 pouvez rencontrer des erreurs de réplication. Pour éviter de tels problèmes d'intégrité des données, ignorez les clés étrangères à l'aide de
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 mis en pause pendant une longue période, ce qui entraîne la perte de la position du journal. | Un job de migration ne doit pas être mis en pause pendant une durée supérieure (ou proche) de 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 problèmes potentiels 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é.
Solutions possibles : 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 compatible qu'avec 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.
Expiration du délai de connexion, connexion refusée
Le test de connectivité échoue ou expire. Cela est très probablement dû à un routage mal configuré dans la configuration Private Service Connect. Ce problème peut avoir plusieurs causes.
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.
Solutions possibles : assurez-vous que votre règle d'administration ne limite pas les règles de pare-feu internes, telles que 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 AlloyDB pour PostgreSQL non compatibles avec PSC.
Cause possible : le proxy est en panne. Aucun écouteur n'est disponible sur le port fourni. La connexion est donc suspendue.
Solutions possibles : vous pouvez essayer d'établir une connexion SSH à la VM bastion et 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, le proxy est en panne. 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 installedSi le proxy n'est pas installé, le problème est probablement dû à un routeur manquant. 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 êtes 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 telnetConnectez-vous au client telnet :
telnet 127.0.0.1 PORTRemplacez
PORTpar le numéro de port de la base de données.
Selon les résultats des commandes :
Si les commandes ne parviennent pas à ouvrir une connexion, essayez de consulter les journaux du proxy pour identifier la cause première. La cause première peut varier en fonction de la configuration de l'instance AlloyDB pour PostgreSQL.
Si la connexion est ouverte à l'aide de telnet, mais qu'elle est suspendue dans le client, le problème est probablement lié au routage de l'adresse IP du bastion. Sur votre VM, saisissez
ip routedans le terminal. Vérifiez si vous pouvez trouver une règle de routage qui achemine les connexions vers l'adresse IP privée de l'instance AlloyDB pour PostgreSQL à l'aide de lanicsecondaire (nic1, l'adresse IPDB_SUBNETWORK_GATEWAY).
Cause possible : le rattachement de service n'accepte pas la connexion de point de terminaison provenant de Database Migration Service. Le rattachement de service contient une liste de projets acceptés, et le projet Database Migration Service n'est pas inclus dans la liste.
Solutions possibles : pour résoudre le problème, essayez l'une des solutions suivantes :
Dans la Google Cloud console, 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 en savoir plus sur l'ajout d'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 à partir de sources Oracle Real Application Clusters (RAC) à l'aide de la fonctionnalité Single Client Access Name (SCAN).
Impossible d'établir une connectivité avec une base de données Oracle SCAN
Le test de connectivité échoue ou expire.
Cause possible : vous essayez peut-être d'établir une connectivité directement avec 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 possibles : pour résoudre le problème, essayez l'une des solutions suivantes :
Connectez-vous directement à l'un des nœuds.
Utilisez le Oracle Connection Manager.
Créez une configuration de connectivité privée à l'aide d'une solution de proxy inverse telle que HAProxy.