Risolvere un problema
Il processo del job di migrazione potrebbe generare errori durante il runtime.
- Per alcuni errori, Database Migration Service ritenta 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 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 non recuperabile, lo stato del job di migrazione diventa 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 di destinazione Cloud SQL. Utilizza il link di Cloud Monitoring nella pagina dei dettagli del job di migrazione.
Nella tabella seguente sono riportati alcuni esempi di problemi e di come risolverli:
| 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 utilizzata nell'istanza di destinazione Cloud SQL per SQL Server
instance.
Database Migration Service supporta le migrazioni tra versioni solo dalle versioni precedenti a quelle successive se rispetti 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 di SQL Server successiva e riprova a eseguire il processo 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. |
Il account di servizio di Database Migration Service non dispone delle autorizzazioni. | Aggiungi le autorizzazioni mancanti al account di servizio di 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 di epoca errati rispetto all'ordine degli aggiornamenti che contengono. Database Migration Service utilizza i numeri di sequenza dei log e i timestamp di epoca 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 di epoca utilizzati nei nomi file dei file di log delle transazioni più recenti Consulta Modificare i nomi dei log delle transazioni errati. |
| Quando esegui la migrazione dei database selezionati e il job di migrazione non è in grado di 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 di destinazione Cloud SQL contiene già un database che utilizza lo stesso nome di uno dei database inclusi nel job di migrazione.
Cosa 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 di destinazione Cloud SQL 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 hai entrambi nella destinazione Cloud SQL, puoi rinominare le cartelle e ricreare il job di migrazione per evitare il conflitto di denominazione.
Esegui i seguenti 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. Consulta
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 ordine
Il problema potrebbe essere
I file di log delle transazioni potrebbero utilizzare timestamp di epoca errati rispetto all'ordine degli aggiornamenti che contengono. Database Migration Service utilizza i numeri di sequenza dei log e i timestamp di epoca per controllare l'ordine in cui i file di log delle transazioni vengono replicati nell'istanza di destinazione Cloud SQL.
Cosa provare
I caricamenti dei file potrebbero essere ritardati o fuori ordine. Attendi alcuni minuti per consentire la risoluzione del problema o controlla se mancano file nel bucket Cloud Storage.
Se il problema non viene risolto, verifica e modifica i timestamp di epoca nei nomi dei file di log delle transazioni.
Esegui i seguenti passaggi:
- Controlla l'elenco delle operazioni di importazione dei log delle transazioni nell'istanza di destinazione Cloud SQL per SQL Server. Nella Google Cloud console, 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 di epoca corretti.
- Se noti che i file di log delle transazioni recenti utilizzano nomi con timestamp di epoca 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 persi 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.