Risolvere i problemi relativi al backup del database SQL Server usando Backup di Azure
Questo articolo fornisce informazioni sulla risoluzione dei problemi per i database di SQL Server in esecuzione in macchine virtuali di Azure.
Per altre informazioni sul processo di backup e sulle limitazioni, vedere Informazioni sul backup di SQL Server nelle macchine virtuali di Azure.
Autorizzazioni di SQL Server
Per configurare la protezione per un database di SQL Server in una macchina virtuale, è necessario installare l'estensione AzureBackupWindowsWorkload in tale macchina virtuale. Se viene visualizzato l'errore UserErrorSQLNoSysadminMembership, significa che l'istanza di SQL Server non dispone delle autorizzazioni di backup necessarie. Per correggere questo errore, seguire la procedura descritta in Impostare le autorizzazioni per le macchine virtuali.
Risolvere i problemi di individuazione e configurazione
Al termine della creazione e della configurazione di un insieme di credenziali di Servizi di ripristino, l'individuazione dei database e la configurazione del backup sono un processo in due passaggi.
Durante la configurazione del backup, se la macchina virtuale SQL e le relative istanze non sono visibili in Database di individuazione nelle macchine virtuali e Configurare il backup (vedere l'immagine precedente), assicurarsi che:
Passaggio 1: Individuazione di database nelle macchine virtuali
- Se la macchina virtuale non è elencata nell'elenco delle macchine virtuali individuate e non è registrata anche per il backup SQL in un altro insieme di credenziali, seguire i passaggi descritti nell'articolo Individuazione del backup di SQL Server.
Passaggio 2: Configurare il backup
- Se l'insieme di credenziali in cui la macchina virtuale SQL viene registrata è lo stesso insieme di credenziali usato per proteggere i database, seguire la procedura descritta nell'articolo Configurare il backup.
Se la macchina virtuale SQL deve essere registrata nel nuovo insieme di credenziali, deve essere annullata la registrazione dall'insieme di credenziali precedente. L'annullamento della registrazione di una macchina virtuale SQL dall'insieme di credenziali richiede che tutte le origini dati protette vengano interrotte e quindi è possibile eliminare i dati di cui è stato eseguito il backup. L'eliminazione dei dati di cui è stato eseguito il backup è un'operazione distruttiva. Dopo aver valutato e preso tutte le precauzioni per annullare la registrazione della macchina virtuale SQL, registrare la stessa macchina virtuale con un nuovo insieme di credenziali e ripetere l'operazione di backup.
Risolvere i problemi di backup e ripristino
In alcuni casi, è possibile che si verifichino errori casuali nelle operazioni di backup e ripristino o che tali operazioni vengano bloccate. Questo può essere dovuto a programmi antivirus nella macchina virtuale. È consigliabile seguire questa procedura:
Escludere le cartelle seguenti dall'analisi antivirus:
C:\Program Files\Azure Workload Backup
C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.RecoveryServices.WorkloadBackup.AzureBackupWindowsWorkload
Sostituire
C:\
con la lettera del SystemDrive.Escludere i tre processi seguenti in esecuzione all'interno di una macchina virtuale dall'analisi antivirus:
- IaasWLPluginSvc.exe
- IaaSWorkloadCoordinatorService.exe
- TriggerExtensionJob.exe
SQL offre anche alcune linee guida sull'uso dei programmi antivirus. Per informazioni dettagliate, vedere questo articolo.
Istanza difettosa in una macchina virtuale con più istanze di SQL Server
È possibile eseguire il ripristino in una macchina virtuale SQL solo se tutte le istanze SQL in esecuzione all'interno della macchina virtuale sono integre. Se una o più istanze sono "difettose", la macchina virtuale non verrà visualizzata come destinazione di ripristino. Questo potrebbe essere un possibile motivo per cui una macchina virtuale a istanze multipla potrebbe non essere visualizzata nell'elenco a discesa "server" durante l'operazione di ripristino.
È possibile convalidare l'idoneità per il backup di tutte le istanze SQL nella macchina virtuale, in Configurare il backup:
Per attivare un ripristino nelle istanze SQL integre, seguire questa procedura:
Accedere alla macchina virtuale SQL e passare a
C:\Program Files\Azure Workload Backup\bin
.Creare un file JSON denominato
ExtensionSettingsOverrides.json
(se non è già presente). Se il file è già presente nella macchina virtuale, continuare a usarlo.Aggiungere il contenuto seguente nel file JSON e salvare il file:
{ "<ExistingKey1>":"<ExistingValue1>", …………………………………………………… , "whitelistedInstancesForInquiry": "FaultyInstance_1,FaultyInstance_2" } Sample content: { "whitelistedInstancesForInquiry": "CRPPA,CRPPB " }
Attivare l'operazione Individua di nuovo i database sul server interessato dal portale di Azure (la stessa posizione in cui è possibile visualizzare l'idoneità per il backup). La macchina virtuale verrà visualizzata come destinazione per le operazioni di ripristino.
Al termine dell'operazione di ripristino, rimuovere la voce whitelistedInstancesForInquiry dal file ExtensionSettingsOverrides.json.
Messaggi di errore
Tipo di backup non supportato
Gravità | Descrizione | Possibili cause | Azione consigliata |
---|---|---|---|
Avviso | Le impostazioni correnti per questo database non supportano determinati tipi di backup presenti nei criteri associati. | Modificare le impostazioni del database in modo che siano supportati tutti i tipi di backup nei criteri. In alternativa, modificare i criteri correnti in modo da includere solo i tipi di backup supportati. In caso contrario, i tipi di backup non supportati verranno ignorati durante il backup pianificato o il processo di backup avrà esito negativo per il backup su richiesta. |
UserErrorSQLPODoesNotSupportBackupType
Messaggio d'errore | Possibili cause | Azione consigliata |
---|---|---|
Questo database SQL non supporta il tipo di backup richiesto. | Si verifica quando il modello di recupero del database non consente il tipo di backup richiesto. L'errore può verificarsi nelle situazioni seguenti:
|
Se il backup del log non riesce per il database nel modello di recupero con registrazione minima, provare una di queste opzioni:
|
OperationCancelledBecauseConflictingOperationRunningUserError
Messaggio d'errore | Possibili cause | Azione consigliata |
---|---|---|
L'operazione è stata annullata perché è già in esecuzione un'operazione in conflitto nello stesso database. | Questo errore può verificarsi quando il processo di backup attivato su richiesta o il processo di backup pianificato è in conflitto con un'operazione di backup già in esecuzione attivata dall'estensione backup di Azure nello stesso database. Di seguito sono riportati gli scenari in cui potrebbe essere visualizzato questo codice di errore:
|
Quando l'operazione in conflitto non riesce, riavviare l'operazione. |
UserErrorFileManipulationIsNotAllowedDuringBackup
Messaggio d'errore | Possibili cause | Azioni consigliate |
---|---|---|
I backup, le operazioni di manipolazione di file, come ad esempio MODIFICA DATABASE, AGGIUNGI FILE, e le modifiche di crittografia in un database devono essere serializzati. | Di seguito sono riportati i casi in cui può essere visualizzato questo codice di errore:
|
Disabilitare l'altro prodotto di backup per risolvere il problema. |
UserErrorSQLPODoesNotExist
Messaggio d'errore | Possibili cause | Azioni consigliate |
---|---|---|
Il database SQL non esiste. | Il database è stato eliminato o rinominato. | Controllare se il database è stato eliminato o rinominato accidentalmente. Se il database è stato eliminato accidentalmente, per continuare con i backup, ripristinare il database nel percorso originale. Se il database è stato eliminato e non sono necessari backup futuri, nell'insieme di credenziali di Servizi di ripristino selezionare Interrompi backup con Conserva i dati di backup o Elimina dati di backup. Per altre informazioni, vedere Gestire e monitorare i database di SQL Server di cui è stato eseguito il backup. |
UserErrorSQLLSNValidationFailure
Messaggio d'errore | Possibili cause | Azioni consigliate |
---|---|---|
La catena di log è interrotta. | Il backup del database o della macchina virtuale viene eseguito tramite un'altra soluzione di backup, che tronca la catena di log. |
|
UserErrorOpeningSQLConnection
Messaggio d'errore | Possibili cause | Azioni consigliate |
---|---|---|
Backup di Azure non è in grado di connettersi all'istanza di SQL. | Backup di Azure non è in grado di connettersi all'istanza di SQL Server. | Usare i dettagli aggiuntivi nel menu dell'errore nel portale di Azure per risalire alle cause radice. Fare riferimento a Risolvere i problemi di connessione al motore di database di SQL Server per correggere l'errore.
|
UserErrorParentFullBackupMissing
Messaggio d'errore | Possibili cause | Azioni consigliate |
---|---|---|
Manca il primo backup completo per questa origine dati. | Manca un backup completo per il database. I backup di log e differenziali sono elementi padre di un backup completo, quindi assicurarsi di eseguire backup completi prima di attivare backup differenziali o di log. | Attivare un backup completo su richiesta. |
UserErrorBackupFailedAsTransactionLogIsFull
Messaggio d'errore | Possibili cause | Azioni consigliate |
---|---|---|
Non è possibile eseguire il backup come log delle transazioni perché l'origine dati è piena. | Lo spazio del log delle transazioni del database è pieno. | Per risolvere questo problema, vedere la documentazione di SQL Server. |
UserErrorCannotRestoreExistingDBWithoutForceOverwrite
Messaggio d'errore | Possibili cause | Azioni consigliate |
---|---|---|
Un database con lo stesso nome esiste già nel percorso di destinazione | La destinazione di ripristino target ha già un database con lo stesso nome. |
|
UserErrorRestoreFailedDatabaseCannotBeOfflined
Messaggio d'errore | Possibili cause | Azioni consigliate |
---|---|---|
Il ripristino non è riuscito perché non è stato possibile portare offline il database. | Durante l'esecuzione di un ripristino, il database di destinazione deve essere portato offline. Backup di Azure non può portare questi dati offline. | Usare i dettagli aggiuntivi nel menu dell'errore nel portale di Azure per risalire alle cause radice. Per altre informazioni, vedere la documentazione di SQL Server. |
WlExtGenericIOFaultUserError
Messaggio di errore | Possibili cause | Azioni consigliate |
---|---|---|
Si è verificato un errore di input/output durante l'operazione. Verificare la presenza di errori di I/O comuni nella macchina virtuale. | Autorizzazioni di accesso o vincoli di spazio nella destinazione. | Verificare la presenza di errori di I/O comuni nella macchina virtuale. Assicurarsi che l'unità o la condivisione di rete di destinazione nel computer: Per altre informazioni, vedere Ripristinare come file. |
UserErrorCannotFindServerCertificateWithThumbprint
Messaggio d'errore | Possibili cause | Azioni consigliate |
---|---|---|
Cannot find the server certificate with thumbprint on the target (Non è possibile trovare il certificato del server con l'identificazione personale). | Il database master nell'istanza di destinazione non ha un'identificazione digitale per la crittografia valida. | Importare l'identificazione personale del certificato valida usata nell'istanza di origine, nell'istanza di destinazione. |
UserErrorRestoreNotPossibleBecauseLogBackupContainsBulkLoggedChanges
Messaggio d'errore | Possibili cause | Azioni consigliate |
---|---|---|
Il backup del log usato per il ripristino contiene modifiche con registrazione minima delle operazioni bulk. Non può essere usato per arrestarsi in un momento arbitrario in base alle linee guida SQL. | Quando un database è in modalità di recupero con registrazione minima delle operazioni bulk, non è possibile recuperare i dati tra una transazione con registrazione minima delle operazioni bulk e la successiva transazione di log. | Scegliere un momento diverso per il ripristino. Altre informazioni. |
FabricSvcBackupPreferenceCheckFailedUserError
Messaggio d'errore | Possibili cause | Azioni consigliate |
---|---|---|
Non è possibile soddisfare le preferenze di backup per il gruppo di disponibilità AlwaysOn SQL perché alcuni nodi del gruppo di disponibilità non sono registrati. | I nodi necessari per eseguire i backup non sono registrati o non sono raggiungibili. |
|
VMNotInRunningStateUserError
Messaggio d'errore | Possibili cause | Azioni consigliate |
---|---|---|
L'istanza di SQL Server è stata arrestata e non è accessibile al servizio Backup di Azure. | La macchina virtuale viene arrestata. | Verificare che l'istanza di SQL Server sia in esecuzione. |
GuestAgentStatusUnavailableUserError
Messaggio d'errore | Possibili cause | Azioni consigliate |
---|---|---|
Il servizio Backup di Azure usa l'agente guest di macchine virtuali di Azure per l'esecuzione del backup ma l'agente guest non è disponibile nel server di destinazione. | L'agente guest non è abilitato o non è integro. | Installare l'agente guest di macchine virtuali manualmente. |
AutoProtectionCancelledOrNotValid
Messaggio d'errore | Possibili cause | Azioni consigliate |
---|---|---|
La finalità di protezione automatica è stata rimossa o non è più valida. | Quando si abilita la protezione automatica in un'istanza di SQL Server, i processi di configurazione del backup vengono eseguiti per tutti i database dell'istanza. Se si disabilita la protezione automatica mentre i processi sono in esecuzione, i processi in corso vengono annullati con questo codice di errore. | Abilitare nuovamente la protezione automatica per proteggere tutti i database rimanenti. |
CloudDosAbsoluteLimitReached
Messaggio d'errore | Possibili cause | Azioni consigliate |
---|---|---|
L'operazione è bloccata perché è stato raggiunto il limite per il numero di operazioni consentite nelle 24 ore. | Quando è stato raggiunto il limite massimo consentito per un'operazione in un intervallo di 24 ore, viene visualizzato questo errore. Ad esempio: se è stato raggiunto il limite per il numero di processi di backup che possono essere attivati al giorno e si tenta di configurare il backup in un nuovo elemento, verrà visualizzato questo errore. |
In genere, la ripetizione dell'operazione dopo 24 ore risolve questo problema. Tuttavia, se il problema persiste, è possibile contattare il supporto tecnico Microsoft per assistenza. |
CloudDosAbsoluteLimitReachedWithRetry
Messaggio d'errore | Possibili cause | Azioni consigliate |
---|---|---|
L'operazione è bloccata perché l'insieme di credenziali ha raggiunto il limite massimo consentito per tali operazioni in un intervallo di 24 ore. | Quando è stato raggiunto il limite massimo consentito per un'operazione in un intervallo di 24 ore, viene visualizzato questo errore. Questo errore viene in genere visualizzato quando sono presenti operazioni su larga scala, ad esempio modificare i criteri o la protezione automatica. A differenza del caso di CloudDosAbsoluteLimitReached, non c'è molto da fare per risolvere questo stato. In effetti, il servizio Backup di Azure ritenta le operazioni internamente per tutti gli elementi in questione. Ad esempio, se si dispone di un numero elevato di origini dati protette con un criterio e si tenta di modificare tale criterio, attiverà i processi di configurazione della protezione per ognuno degli elementi protetti e talvolta potrebbe raggiungere il limite massimo consentito per tali operazioni al giorno. |
Il servizio Backup di Azure tenterà di ripetere automaticamente questa operazione dopo 24 ore. |
WorkloadExtensionNotReachable
Messaggio d'errore | Possibili cause | Azioni consigliate |
---|---|---|
L'operazione di estensione del carico di lavoro in AzureBackup non è riuscita. | La macchina virtuale viene arrestata oppure non riesce a contattare il servizio Backup di Azure a causa di problemi di connettività Internet. |
UserErrorVMInternetConnectivityIssue
Messaggio d'errore | Possibili cause | Azioni consigliate |
---|---|---|
La macchina virtuale non è in grado di contattare il servizio Backup di Azure a causa di problemi di connettività Internet. | Causa 1: la macchina virtuale richiede la connettività in uscita al servizio Backup di Azure, archiviazione di Azure o ai servizi Microsoft Entra. Causa 2: un criterio dell'oggetto Criteri di gruppo limita le suite di crittografia necessarie per la comunicazione TLS. |
Raccomandazione per la causa 1: Raccomandazione per la causa 2: rimuovere la macchina virtuale dall'oggetto Criteri di gruppo o disabilitare/rimuovere i criteri dell'oggetto Criteri di gruppo come soluzione alternativa. In alternativa, modificare l'oggetto Criteri di gruppo in modo che consenta le suite di crittografia necessarie. |
UserErrorOperationNotAllowedDatabaseMirroringEnabled
Messaggio d'errore | Possibile causa | Azione consigliata |
---|---|---|
Il backup dei database che partecipano a una sessione di mirroring del database non è supportato da AzureWorkloadBackup. | Quando si abilita l'operazione di mirroring in un database SQL, viene visualizzato questo errore. Attualmente Backup di Azure non supporta i database con questa funzionalità abilitata. | È possibile rimuovere la sessione di mirroring del database per il completamento dell'operazione. In alternativa, se il database è già protetto, arrestare l'operazione di backup nel database. |
UserErrorWindowsWLExtFailedToStartPluginService
Messaggio d'errore | Possibile causa | Elemento consigliato |
---|---|---|
Operazione non riuscita con errore UserErrorWindowsWLExtFailedToStartPluginService . |
L'estensione del carico di lavoro di Backup di Azure non è in grado di avviare il servizio plug-in di backup del carico di lavoro nella macchina virtuale di Azure a causa di errori di configurazione dell'account del servizio. | Passaggio 1: Verificare se l'utente NT Service\AzureWLBackupPluginSvc dispone di autorizzazioni di lettura per: - C:\windows\Microsoft.NET \assembly\GAC_32 - C:\windows\Microsoft.NET \assembly\GAC_64 - C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config. Se mancano le autorizzazioni, assegnare autorizzazioni di lettura per queste directory. Passaggio 2: Verificare se NT Service\AzureWLBackupPluginSvc ha diritti di Ignora controllo trasversale passando a Criteri di sicurezza locali>Assegnazione diritto utente>Ignora controllo trasversale. L'opzione Tutti deve essere selezionata per impostazione predefinita. Se Tutti e NT Service\AzureWLBackupPluginSvc mancano, aggiungere l'utente NT Service\AzureWLBackupPluginSvc e quindi provare a riavviare il servizio o attivare un'operazione di backup o ripristino per un'origine dati. |
Errori di ripetizione della registrazione
Prima di attivare l'operazione di ripetizione della registrazione, verificare la presenza di uno o più dei sintomi seguenti:
Tutte le operazioni( ad esempio backup, ripristino e configurazione di backup) hanno esito negativo nella macchina virtuale con uno dei codici di errore seguenti: WorkloadExtensionNotReachable, UserErrorWorkloadExtensionNotInstalled, WorkloadExtensionNotPresent, WorkloadExtensionDidntDequeueMsg.
Se nell'area Stato backup relativa all'elemento di backup è visualizzato il messaggio Non raggiungibile, escludere tutte le altre cause che potrebbero comportare lo stesso stato:
- Mancanza di autorizzazioni per eseguire operazioni correlate al backup nella macchina virtuale.
- Arrestare la macchina virtuale, in modo che i backup non possano avvenire.
- Problemi di rete
Nel caso di un gruppo di disponibilità Always On, i backup hanno avuto esito negativo dopo aver modificato la preferenza di backup o dopo un failover.
Questi sintomi possono comparire per uno o più dei motivi seguenti:
- Un'estensione è stata eliminata o disinstallata dal portale.
- Un'estensione è stata disinstallata da Pannello di controllo nella macchina virtuale in Disinstallare o modificare un programma.
- La macchina virtuale è stata ripristinata a un punto precedente tramite il ripristino del disco sul posto.
- La macchina virtuale si trova in uno stato di arresto da molto tempo e quindi la configurazione dell'estensione è scaduta.
- La macchina virtuale è stata eliminata e ne è stata creata un'altra con lo stesso nome e nello stesso gruppo di risorse di quella eliminata.
- Uno dei nodi del gruppo di disponibilità non ha ricevuto la configurazione di backup completa. Ciò può verificarsi quando il gruppo di disponibilità viene registrato nell'insieme di credenziali o quando viene aggiunto un nuovo nodo.
Negli scenari precedenti è consigliabile attivare un'operazione di ripetizione della registrazione nella macchina virtuale. Vedere qui per istruzioni su come eseguire questa attività in PowerShell.
Limite di dimensioni per i file
La dimensione totale della stringa dei file dipende non solo dal numero di file, ma anche dai relativi nomi e percorsi. Per ogni file di database, ottenere il nome file logico e il percorso fisico. È possibile usare questa query SQL:
SELECT mf.name AS LogicalName, Physical_Name AS Location FROM sys.master_files mf
INNER JOIN sys.databases db ON db.database_id = mf.database_id
WHERE db.name = N'<Database Name>'"
Ora disporli nel formato seguente:
[{"path":"<Location>","logicalName":"<LogicalName>","isDir":false},{"path":"<Location>","logicalName":"<LogicalName>","isDir":false}]}
Ecco un esempio:
[{"path":"F:\\Data\\TestDB12.mdf","logicalName":"TestDB12","isDir":false},{"path":"F:\\Log\\TestDB12_log.ldf","logicalName":"TestDB12_log","isDir":false}]}
Se le dimensioni della stringa del contenuto superano 20.000 byte, i file di database vengono archiviati in modo diverso. Durante il ripristino non sarà possibile impostare il percorso del file di destinazione per il ripristino. I file verranno ripristinati nel percorso SQL predefinito fornito da SQL Server.
Eseguire l'override del percorso del file di ripristino di destinazione predefinito
È possibile eseguire l'override del percorso del file di ripristino di destinazione durante l'operazione di ripristino inserendo un file JSON contenente il mapping del file di database al percorso di ripristino di destinazione. Creare un file database_name.json
e inserirlo nel percorso C:\Program Files\Azure Workload Backup\bin\plugins\SQL*
.
Il contenuto del file deve essere in questo formato:
[
{
"Path": "<Restore_Path>",
"LogicalName": "<LogicalName>",
"IsDir": "false"
},
{
"Path": "<Restore_Path>",
"LogicalName": "LogicalName",
"IsDir": "false"
},
]
Ecco un esempio:
[
{
"Path": "F:\\Data\\testdb2_1546408741449456.mdf",
"LogicalName": "testdb7",
"IsDir": "false"
},
{
"Path": "F:\\Log\\testdb2_log_1546408741449456.ldf",
"LogicalName": "testdb7_log",
"IsDir": "false"
},
]
Nel contenuto precedente è possibile ottenere il nome logico del file di database usando la query SQL seguente:
SELECT mf.name AS LogicalName FROM sys.master_files mf
INNER JOIN sys.databases db ON db.database_id = mf.database_id
WHERE db.name = N'<Database Name>'"
Questo file deve essere inserito prima di attivare l'operazione di ripristino.
Passaggi successivi
Per altre informazioni su Backup di Azure per macchine virtuali SQL.