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 della macchina virtuale.
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 nei database di individuazione nelle macchine virtuali e configura il backup (fare riferimento all'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 la procedura di backup di Discovery SQL Server.
Passaggio 2: Configurare il backup
- Se l'insieme di credenziali in cui la macchina virtuale SQL viene registrata nello stesso insieme di credenziali usato per proteggere i database, seguire la procedura Configura 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 esaminato 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. Come procedura consigliata, è 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 di 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:
Se si vuole 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 di individuazione dei database nel server interessato dal portale di Azure (la stessa posizione in cui è possibile visualizzare la conformità dei backup). La macchina virtuale verrà visualizzata come destinazione per le operazioni di ripristino.
Rimuovere la voce whitelistedInstancesForI query dal file Extension Impostazioni Overrides.json al termine dell'operazione di ripristino.
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
Error message | Possibili cause | Azione consigliata |
---|---|---|
Il 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
Error message | 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:
|
Dopo che l'operazione in conflitto ha esito negativo, riavviare l'operazione. |
UserErrorFileManipulationIsNotAllowedDuringBackup
Error message | 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
Error message | 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 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
Error message | 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
Error message | Possibili cause | Azioni consigliate |
---|---|---|
Il servizio Backup di Azure non riesce a connettersi all'istanza SQL. | Backup di Azure non è possibile connettersi all'istanza di SQL Server. | Usare i dettagli aggiuntivi nel menu di errore portale di Azure per restringere le cause radice. Fare riferimento a Risolvere i problemi di connessione al motore di database di SQL Server per correggere l'errore.
|
UserErrorParentFullBackupMissing
Error message | 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
Error message | Possibili cause | Azioni consigliate |
---|---|---|
Cannot take backup as transaction log for the data source is full (Non è possibile eseguire il backup perché il log delle transazioni per l'origine dati è pieno). | Lo spazio del log delle transazioni del database è pieno. | Per risolvere questo problema, vedere la documentazione di SQL Server. |
UserErrorCannotRestoreExistingDBWithoutForceOverwrite
Error message | Possibili cause | Azioni consigliate |
---|---|---|
Un database con lo stesso nome esiste già nel percorso di destinazione | La destinazione di ripristino di destinazione ha già un database con lo stesso nome. |
|
UserErrorRestoreFailedDatabaseCannotBeOfflined
Error message | 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 è possibile portare questi dati offline. | Usare i dettagli aggiuntivi nel menu di errore portale di Azure per restringere le 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
Error message | 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 dispone di un'identificazione personale di crittografia valida. | Importare l'identificazione personale del certificato valida usata nell'istanza di origine nell'istanza di destinazione. |
UserErrorRestoreNotPossibleBecauseLogBackupContainsBulkLoggedChanges
Error message | 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
Error message | 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
Error message | 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
Error message | 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
Error message | 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, configurare i processi di backup eseguiti per tutti i database in tale 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
Error message | Possibili cause | Azioni consigliate |
---|---|---|
L'operazione viene bloccata man mano che è stato raggiunto il limite per il numero di operazioni consentite in 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
Error message | Possibili cause | Azioni consigliate |
---|---|---|
L'operazione viene bloccata perché l'insieme di credenziali ha raggiunto il limite massimo per tali operazioni consentite 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, Backup di Azure servizio 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, verrà attivato il processo di protezione per ognuno degli elementi protetti e talvolta potrebbe raggiungere il limite massimo consentito per tali operazioni al giorno. |
Backup di Azure servizio ritenta automaticamente questa operazione dopo 24 ore. |
WorkloadExtensionNotReachable
Error message | Possibili cause | Azioni consigliate |
---|---|---|
Operazione dell'estensione del carico di lavoro AzureBackup non riuscita. | La macchina virtuale viene arrestata o la macchina virtuale non può contattare il servizio Backup di Azure a causa di problemi di connettività Internet. |
UserErrorVMInternetConnectivityIssue
Error message | Possibili cause | Azioni consigliate |
---|---|---|
La macchina virtuale non è in grado di contattare Backup di Azure servizio a causa di problemi di connettività Internet. | La macchina virtuale richiede la connettività in uscita ai servizi Backup di Azure, Archiviazione di Azure o Microsoft Entra. |
UserErrorOperationNotAllowedDatabaseMirroringEnabled
Error message | 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, eseguire l'operazione di arresto del backup nel database. |
UserErrorWindowsWLExtFailedToStartPluginService
Error message | Possibile causa | Elemento consigliato |
---|---|---|
Operazione non riuscita con UserErrorWindowsWLExtFailedToStartPluginService errore. |
Backup di Azure'estensione del carico di lavoro 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 delle 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 le autorizzazioni di lettura per queste directory. Passaggio 2: Verificare se NT Service\AzureWLBackupPluginSvc dispone dei diritti di controllo dell'attraversamento bypass passando a Local Security Policy User Right Assignment Bypass traverse check.Verify if NT Service\AzureWLBackupPluginSvc has the Bypass traverse check by going to Local Security Policy>User Right Assignment>Bypass traverse check. Tutti gli utenti devono essere selezionati per impostazione predefinita. Se tutti e i servizi NT\AzureWLBackupPluginSvc sono mancanti , 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 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 autorizzazione per eseguire operazioni correlate al backup nella macchina virtuale.
- Arresto della 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 disponili 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 database_name.json
file 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 sulle Backup di Azure per le macchine virtuali SQL.