Diagnostiquer les problèmes liés à SQL Server

Résoudre une erreur

Le processus de tâche de migration peut entraîner des erreurs pendant l'exécution.

  • Pour certaines erreurs, Database Migration Service réessaie automatiquement les opérations défectueuses pour poursuivre le processus de migration et éviter les interruptions. L'état de la tâche de migration passe à En cours d'exécution avec erreurs. Cet état indique que Database Migration Service continue de migrer les données non affectées par les erreurs.
  • Certaines erreurs ne peuvent pas être récupérées. Lorsque Database Migration Service rencontre une erreur irrécupérable, l'état de la tâche de migration passe à Échec. Dans ce cas, la tâche de migration doit être redémarrée une fois le problème résolu.

Pour résoudre une erreur, accédez à la tâche de migration concernée, affichez l'erreur et suivez la procédure décrite dans le message d'erreur. Vous pouvez également obtenir plus d'informations en consultant les journaux Cloud Monitoring de votre instance de destination Cloud SQL. Utilisez le lien Cloud Monitoring sur la page des détails de la tâche de migration.

Le tableau suivant contient quelques exemples de problèmes et la façon de les résoudre:

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 essayez d'importer des fichiers de sauvegarde à partir d'une version 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 section Bases de données source et de destination compatibles.

Recréez l'instance de destination Cloud SQL pour SQL Server avec 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 qui porte le même nom que l'une des bases de données incluses dans votre tâche de migration. Résolvez le conflit de dénomination. Consultez 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 requises. Ajoutez les autorisations manquantes au compte de service Database Migration Service. Consultez la page Contrôle des accès avec IAM.
Message d'erreur : Missing WAL file at Log Sequence Number (LSN) {log_number_here} Vos fichiers journaux de transactions utilisent peut-être des codes temporels d'époque incorrects par rapport à l'ordre des mises à jour qu'ils contiennent. Database Migration Service utilise des numéros de séquence de journal et des codes temporels d'époque pour contrôler l'ordre dans lequel les fichiers de journaux des transactions sont répliqués dans l'instance de destination Cloud SQL. Vérifiez et ajustez les codes temporels d'époque utilisés dans les noms de fichiers de vos derniers fichiers de journaux de transactions. Consultez la section Ajuster les noms de journaux de transactions défectueux.

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 qui porte le même nom que l'une des bases de données incluses dans votre tâche de migration.

Solutions possibles

Selon votre scénario de migration, il existe différentes façons de résoudre le problème des bases de données en double. Essayez l'une des opérations 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 deux bases de données différentes portent le même nom et que vous avez besoin d'elles toutes les deux dans votre destination Cloud SQL, vous pouvez renommer les dossiers et recréer la tâche de migration pour éviter le conflit de dénomination.

Procédez comme suit :

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

    Vous pouvez ajouter des bases de données à une tâche de migration existante, mais vous ne pouvez pas en supprimer. C'est pourquoi vous devez recréer l'ensemble de la tâche 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 continuer le job de migration. Consultez la section Supprimer une base de données dans la documentation Cloud SQL pour SQL Server.


Ajuster les noms des fichiers de journal des transactions pour les fichiers WAL hors séquence

Cause possible

Vos fichiers journaux de transactions utilisent peut-être des codes temporels d'époque incorrects par rapport à l'ordre des mises à jour qu'ils contiennent. Database Migration Service utilise des numéros de séquence de journal et des codes temporels 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 mal organisées. Attendez plusieurs minutes pour que le problème soit résolu 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 codes temporels d'époque dans les noms de vos fichiers journaux de transactions.

Procédez comme suit :

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

    Accéder à la page 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 de journaux de transactions et vérifiez si leurs noms de fichiers contiennent des codes temporels d'époque corrects.
  4. Si vous remarquez que les fichiers de journaux de transactions récents utilisent des noms avec des codes temporels d'époque dans le désordre, accédez à votre bucket Cloud Storage et renommez le fichier. Database Migration Service détecte automatiquement la modification et tente d'importer les fichiers de journaux des transactions concernés.
  5. Amazon RDS uniquement: il est possible que certains fichiers de journaux de transactions aient été ignorés lors du processus d'exportation vers S3. Essayez de réexécuter la fonction d'exportation du journal des transactions pour la période correspondant aux fichiers WAL manquants.