Diagnostiquer les problèmes liés à SQL Server

Résoudre une erreur

Le processus du job de migration peut générer des erreurs lors de l'exécution.

  • Pour certaines erreurs, Database Migration Service tente automatiquement de relancer les opérations défectueuses afin de poursuivre le processus de migration et d'éviter les interruptions. L'état du job de migration passe à En cours d'exécution avec des erreurs. Cet état indique que Database Migration Service continue de migrer les données non affectées par les erreurs.
  • Certaines erreurs sont irrécupérables. Lorsque Database Migration Service rencontre une erreur irrécupérable, l'état du job de migration passe à Échec. Dans ce cas, le job de migration doit être redémarré une fois le problème est résolu.

Pour résoudre une erreur, accédez au job de migration concerné, affichez l'erreur et suivez les étapes décrites dans le message d'erreur. Vous pouvez également obtenir plus de détails en consultant les journaux Cloud Monitoring de votre instance de destination Cloud SQL. Utilisez le lien Cloud Monitoring sur la page des détails du job de migration.

Le tableau suivant présente quelques exemples de problèmes et de solutions possibles :

Pour ce problème... Le problème peut être... Essayez ce qui suit...
Message d'erreur : The BAK file's database major version number {backup_version_num} must not be higher than the current database major version number {your Cloud SQL for SQL Server version number}. Vous tentez d'importer des fichiers de sauvegarde à partir d'une version de SQL Server ultérieure à celle que vous utilisez dans votre instance de destination Cloud SQL pour SQL Server.

Database Migration Service n'est compatible avec les migrations entre versions que si vous respectez les consignes de compatibilité entre versions. Consultez la page Bases de données source et de destination acceptées.

Recréez l'instance de destination Cloud SQL pour SQL Server afin d'utiliser une version ultérieure de SQL Server, puis réessayez le processus de migration avec votre nouvelle instance.
Message d'erreur : The following database already exists in destination: {database_name}. Votre instance de destination Cloud SQL contient déjà une base de données portant le même nom que l'une des bases de données incluses dans votre job de migration. Supprimez le conflit de nommage. Consultez la section Erreur : la base de données existe déjà dans la destination.
Message d'erreur : Permission denied for {cloudsql.databases.get} on the Database Migration Service service account. Le compte de service Database Migration Service ne dispose pas des autorisations nécessaires. Ajoutez les autorisations manquantes au compte de service Database Migration Service. Consultez la section Contrôle des accès avec IAM.
Message d'erreur : Missing WAL file at Log Sequence Number (LSN) {log_number_here} Vos fichiers journaux des transactions utilisent peut-être des horodatages d'époque incorrects par rapport à l'ordre des mises à jour qu'ils contiennent. Database Migration Service utilise des numéros de séquence de journaux et des horodatages d'époque pour contrôler l'ordre dans lequel les fichiers journaux des transactions sont répliqués dans l'instance de destination Cloud SQL. Vérifiez et ajustez les horodatages d'époque utilisés dans les noms de fichiers de vos derniers fichiers journaux des transactions. Consultez la section Ajuster les noms de fichiers journaux des transactions défectueux.
Lorsque vous migrez des bases de données sélectionnées et que le job de migration ne parvient pas à répliquer les données dans une ou plusieurs bases de données, l'état Échec s'affiche dans la liste des bases de données. Diverses erreurs de job de migration.

Dans la colonne Erreurs , cliquez sur Afficher les erreurs , puis corrigez-les. Une fois les erreurs corrigées, cliquez sur Redémarrer.

Erreur : la base de données existe déjà dans la destination

Le message d'erreur suivant s'affiche : The following database already exists in destination: {database_name}.

Cause possible

Votre instance de destination Cloud SQL contient déjà une base de données portant le même nom que l'une des bases de données incluses dans votre job de migration.

Solutions possibles

Selon votre scénario de migration, vous pouvez résoudre le problème des bases de données en double de différentes manières. Essayez l'une des actions suivantes :

Renommez le bucket Cloud Storage source pour migrer votre base de données sous un autre nom.

Le nom de la base de données que Database Migration Service crée dans votre instance Cloud SQL de destination est dérivé des noms de dossiers dans Cloud Storage où vous stockez les fichiers de sauvegarde. Si vous avez deux bases de données différentes qui partagent le même nom et que vous en avez besoin dans votre destination Cloud SQL, vous pouvez renommer les dossiers et recréer le job de migration pour éviter le conflit de nommage.

Procédez comme suit :

  1. Créez des dossiers pour la base de données source affectée par le conflit de nommage. Consultez la section Stocker des fichiers de sauvegarde dans un bucket Cloud Storage .
  2. Recréez votre job de migration. Consultez la section Créer un job de migration.

    Vous pouvez ajouter de nouvelles bases de données à un job de migration existant, mais vous ne pouvez pas en supprimer. C'est pourquoi vous devez recréer l'intégralité du job de migration.

Supprimez la base de données en double de votre instance Cloud SQL pour SQL Server.

Si la base de données de votre instance de destination Cloud SQL est un doublon, vous pouvez la supprimer de votre instance et poursuivre le job de migration. Consultez la section Supprimer une base de données dans la documentation Cloud SQL pour SQL Server.


Ajuster les noms de fichiers journaux des transactions pour les fichiers WAL hors ordre

Cause possible

Vos fichiers journaux des transactions utilisent peut-être des horodatages d'époque incorrects par rapport à l'ordre des mises à jour qu'ils contiennent. Database Migration Service utilise des numéros de séquence de journaux et des horodatages d'époque pour contrôler l'ordre dans lequel les fichiers journaux des transactions sont répliqués dans l'instance de destination Cloud SQL.

Solutions possibles

Vos importations de fichiers peuvent être retardées ou hors ordre. Patientez quelques minutes pour que le problème se résolve ou vérifiez si des fichiers sont manquants dans votre bucket Cloud Storage.

Si le problème n'est pas résolu, vérifiez et ajustez les horodatages d'époque dans les noms de vos fichiers journaux des transactions.

Procédez comme suit :

  1. Consultez la liste de vos opérations d'importation de journaux des transactions sur l'instance de destination Cloud SQL pour SQL Server. Dans la Google Cloud console, accédez à la page Instances Cloud SQL.

    Accéder aux instances Cloud SQL

  2. Cliquez sur Afficher toutes les opérations > Afficher les journaux d’erreurs SQL Server.
  3. Affichez toutes les opérations d'importation pour les fichiers journaux des transactions et vérifiez si leurs noms de fichiers contiennent des horodatages d'époque corrects.
  4. Si vous remarquez que les fichiers journaux des transactions récents utilisent des noms avec des horodatages d'époque hors ordre, accédez à votre bucket Cloud Storage et renommez le fichier. Database Migration Service détecte automatiquement la modification et tente d'importer les fichiers journaux des transactions pertinents.
  5. Amazon RDS uniquement : il est possible que certains fichiers journaux des transactions aient été manqués lors de l'exportation vers S3. Essayez de réexécuter la fonction d'exportation des journaux des transactions pour la période autour des fichiers WAL manquants.