Risolvere un problema
Il processo del job di migrazione potrebbe generare errori durante l'esecuzione.
- Per alcuni errori, Database Migration Service riprova automaticamente le operazioni con errori per continuare la procedura di migrazione ed evitare interruzioni. Lo stato del job di migrazione diventa In esecuzione con errori. Questo stato rappresenta il fatto che Database Migration Service continua a eseguire la migrazione dei dati non interessati dagli errori.
- Alcuni errori non sono recuperabili. Quando il servizio di migrazione del database rileva un errore non recuperabile, lo stato del job di migrazione diventa Non riuscito. In questi casi, il job di migrazione deve essere riavviato dopo la risoluzione del problema.
Per risolvere un problema, 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 di destinazione Cloud SQL. Utilizza il link a Cloud Monitoring nella pagina dei dettagli del job di migrazione.
Nella tabella seguente puoi trovare alcuni esempi di problemi e come possono essere risolti:
Per questo problema… | Il problema potrebbe essere… | Prova a fare così… |
---|---|---|
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 utilizzata nell'istanza di destinazione Cloud SQL per SQL Server.
Database Migration Service supporta le migrazioni tra versioni da versioni precedenti a versioni successive solo se soddisfi le linee guida sulla compatibilità tra versioni. Consulta Database di origine e destinazione supportati. |
Ricrea l'istanza di destinazione Cloud SQL per SQL Server per utilizzare una versione successiva di SQL Server e riprova la procedura di migrazione con la nuova istanza. |
Messaggio di errore:
The following database already exists in destination: {database_name} .
|
L'istanza di destinazione Cloud SQL contiene già un database che utilizza lo stesso nome di uno dei database inclusi nel job di migrazione. | Rimuovi il conflitto di denominazione. Consulta Errore: il database esiste già nella destinazione |
Messaggio di errore:
Permission denied for {cloudsql.databases.get} on the Database Migration Service service account. |
Nell'account di servizio Database Migration Service mancano le autorizzazioni. | Aggiungi le autorizzazioni mancanti all'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 non corretti nell'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 dei log delle transazioni vengono replicati nell'istanza di destinazione Cloud SQL. | Controlla e modifica i timestamp epoch utilizzati nei nomi dei file dei log delle transazioni più recenti. Consulta Modificare i nomi dei log delle transazioni con errori. |
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 di destinazione Cloud SQL contiene già un database che utilizza lo stesso nome di uno dei database inclusi nel job di migrazione.
Cose 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 viene ricavato dai nomi delle cartelle in Cloud Storage in cui vengono archiviati i file di backup. Se hai due database diversi che condividono lo stesso nome e ne hai bisogno entrambi nella destinazione Cloud SQL, puoi rinominare le cartelle e ricreare il job di migrazione per evitare il conflitto di nomi.
Procedi nel seguente modo:
- Crea nuove cartelle per il database di origine interessato dal conflitto di nomi. Consulta Archiviare i file di backup in un bucket Cloud Storage .
- Ricrea il job di migrazione. Vedi
Creare un job di migrazione.
Puoi aggiungere nuovi database a un job di migrazione esistente, ma non puoi rimuovere i database da un job di migrazione. Per questo motivo, devi ricreare l'intero job di migrazione.
Elimina il database duplicato dall'istanza Cloud SQL per SQL Server.
Se il database nell'istanza di destinazione Cloud SQL è un duplicato, puoi eliminarlo dall'istanza e continuare con il job di migrazione. Consulta Eliminare un database nella documentazione di Cloud SQL per SQL Server.
Modificare i nomi dei file di log delle transazioni per i file WAL fuori sequenza
Il problema potrebbe essere
I file di log delle transazioni potrebbero utilizzare timestamp epoch non corretti nell'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 dei log delle transazioni vengono replicati nell'istanza di destinazione Cloud SQL.
Cose da provare
I caricamenti dei file potrebbero subire ritardi o non essere in ordine. Attendi alcuni minuti per consentire la risoluzione del problema o controlla se mancano file nel tuo bucket Cloud Storage.
Se il problema persiste, verifica e modifica i timestamp epoch nei nomi dei file dei log delle transazioni.
Procedi nel seguente modo:
- Controlla l'elenco delle operazioni di importazione dei log delle transazioni nell'istanza Cloud SQL per SQL Server di destinazione. Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Fai clic su Visualizza tutte le operazioni > Visualizza i log degli errori di SQL Server.
- Visualizza tutte le operazioni di importazione per i file di log delle transazioni e verifica se i nomi dei file contengono timestamp epoch corretti.
- Se noti che i file di log delle transazioni recenti utilizzano nomi con timestamp epoch fuori sequenza, 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.
- Solo Amazon RDS: è possibile che alcuni file dei log delle transazioni non siano stati rilevati durante il processo di esportazione in S3. Prova a eseguire di nuovo la funzione di esportazione dei log delle transazioni per il periodo intorno ai file WAL mancanti.