Diagnostica dei problemi per SQL Server

Risolvi un errore

Il processo del job di migrazione potrebbe generare errori durante il runtime.

  • Per alcuni errori, Database Migration Service riprova automaticamente le operazioni difettose per continuare il processo di migrazione ed evitare interruzioni. Lo stato del job di migrazione diventa In esecuzione con errori. Questo stato indica che Database Migration Service continua a eseguire la migrazione dei dati non interessati dagli errori.
  • Alcuni errori non sono recuperabili. Quando Database Migration Service rileva un errore irreversibile, lo stato del job di migrazione cambia in Non riuscito. In questi scenari, il job di migrazione deve essere riavviato dopo la risoluzione del problema.

Per risolvere un errore, vai al job di migrazione interessato, visualizza l'errore e segui i passaggi descritti nel messaggio di errore. Puoi anche ottenere maggiori dettagli visualizzando i log di Cloud Monitoring per l'istanza Cloud SQL di destinazione. Utilizza il link di Cloud Monitoring nella pagina dei dettagli del job di migrazione.

Nella tabella seguente sono riportati alcuni esempi di problemi e come possono essere risolti:

Per questo problema… Il problema potrebbe essere… Prova…
Messaggio di errore: 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}. Stai tentando di importare file di backup da una versione di SQL Server successiva a quella che utilizzi nell'istanza di destinazione di Cloud SQL per SQL Server.

Database Migration Service supporta le migrazioni tra versioni da versioni precedenti a versioni successive solo se rispetti le linee guida sulla compatibilità tra versioni. Consulta Database di origine e di destinazione supportati.

Ricrea l'istanza di destinazione Cloud SQL per SQL Server per utilizzare una versione di SQL Server successiva e riprova la procedura di migrazione con la nuova istanza.
Messaggio di errore: The following database already exists in destination: {database_name}. L'istanza Cloud SQL di destinazione contiene già un database che utilizza lo stesso nome di uno dei database inclusi nel job di migrazione. Rimuovi il conflitto di nomi. Consulta Errore: il database esiste già nella destinazione
Messaggio di errore: Permission denied for {cloudsql.databases.get} on the Database Migration Service service account. Al account di servizio Database Migration Service mancano delle autorizzazioni. Aggiungi le autorizzazioni mancanti al account di servizio Database Migration Service. Consulta Controllo dell'accesso con IAM.
Messaggio di errore: Missing WAL file at Log Sequence Number (LSN) {log_number_here} I file di log delle transazioni potrebbero utilizzare timestamp epoch errati rispetto all'ordine degli aggiornamenti che contengono. Database Migration Service utilizza i numeri di sequenza dei log e i timestamp epoch per controllare l'ordine in cui i file di log delle transazioni vengono replicati nell'istanza Cloud SQL di destinazione. Controlla e modifica i timestamp epoch utilizzati nei nomi dei file di log delle transazioni più recenti. Consulta Modifica i nomi dei log delle transazioni errati.
Quando esegui la migrazione dei database selezionati e il job di migrazione non riesce a replicare i dati in uno o più database, nell'elenco dei database viene visualizzato lo stato Non riuscito. Vari errori dei job di migrazione.

Nella colonna Errori, fai clic su Visualizza errori e correggili. Dopo aver corretto gli errori, fai clic su Riavvia.

Errore: il database esiste già nella destinazione

Viene visualizzato il seguente messaggio di errore: The following database already exists in destination: {database_name}.

Il problema potrebbe essere

L'istanza Cloud SQL di destinazione contiene già un database che utilizza lo stesso nome di uno dei database inclusi nel job di migrazione.

Da provare

A seconda dello scenario di migrazione, esistono diversi modi per risolvere il problema dei database duplicati. Prova una delle seguenti azioni:

Rinomina il bucket Cloud Storage di origine per eseguire la migrazione del database con un nome diverso.

Il nome del database creato da Database Migration Service nell'istanza Cloud SQL di destinazione deriva dai nomi delle cartelle in Cloud Storage in cui archivi i file di backup. Se hai due database diversi con lo stesso nome e hai bisogno di entrambi nella destinazione Cloud SQL, puoi rinominare le cartelle e ricreare il job di migrazione per evitare il conflitto di nomi.

Segui questi passaggi:

  1. Crea nuove cartelle per il database di origine interessato dal conflitto di denominazione. Consulta Archivia i file di backup in un bucket Cloud Storage .
  2. Ricrea il job di migrazione. Consulta Crea un job di migrazione.

    Puoi aggiungere nuovi database a un job di migrazione esistente, ma non puoi rimuovere database da un job di migrazione. Ecco perché devi ricreare l'intero job di migrazione.

Elimina il database duplicato dall'istanza Cloud SQL per SQL Server.

Se il database nell'istanza Cloud SQL di destinazione è un duplicato, puoi eliminarlo dall'istanza e continuare con il job di migrazione. Consulta Elimina un database nella documentazione di Cloud SQL per SQL Server.


Regola i nomi dei file di log delle transazioni per i file WAL non in ordine

Il problema potrebbe essere

I file di log delle transazioni potrebbero utilizzare timestamp epoch errati rispetto all'ordine degli aggiornamenti che contengono. Database Migration Service utilizza i numeri di sequenza dei log e i timestamp epoch per controllare l'ordine in cui i file di log delle transazioni vengono replicati nell'istanza Cloud SQL di destinazione.

Da provare

I caricamenti dei file potrebbero subire ritardi o non essere in ordine. Attendi qualche minuto per consentire la risoluzione del problema o controlla se nel bucket Cloud Storage mancano dei file.

Se il problema persiste, verifica e modifica i timestamp epoch nei nomi dei file di log delle transazioni.

Segui questi passaggi:

  1. Controlla l'elenco delle operazioni di importazione del log delle transazioni nell'istanza Cloud SQL per SQL Server di destinazione. Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Fai clic su Visualizza tutte le operazioni > Visualizza i log degli errori del server SQL.
  3. Visualizza tutte le operazioni di importazione per i file di log delle transazioni e verifica se i nomi dei file contengono timestamp epoch corretti.
  4. Se noti che i file di log delle transazioni recenti utilizzano nomi con timestamp epoch non in ordine, vai al bucket Cloud Storage e rinomina il file. Database Migration Service rileva automaticamente la modifica e tenta di importare i file di log delle transazioni pertinenti.
  5. Solo Amazon RDS: è possibile che alcuni file di log delle transazioni siano stati persi durante il processo di esportazione in S3. Prova a eseguire nuovamente la funzione di esportazione del log delle transazioni per il periodo relativo ai file WAL mancanti.