gebeurtenis
31 mrt, 23 - 2 apr, 23
De grootste SQL-, Fabric- en Power BI-leerevenement. 31 maart – 2 april. Gebruik code FABINSIDER om $ 400 te besparen.
Zorg dat u zich vandaag nog registreertDeze browser wordt niet meer ondersteund.
Upgrade naar Microsoft Edge om te profiteren van de nieuwste functies, beveiligingsupdates en technische ondersteuning.
van toepassing op:SQL Server
Azure SQL Managed Instance
Dit artikel bevat aanbevolen procedures en tips voor probleemoplossing voor back-ups en herstelbewerkingen van SQL Server naar Microsoft Azure Blob Storage.
Zie voor meer informatie over het gebruik van Azure Blob Storage voor back-up- of herstelbewerkingen van SQL Server:
BACK-up en herstel van SQL Server met Microsoft Azure Blob Storage
Zelfstudie: BACK-up en herstel van SQL Server naar Azure Blob Storage-
De volgende lijst bevat algemene aanbevelingen voor het beheren van back-ups:
Unieke bestandsnaam voor elke back-up wordt aanbevolen om te voorkomen dat de blobs per ongeluk worden overschreven.
Wanneer u een container maakt, moet u het toegangsniveau instellen op privé-, zodat alleen gebruikers of accounts die de vereiste verificatiegegevens kunnen opgeven, de blobs in de container kunnen lezen of schrijven.
Voor SQL Server-databases op een exemplaar van SQL Server dat wordt uitgevoerd op een virtuele Azure-machine, gebruikt u een opslagaccount in dezelfde regio als de virtuele machine om kosten voor gegevensoverdracht tussen regio's te voorkomen. Het gebruik van dezelfde regio zorgt ook voor optimale prestaties voor back-up- en herstelbewerkingen.
Mislukte back-upactiviteit kan resulteren in een ongeldig back-upbestand. We raden aan om mislukte back-ups periodiek te identificeren en de blobbestanden te verwijderen. Zie Back-upblobbestanden verwijderen met actieve leasesvoor meer informatie.
Als u de optie WITH COMPRESSION
tijdens het maken van een back-up gebruikt, kunt u de opslagkosten en transactiekosten voor opslag minimaliseren. Het kan ook de tijd verkorten die nodig is om het back-upproces te voltooien.
Stel MAXTRANSFERSIZE
- en BLOCKSIZE
-argumenten in zoals aanbevolen in SQL Server Backup naar URL-.
SQL Server is agnostisch voor het type opslagredundantie dat wordt gebruikt. Back-ups maken van pagina-blobs en blok-blobs wordt ondersteund voor elke opslagredundantie (LRS/ZRS/GRS/RA-GRS/RA-GZRS, enzovoort).
De SQL Server-back-upbewerking maakt gebruik van meerdere threads om gegevensoverdracht naar Azure Blob Storage te optimaliseren. De prestaties zijn echter afhankelijk van verschillende factoren, zoals ISV-bandbreedte en -grootte van de database. Als u een back-up wilt maken van grote databases of bestandsgroepen vanuit een on-premises SQL Server-database, moet u eerst enkele doorvoertests uitvoeren. Azure SLA voor Storage heeft maximale verwerkingstijden voor blobs die u in overweging kunt nemen.
Het gebruik van de optie WITH COMPRESSION
zoals aanbevolen in de sectie Back-ups beheren, is belangrijk bij het maken van back-ups van grote bestanden.
Hieronder volgen enkele snelle manieren om fouten op te lossen bij het maken van een back-up van of het herstellen vanuit Azure Blob Storage.
Als u fouten wilt voorkomen vanwege niet-ondersteunde opties of beperkingen, bekijkt u de lijst met beperkingen en de ondersteuning voor informatie over BACKUP
en RESTORE
opdrachten in het artikel SQL Server Backup and Restore met Microsoft Azure Blob Storage.
Parallel back-ups naar dezelfde blob zorgen ervoor dat een van de back-ups mislukt met een initialisatie mislukt fout.
In SQL Server 2016 (13.x) en latere versies heeft block blob de voorkeur voor de backup naar een URL.
Als u pagina-blobs met BACKUP TO URL
gebruikt, kunt u traceringsvlag 3051 gebruiken om logboekregistratie in te schakelen naar een specifiek foutenlogboek met de volgende indeling in: BackupToUrl-\<instname>-\<dbname>-action-\<PID>.log
, waarbij \<action>
een van de volgende opties is:
DB
FILELISTONLY
LABELONLY
HEADERONLY
VERIFYONLY
U kunt ook informatie vinden door de Logboeken van Windows te bekijken, onder toepassingslogboeken met de naam SQLBackupToUrl
.
Overweeg COMPRESSION
, MAXTRANSFERSIZE
, BLOCKSIZE
en meerdere URL-argumenten bij het maken van back-ups van grote databases. Zie Een back-up maken van een VLDB naar Azure Blob Storage-.
De fout:
Msg 3202, Level 16, State 1, Line 1
Write on "https://mystorage.blob.core.windows.net/mycontainer/TestDbBackupSetNumber2_0.bak" failed:
1117(The request could not be performed because of an I/O device error.)
Msg 3013, Level 16, State 1, Line 1
BACKUP DATABASE is terminating abnormally.
Een voorbeeldoplossing:
BACKUP DATABASE TestDb
TO URL = 'https://mystorage.blob.core.windows.net/mycontainer/TestDbBackupSetNumber2_0.bak',
URL = 'https://mystorage.blob.core.windows.net/mycontainer/TestDbBackupSetNumber2_1.bak',
URL = 'https://mystorage.blob.core.windows.net/mycontainer/TestDbBackupSetNumber2_2.bak'
WITH COMPRESSION, MAXTRANSFERSIZE = 4194304, BLOCKSIZE = 65536;
Wanneer u herstelt vanuit een gecomprimeerde back-up, ziet u mogelijk de volgende fout:
SqlException 3284 occurred. Severity: 16 State: 5
Message Filemark on device 'https://mystorage.blob.core.windows.net/mycontainer/TestDbBackupSetNumber2_0.bak' is not aligned.
Reissue the Restore statement with the same block size used to create the backupset: '65536' looks like a possible value.
Los deze fout op door de RESTORE
instructie opnieuw uit te voeren met BLOCKSIZE = 65536
gespecificeerd.
Fout tijdens back-up vanwege blobs met actieve lease: Failed backup activity can result in blobs with active leases.
Als een back-upverklaring opnieuw wordt geprobeerd, kan de back-upbewerking mislukken met een fout die vergelijkbaar is met het volgende resultaat:
Backup to URL received an exception from the remote endpoint. Exception Message:
The remote server returned an error: (412) There is currently a lease on the blob and no lease ID was specified in the request.
Als een herstelinstructie wordt uitgevoerd op een back-upblobbestand met een actieve lease, mislukt de herstelbewerking met een fout die vergelijkbaar is met de volgende:
Exception Message: The remote server returned an error: (409) Conflict..
Wanneer een dergelijke fout optreedt, moeten de blob-bestanden worden verwijderd. Zie Backup-blobbestanden met actieve leases verwijderenvoor meer informatie over dit scenario en hoe u dit probleem kunt oplossen.
Wanneer u een back-up maakt van een database, ziet u mogelijk een fout Operating system error 50(The request is not supported)
om de volgende redenen:
?
-symbool aan het begin van het token toen de autorisatie werd aangemaakt. Zo ja, verwijder het dan.De WITH CREDENTIAL
is een nieuwe optie en is vereist om een back-up te maken naar of te herstellen vanuit Azure Blob Storage.
Fouten met betrekking tot inloggegevens kunnen het volgende zijn: The credential specified in the **BACKUP** or **RESTORE** command does not exist.
U kunt dit probleem voorkomen door T-SQL-instructies op te nemen om de referentie te maken als deze niet bestaat in de back-upinstructie. Hier volgt een voorbeeld dat u kunt gebruiken:
IF NOT EXISTS (
SELECT *
FROM sys.credentials
WHERE credential_identity = 'mycredential'
)
CREATE CREDENTIAL [<credential name>]
WITH IDENTITY = 'mystorageaccount',
SECRET = '<storage access key>';
De referenties bestaan, maar de inloggegevens die worden gebruikt om de back-upopdracht uit te voeren, hebben geen rechten om toegang te krijgen tot de referenties. Gebruik een account in de rol db_backupoperator met toestemming om elke referentie te wijzigen.
Controleer de naam en sleutelwaarden van het opslagaccount. De informatie die in de referentie is opgeslagen, moet overeenkomen met de eigenschapswaarden van het Azure-opslagaccount dat u gebruikt in de back-up- en herstelbewerkingen.
Met SQL Server 2012 (11.x) kun je een fout tegenkomen bij het uitvoeren van een back-up die vergelijkbaar is met het volgende:
Backup to URL received an exception from the remote endpoint. Exception Message:
The remote server returned an error: (400) Bad Request.
Dit wordt veroorzaakt door de TLS-versie die wordt ondersteund door het Azure Storage-account. De ondersteunde TLS-versie wijzigen of de tijdelijke oplossing gebruiken die wordt vermeld in KB4017023.
Als u proxyservers gebruikt voor toegang tot internet, ziet u mogelijk de volgende problemen:
Proxyservers kunnen instellingen hebben waarmee het aantal verbindingen per minuut wordt beperkt. Het proces back-up naar URL is een proces met meerdere threads en kan daarom deze limiet overschrijden. Als dit gebeurt, wordt de verbinding door de proxyserver gedood. U kunt dit probleem oplossen door de proxy-instellingen te wijzigen zodat SQL Server de proxy niet gebruikt. Hieronder volgen enkele voorbeelden van de typen of foutberichten die u in het foutenlogboek kunt zien:
Write on "https://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak" failed: Backup to URL received an exception from the remote endpoint. Exception Message: Unable to read data from the transport connection: The connection was closed.
A nonrecoverable I/O error occurred on file "https://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak:" Error could not be gathered from Remote Endpoint.
Msg 3013, Level 16, State 1, Line 2
BACKUP DATABASE is terminating abnormally.
BackupIoRequest::ReportIoError: write failure on backup device https://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak'. Operating system error Backup to URL received an exception from the remote endpoint. Exception Message: Unable to read data from the transport connection: The connection was closed.
Als u pagina-blobs gebruikt, schakelt u de uitgebreide logboekregistratie in met behulp van traceringsvlag 3051, dan ziet u mogelijk ook het volgende bericht in de logboeken: HTTP status code 502, HTTP Status Message Proxy Error (The number of HTTP requests per minute exceeded the configured limit. Contact your ISA Server administrator.)
Soms worden de standaardinstellingen niet opgehaald die proxyverificatiefouten veroorzaken, zoals:
A nonrecoverable I/O error occurred on file "https://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak:" Backup to URL received an exception from the remote endpoint. Exception Message: The remote server returned an error: (407)* **Proxy Authentication Required.
U kunt dit probleem oplossen door een configuratiebestand te maken waarmee het back-up-naar-URL-proces de standaardproxy-instellingen kan gebruiken met behulp van de volgende stappen:
Maak een configuratiebestand met de naam BackuptoURL.exe.config
met de volgende XML-inhoud:
<?xml version ="1.0"?>
<configuration>
<system.net>
<defaultProxy enabled="true" useDefaultCredentials="true">
<proxy usesystemdefault="true" />
</defaultProxy>
</system.net>
</configuration>
Plaats het configuratiebestand in de map Binn
van het SQL Server-exemplaar. Als mijn SQL Server bijvoorbeeld is geïnstalleerd op het C
station van de computer, plaatst u het configuratiebestand in C:\Program Files\Microsoft SQL Server\MSSQL13.\<InstanceName>\MSSQL\Binn
.
BackuptoURL.exe
wordt niet aangeroepen bij het gebruik van SAS-sleutels, maar wordt geactiveerd bij het gebruik van een toegangssleutel. Zorg ervoor dat u toegangssleutels gebruikt of u kunt de volgende fout ontvangen:
Besturingssysteemfout 50(De aanvraag wordt niet ondersteund.)
Probleem | Oplossing |
---|---|
Fout 3063: Schrijven naar reservekopie van block blob apparaat https://storageaccount/container/name.bak is mislukt. Het apparaat heeft de limiet van toegestane blokken bereikt. |
U kunt dit probleem oplossen door uw back-updoel te stroken met meerdere bestanden en zorg ervoor dat u de volgende parameters gebruikt in de back-upopdracht: COMPRESSION, MAXTRANSFERSIZE = 4194304, BLOCKSIZE = 65536 . |
Fout 3035: Differentiële back-up mislukt voor een of meer databases. | Dit gebeurt als u de Azure Backup-service hebt geconfigureerd om back-ups te maken van SQL-databases of een momentopname van een virtuele machine (VM), waarbij er geen copy-only back-up wordt gemaakt. Dit veroorzaakt dat uw onderhoudsplan of on-demand back-ups van de SQL-agenttaak mislukt. U kunt dit probleem oplossen door deze registersleutels toe te voegen aan de VM's die SQL Server-exemplaren hosten op de registersleutel [HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\BCDRAGENT] en "USEVSSCOPYBACKUP"="TRUE" toe te voegen. |
fout 3201: back-up mislukt met - Besturingssysteemfout 50 (de aanvraag wordt niet ondersteund). | Genereer het SAS-token (Shared Access Signature) opnieuw met behulp van Storage Explorer: u kunt een nieuw beleid maken met behulp van Azure Storage Explorer en een nieuw SAS-token maken met dat beleid vanuit Azure Storage Explorer. maak de referentie opnieuw met behulp van dit nieuwe SAS-token dat is gegenereerd vanuit Azure Storage en probeer een back-up te maken. Voor meer informatie, zie bekende problemen met BACKUP TO URL. Zorg ervoor dat uw netwerkbeveiligingsgroep (NSG) en/of firewall binnenkomende en uitgaande verbindingen op poorten 1433 en 443 toestaat. |
fout 3271: back-up mislukt vanwege TLS-fout: back-up naar URL heeft een uitzondering ontvangen van het externe eindpunt. | Dit kan gebeuren op SQL Server-versies 2012, 2014 en 2016. Back-ups maken van een Microsoft Azure Blob Storage-service-URL is niet compatibel met TLS 1.2 en kan worden opgelost door de instructies in KB4017023te volgen. |
Fout 3271: Backup naar URL heeft een uitzondering ontvangen van het externe eindpunt. Uitzonderingsbericht: De externe naam kon niet worden opgelost. | U ziet dit bericht als er een onjuiste referentie, geheim of SAS-sleutel is gebruikt om de back-up te configureren. Verwijder de referentie en maak deze opnieuw. Gebruik voor SQL Server 2012/2014 de identiteit en toegangssleutel van het opslagaccount en voor SQL Server 2016 en latere versies SAS-. |
Fout 18210: Uitzondering: De externe server heeft een fout geretourneerd: (400) Ongeldige aanvraag. | U kunt dit oplossen door de minimale TLS-versie voor het opslagaccount te wijzigen in 1.0 (Opslagaccount>Configuratie>Minimale TLS-versie) of sterke cryptografie inschakelen, zoals beschreven in KB4017023. |
Uitzonderingsbericht: De externe server heeft een fout geretourneerd: (412) Er is momenteel een lease op de blob en er is geen lease-id opgegeven in de aanvraag. | Identificeer de blobs in Azure Storage Explorer met een grootte van 1 TB, de lease verbreken, de blobverwijderen en de back-upbewerking opnieuw uitvoeren. |
Fout: De externe server heeft een fout geretourneerd: (403) Verboden. | Maak het opslagaccount, de referenties en het SAS-token opnieuw om het probleem op te lossen. |
back-up voor een database van 1 TB mislukt op SQL Server 2012/2014. | Back-ups van 1 TB zijn een bekende beperking op pagina-blobs vóór SQL Server 2016 (13.x). Gebruik back-upcompressie door de component WITH COMPRESSION toe te voegen aan uw T-SQL-back-upinstructie of uw SQL Server-exemplaar bij te werken naar SQL Server 2016 (13.x) en latere versies. |
Fout: Back-up naar URL ontving een uitzondering van het externe eindpunt. Uitzonderingsbericht: de externe server heeft een fout geretourneerd: (416) Het opgegeven paginabereik is ongeldig. | Mogelijk ziet u dit als u SQL Server 2012 (11.x) en SQL Server 2014 (12.x) gebruikt en uw back-upgrootte toeneemt tot 1 TB. Strip uw back-upbestanden en/of gebruik back-upcompressie om dit op te lossen. |
Backup is mislukt tijdens het gebruik van een onderhoudsplan. | Er zijn enkele bugs met het onderhoudsplan. Probeer T-SQL te gebruiken om uw back-up uit te voeren. Als T-SQL werkt, kunt u een SQL Agent-taak maken om een back-up van uw databases te maken. |
back-up is mislukt omdat de VM-limieten zijn bereikt. | Als u fouten krijgt die de IOPS-/VM-limiet van de schijf hebben bereikt, kunnen back-ups vertragen of mislukken. Als u IOPS-/VM-limieten wilt bewaken, gebruikt u metrische gegevens van Azure Monitor en wijzigt u indien nodig het formaat van de VM/schijf om het probleem op te lossen. |
De externe server heeft een fout geretourneerd: (409) Conflict voor SQL Server 2012/2014" | Opslagaccounts met hiërarchische naamruimte zijn uitgerust voor blok-blobs, niet voor pagina-blobs. Opslagaccounts zonder deze functie mogen niet worden gebruikt voor BACK-UP NAAR URL in SQL Server 2014 (12.x). |
gebeurtenis
31 mrt, 23 - 2 apr, 23
De grootste SQL-, Fabric- en Power BI-leerevenement. 31 maart – 2 april. Gebruik code FABINSIDER om $ 400 te besparen.
Zorg dat u zich vandaag nog registreertTraining
Certificering
Microsoft Certified: Azure Database Administrator Associate - Certifications
Beheer een SQL Server-databaseinfrastructuur voor cloud-, on-premises en hybride relationele databases met behulp van de relationele Microsoft PaaS-databaseaanbiedingen.
Documentatie
Een back-up maken van meerdere databases: Azure Blob Storage - PowerShell
Dit artikel bevat voorbeeldscripts die kunnen worden gebruikt voor het automatiseren van back-ups in SQL Server naar Azure Blob Storage met behulp van PowerShell-cmdlets.
Verwijderen van back-upblobbestanden met actieve leases - SQL Server
Als een back-up of herstel van SQL Server mislukt, kan een blob in Azure Storage verweesd raken. Leer hoe je een verweesde blob verwijdert.