Freigeben über


SQL Server-URL-Sicherung – bewährte Methoden und Problembehandlung

In diesem Thema werden bewährte Methoden und Tipps zur Problembehandlung beschrieben, die sich auf SQL Server-Sicherungs- und Wiederherstellungsvorgänge im Azure Blob-Dienst beziehen.

Weitere Informationen zur Verwendung des Azure Blob Storage-Diensts für SQL Server-Sicherungs- oder -Wiederherstellungsvorgänge finden Sie unter:

Verwalten von Sicherungen

Die folgende Liste enthält allgemeine Empfehlungen zur Verwaltung von Sicherungen:

  • Für jede Sicherung sollte ein eindeutiger Dateiname verwendet werden, um zu verhindern, dass BLOBs versehentlich überschrieben werden.

  • Beim Erstellen eines Containers wird empfohlen, die Zugriffsebene auf Privatfestzulegen, sodass der Lese- oder Schreibzugriff auf Blobs im Container nur Benutzern oder Konten mit den erforderlichen Authentifizierungsinformationen gestattet ist.

  • Um Kosten für die Datenübertragung zwischen Regionen zu vermeiden, verwenden Sie für SQL Server-Datenbanken auf einer Instanz von SQL Server, die auf einem virtuellen Azure-Computer ausgeführt wird, ein Speicherkonto, das derselben Region wie der virtuelle Computer angehört. Wenn Sie innerhalb einer Region bleiben, erzielen Sie darüber hinaus optimale Leistung bei Sicherungs- und Wiederherstellungsvorgängen.

  • Eine fehlerhafte Sicherungsaktivität kann dazu führen, dass eine Sicherungsdatei unbrauchbar wird. Es wird empfohlen, regelmäßig nach fehlerhaften Sicherungen zu suchen und die BLOB-Dateien zu löschen. Weitere Informationen hierzu finden Sie unter Löschen von Sicherungsblobdateien aktiver Lease.

  • Wenn Sie die Sicherung mit der WITH COMPRESSION-Option durchführen, können Sie die Speicherkosten und Speichertransaktionskosten minimieren. Darüber hinaus verkürzt die Option die Dauer des Sicherungsvorgangs.

Behandlung großer Dateien

  • SQL Server-Sicherungsvorgänge verwenden mehrere Threads, um die Datenübertragung an die Azure Blob Storage-Dienste zu optimieren. Die Leistung hängt jedoch von verschiedenen Faktoren ab wie der Bandbreite des unabhängigen Softwareherstellers (ISV) und der Größe der Datenbank. Wenn Sie beabsichtigen, große Datenbanken oder Dateigruppen von einer lokalen SQL Server-Datenbank zu sichern, sollten Sie zunächst den Durchsatz testen. Azure Storage-SLA's verfügen über maximale Verarbeitungszeiten für Blobs, die Sie berücksichtigen können.

  • Die Verwendung der im Abschnitt Verwalten von Sicherungen empfohlenen WITH COMPRESSION-Option ist besonders beim Sichern umfangreicher Dateien von Bedeutung.

Problembehandlung bei Sicherungs- oder Wiederherstellungsvorgängen über URLs

Im Folgenden finden Sie einige schnelle Lösungen zur Behandlung von Sicherungs- und Wiederherstellungsfehlern im Azure Blob Storage-Dienst.

Um Fehler aufgrund nicht unterstützter Optionen oder Einschränkungen zu vermeiden, lesen Sie die Liste der Einschränkungen und die Unterstützung für BACKUP- und RESTORE-Befehlsinformationen im Artikel SQL Server Sichern und Wiederherstellen mit Azure Blob Storage Dienst.

Authentifizierungsfehler:

  • WITH CREDENTIAL ist eine neue Option, die zum Sichern oder Wiederherstellen im Azure Blob Storage-Dienst erforderlich ist. In Zusammenhang mit Anmeldeinformationen können folgende Fehler auftreten:

    Die im BACKUP-Befehl oder RESTORE-Befehl angegebenen Anmeldeinformationen sind nicht vorhanden. Um dieses Problem zu vermeiden, können Sie T-SQL-Anweisungen zum Erstellen von Anmeldeinformationen einschließen, falls in der BACKUP-Anweisung keine Anmeldeinformationen enthalten sind. Beachten Sie das folgende Anwendungsbeispiel:

    IF NOT EXISTS  
    (SELECT * FROM sys.credentials   
    WHERE credential_identity = 'mycredential')  
    CREATE CREDENTIAL <credential name> WITH IDENTITY = 'mystorageaccount'  
    ,SECRET = '<storage access key> ;  
    
    
  • Die Anmeldeinformationen sind zwar vorhanden, aber das Anmeldekonto zum Ausführen des Sicherungsbefehls verfügt über keine Berechtigung für den Zugriff auf die Anmeldeinformationen. Verwenden Sie ein Anmeldekonto aus der db_backupoperator -Rolle mit Berechtigungen für Beliebige Anmeldeinformationen ändern .

  • Überprüfen Sie den Namen des Speicherkontos und die Schlüsselwerte. Die in den Anmeldeinformationen gespeicherten Informationen müssen den Eigenschaftswerten Azure-Speicherkontos entsprechen, das Sie für Sicherungs- und Wiederherstellungsvorgänge verwenden.

Sicherungsfehler:

  • Parallele Sicherungen im selben Blob führen dazu, dass bei einer der Sicherungen die Meldung Fehler beim Initialisieren ausgegeben wird.

  • Verwenden Sie die folgenden Fehlerprotokolle, die Ihnen die Problembehandlung bei Sicherungsfehlern erleichtern:

    • Legen Sie das Ablaufverfolgungsflag 3051 wie folgt fest, um die Protokollierung in einem bestimmten Fehlerprotokoll zu aktivieren:

      BackupToUrl-instname-dbname-action-PID.log<<>>>< Wobei <die Aktion> eine der folgenden Ist:

      • DB

      • FILELISTONLY

      • LABELONLY

      • HEADERONLY

      • VERIFYONLY

    • Informationen finden Sie auch im Windows-Ereignisprotokoll unter Anwendungsprotokolle mit dem Namen "SQLBackupToUrl".

  • Bei der Wiederherstellung von einer komprimierten Sicherung kann eine Fehlermeldung mit etwa folgendem Wortlaut angezeigt werden:

    • SqlException 3284 aufgetreten. Schweregrad: 16; Status: 5
      Das Nachrichtendateizeichen auf dem Gerät "https://mystorage.blob.core.windows.net/mycontainer/TestDbBackupSetNumber2_0.bak" ist nicht ausgerichtet. Geben Sie die RESTORE-Anweisung mit derselben Blockgröße, die zum Erstellen des Sicherungssatzes verwendet wurde, erneut aus: '65536' sieht wie ein möglicher Wert aus.

      Um diesen Fehler zu beheben, übergeben Sie die BACKUP-Anweisung erneut mit BLOCKSIZE = 65536.

  • Fehler während der Sicherung aufgrund von Blobs mit aktiver Lease: Eine fehlerhafte Sicherungsaktivität kann zu Blobs mit aktiven Leases führen.

    Wenn die BACKUP-Anweisung erneut ausgeführt wird, kann ein Sicherungsvorgang einen Fehler mit etwa folgendem Wortlaut verursachen:

    Für die Sicherung über URLs ist eine Ausnahme vom Remoteendpunkt eingegangen. Ausnahmemeldung: Der Remoteserver hat einen Fehler zurückgegeben: (412) Derzeit ist eine Lease für das Blob vorhanden, und in der Anforderung wurde keine Lease-ID angegeben..

    Wenn versucht wird, eine RESTORE-Anweisung für eine BLOB-Sicherungsdatei mit aktiver Leasedauer auszuführen, wird eine Fehlermeldung mit etwa folgendem Wortlaut angezeigt:

    Ausnahmemeldung: Der Remoteserver hat einen Fehler zurückgegeben: (409) Konflikt...

    Wenn dieser Fehler auftritt, müssen die BLOB-Dateien gelöscht werden. Weitere Informationen zu diesem Szenario und Lösungsvorschläge finden Sie unter Löschen von Sicherungsblobdateien mit aktiver Lease.

Proxyfehler

Wenn Sie über Proxyserver auf das Internet zugreifen, können folgende Probleme auftreten:

Durch Proxyserver gedrosselte Verbindungen:

Proxyserver können über Einstellungen verfügen, die die Anzahl der Verbindungen pro Minute begrenzen. Der URL-Sicherungsprozess ist ein Multithreadprozess und kann diese Begrenzung folglich überschreiten. In diesem Fall wird die Verbindung vom Proxyserver abgebrochen. Um das Problem zu beheben, ändern Sie die Proxyeinstellungen, damit der Proxy von SQL Server nicht verwendet wird. Im Folgenden einige Beispiele für Fehlertypen oder -meldungen, die im Fehlerprotokoll angezeigt werden können:

  • Schreiben Sie auf "http://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak" Fehler: Backup to URL hat eine Ausnahme vom Remoteendpunkt erhalten. Ausnahmemeldung: Von der Übertragungsverbindung können keine Daten gelesen werden: Die Verbindung wurde geschlossen.

  • Ein nicht wiederherstellbarer E/A-Fehler in der Datei "http://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak:" Der Fehler konnte vom Remoteendpunkt nicht erfasst werden.

    Meldung 3013, Ebene 16, Status 1, Zeile 2

    BACKUP DATABASE wird fehlerbedingt beendet.

  • BackupIoRequest::ReportIoError: Schreibfehler auf dem Sicherungsgerät ""http://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak. Betriebssystemfehler: Bei einer URL-Sicherung wurde eine Ausnahme vom Remoteendpunkt empfangen. Ausnahmemeldung: Von der Übertragungsverbindung können keine Daten gelesen werden: Die Verbindung wurde geschlossen.

Wenn Sie die ausführliche Protokollierung mit Ablaufverfolgungsflag 3051 aktivieren, können auch folgende Meldungen in den Protokollen angezeigt werden:

HTTP-status Code 502, HTTP-Statusmeldungsproxyfehler ( Die Anzahl der HTTP-Anforderungen pro Minute hat den konfigurierten Grenzwert überschritten. Wenden Sie sich an Ihren ISA Server-Administrator. )

Standardproxyeinstellungen wurden nicht abgerufen:

Manchmal werden die Standardeinstellungen nicht verwendet, was zu Proxyauthentifizierungsfehlern führt, wie z. B. der unten gezeigte: Ein nicht wiederherstellbarer E/A-Fehler in der Datei "http://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak:" Backup to URL hat eine Ausnahme vom Remoteendpunkt erhalten. Ausnahmemeldung: Der Remoteserver hat einen Fehler zurückgegeben: (407)Proxyauthentifizierung erforderlich.

Um dieses Problem zu beheben, erstellen Sie mithilfe folgender Schritte eine Konfigurationsdatei, durch die beim URL-Sicherungsprozess die Standardproxyeinstellungen verwendet werden können:

  1. Erstellen Sie eine Konfigurationsdatei namens BackuptoURL.exe.config mit dem folgenden XML-Code:

    <?xml version ="1.0"?>  
    <configuration>   
                    <system.net>   
                                    <defaultProxy enabled="true" useDefaultCredentials="true">   
                                                    <proxy usesystemdefault="true" />   
                                    </defaultProxy>   
                    </system.net>  
    </configuration>  
    
    
  2. Speichern Sie die Konfigurationsdatei im Ordner „Binn“ der SQL Server-Instanz. Wenn beispielsweise mein SQL Server auf dem Laufwerk C des Computers installiert ist, platzieren Sie die Konfigurationsdatei hier: C:\Programme\Microsoft SQL Server\MSSQL12.<InstanceName>\MSSQL\Binn.

Problembehandlung für die verwaltete SQL Server-Sicherung in Azure

Da SQL Server Managed Backup auf der URL-Sicherung aufbaut, gelten die in den vorherigen Abschnitten aufgeführten Tipps zur Fehlerbehebung für Datenbanken oder Instanzen, für die SQL Server Managed Backup verwendet wird. Informationen zur Problembehandlung SQL Server Managed Backup in Azure finden Sie ausführlich unter Problembehandlung SQL Server Verwaltete Sicherung in Azure.

Weitere Informationen

Wiederherstellen aus in Azure gespeicherten Sicherungen