Risolvere un errore
Il processo del job di migrazione potrebbe generare errori durante il runtime.
- Per alcuni errori, Database Migration Service ripete automaticamente le operazioni errate per continuare il processo 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 migrare i dati non interessati dagli errori.
- Alcuni errori non sono recuperabili. Quando Database Migration Service rileva un errore non recuperabile, 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 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... |
|---|---|---|
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
rispetto a quella utilizzata nell'istanza di destinazione Cloud SQL per SQL Server.
Database Migration Service supporta solo le migrazioni tra versioni precedenti e successive se rispetti le linee guida per la compatibilità tra versioni. Consulta Database di origine e destinazione supportati. |
Ricrea l'istanza di destinazione Cloud SQL per SQL Server in modo che utilizzi 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 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 denominazione. Vedi Errore: il database esiste già nella destinazione |
Messaggio di errore:
Permission denied for {cloudsql.databases.get} on the Database Migration Service service account. |
All'account di servizio Database Migration Service mancano le 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 per quanto riguarda l'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 di destinazione Cloud SQL. | Controlla e modifica i timestamp epoch utilizzati nei nomi file dei log delle transazioni più recenti. Consulta la sezione Modificare 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 del 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.
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 deriva dai nomi delle cartelle in Cloud Storage in cui sono archiviati i file di backup. Se hai due database diversi che condividono il nome e li vuoi entrambi nella destinazione Cloud SQL, puoi rinominare le cartelle e ricreare il job di migrazione per evitare il conflitto di denominazione.
Segui questi passaggi:
- Crea nuove cartelle per il database di origine interessato dal conflitto di denominazione. 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 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.
Modifica 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 per quanto riguarda l'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 di destinazione Cloud SQL.
Cose da provare
I caricamenti dei file potrebbero subire ritardi o essere fuori ordine. Attendi alcuni minuti per consentire la risoluzione del problema o verifica se mancano file nel bucket Cloud Storage.
Se il problema persiste, verifica e modifica i timestamp epoch nei nomi dei file di log delle transazioni.
Segui questi passaggi:
- 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 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.
- Solo Amazon RDS: è possibile che alcuni file di log delle transazioni siano stati omessi durante il processo di esportazione in S3. Prova a eseguire di nuovo la funzione di esportazione del log delle transazioni per il periodo intorno ai file WAL mancanti.