Cette page liste les erreurs connues et les étapes de dépannage recommandées pour:
Erreurs de tâche de migration
Le processus de tâche de migration peut entraîner 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. La tâche de migration reprend automatiquement une fois ces erreurs corrigées.
- Certaines erreurs sont irrécupérables, comme les erreurs de réplication de données. Vous devez redémarrer le job de migration une fois ces erreurs corrigées.
Lorsqu'une erreur se produit, l'état de la tâche 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 la procédure décrite dans le message d'erreur.
Pour en savoir plus sur l'erreur, accédez à Cloud Monitoring à l'aide du lien figurant sur la tâche de migration. Les journaux sont filtrés en fonction de la tâche de migration spécifique.
Le tableau suivant contient quelques exemples de problèmes et la manière de les résoudre:
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 connexion à la base de données Oracle source. |
Vérifiez que vous pouvez accéder à la base de données source à partir de 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 complémentaires ne sont pas activées pour votre base de données source. | Activez les données de journal supplémentaires et définissez son 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 ne comporte 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 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 les clés primaires sont manquantes. |
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 d'anciens espaces de travail de conversion, vous devez créer manuellement les clés primaires dans votre destination. Pour en savoir plus, consultez la section 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 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 sa table parente, 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 à 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 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 plus de (ou presque) la durée de conservation des journaux. Si la position du journal est perdue, vous devez recréer la tâche 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. |
La tâche de migration reste dans la phase de vidage complet et ne passe pas à la phase de capture des données modifiées (CDC, Change Data Capture). | 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 de connectivité réseau potentiels.
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é.
Essayez ceci:assurez-vous que enable_proxy_protocol
est défini sur false
dans le
fichier de configuration Terraform de l'attachement 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 de Private Service Connect. Plusieurs raisons peuvent expliquer ce problème.
Cause possible:une règle de pare-feu permettant à la plage CIDR NAT Private Service Connect d'accéder au sous-réseau Private Service Connect où se trouve l'hôte bastion, en particulier l'interface nic0
de la VM bastion, est manquante.
Essayez ceci:assurez-vous que votre règle d'administration n'entrave 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 le PSC.
Cause possible:le proxy est en panne. Il n'y a pas d'écouteur sur le port fourni. La connexion est donc bloquée.
À 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, 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 installed
Si le proxy n'est pas installé, le problème vient 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 qu'il écoute sur le port fourni, essayez d'établir une connexion avec lui 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 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 de connexion, essayez d'examiner les journaux du proxy pour identifier la cause du problème. La cause 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 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. Essayez de 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 l'nic
secondaire (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 des projets acceptés, et le projet Database Migration Service n'y figure pas.
Essayez les solutions suivantes :
Dans 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 pièce jointe de service (si elle est en attente).
Ajoutez le projet à la liste d'autorisations du rattachement de service (s'il est refusé).
Pour en savoir plus sur l'ajout d'un projet de liste d'autorisation dans Terraform, consultez la documentation Terraform.
Pour en savoir plus sur l'ajout d'un projet de liste d'autorisation 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 pourriez 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 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 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.
Essayez les 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.