SQL Server-Datendateien in Microsoft AzureSQL Server Data Files in Microsoft Azure

Datendateien in AzureData files on Azure

Die SQL Server-Datendateien in Microsoft Azure ermöglichen die native Unterstützung von SQL Server-Datenbankdateien, die als Microsoft Azure-Blobs gespeichert sind.SQL Server Data Files in Microsoft Azure enables native support for SQL Server database files stored as Microsoft Azure Blobs. Mit der Funktion können Sie eine Datenbank in SQL Server erstellen, die lokal oder auf einem virtuellen Computer in Microsoft Azure ausgeführt wird, wobei ein dedizierter Speicherort für Ihre Daten im Microsoft Azure Blob Storage bereitgestellt wird.It allows you to create a database in SQL Server running in on-premises or in a virtual machine in Microsoft Azure with a dedicated storage location for your data in Microsoft Azure Blob Storage. Diese Erweiterung vereinfacht insbesondere das Verschieben von Datenbanken zwischen Computern mithilfe von Trenn- und Anfügevorgängen.This enhancement especially simplifies to move databases between machines by using detach and attach operations. Darüber hinaus bietet sie einen alternativen Speicherort für Datenbank-Sicherungsdateien, da Wiederherstellungen im oder aus dem Microsoft Azure Storage ermöglicht werden.In addition, it provides an alternative storage location for your database backup files by allowing you to restore from or to Microsoft Azure Storage. Mit erweiterten Funktionen für das Virtualisieren und Verschieben von Daten sowie für Sicherheit und Verfügbarkeit unterstützt sie verschiedene Hybridlösungen und bietet zusätzlich kostengünstige, einfache Verwaltungsfunktionen für hohe Verfügbarkeit und flexible Skalierung.Therefore, it enables several hybrid solutions by providing several benefits for data virtualization, data movement, security and availability, and any easy low costs and maintenance for high-availability and elastic scaling.

[AZURE.IMPORTANT]Das Speichern von Systemdatenbanken in Azure BLOB-Speicher wird nicht empfohlen und nicht unterstützt.Storing system databases in Azure blob storage is not recommended and is not supported.

In diesem Thema werden zentrale Konzepte und Überlegungen zur Speicherung von SQL Server-Datendateien im Microsoft Azure Storage Service eingeführt.This topic introduces concepts and considerations that are central to storing SQL Server data files in Microsoft Azure Storage Service.

Ein praktisches Beispiel für die Verwendung dieser neuen Funktion finden Sie unter Tutorial: Verwenden von Microsoft Azure Blob Storage Service der Datenbank von SQL Server 2016 .For a practical hands-on experience on how to use this new feature, see Tutorial: Using the Microsoft Azure Blob storage service with SQL Server 2016 databases .

Gründe für die Verwendung von SQL Server-Datendateien in Microsoft AzureWhy use SQL Server Data Files in Microsoft Azure?

  • Einfache und schnelle Migration: Diese Funktion vereinfacht den Migrationsprozess, indem jeweils eine Datenbank zwischen Computern in lokalen Umgebungen sowie zwischen lokalen und Cloudumgebungen verschoben wird, ohne dass Änderungen an der Anwendung vorgenommen werden müssen.Easy and fast migration benefits: This feature simplifies the migration process by moving one database at a time between machines in on-premises as well as between on-premises and cloud environments without any application changes. Auf diese Weise wird eine inkrementelle Migration unterstützt, während Ihre vorhandene lokale Infrastruktur unverändert beibehalten wird.Therefore, it supports an incremental migration while maintaining your existing on-premises infrastructure in place. Darüber hinaus vereinfacht der Zugriff auf einen zentralen Datenspeicher die Anwendungslogik, wenn eine Anwendung in einer lokalen Umgebung an mehreren Stellen ausgeführt werden muss.In addition, having access to a centralized data storage simplifies the application logic when an application needs to run in multiple locations in an on-premises environment. Es kann vorkommen, dass Sie schnell Rechenzentren an geografisch verteilten Standorten einrichten müssen, in denen Daten aus vielen verschiedenen Quellen gesammelt werden.In some cases, you may need to rapidly setup computer centers in geographically dispersed locations, which gather data from many different sources. Mit dieser neuen Erweiterung müssen Daten nicht mehr zwischen Speicherorten verschoben werden. Stattdessen können Sie zahlreiche Datenbanken als Microsoft Azure-Blobs speichern und anschließend mithilfe von Transact-SQL-Skripts Datenbanken auf den lokalen oder virtuellen Computern erstellen.By using this new enhancement, instead of moving data from one location to another, you can store many databases as Microsoft Azure blobs, and then run Transact-SQL scripts to create databases on the local machines or virtual machines.

  • Kostenvorteile und unbegrenzter Speicher: Mit dieser Funktion profitieren Sie von unbegrenztem Offsite-Speicher in Microsoft Azure, während Sie gleichzeitig die lokalen Serverressourcen nutzen.Cost and limitless storage benefits: This feature enables you to have limitless off-site storage in Microsoft Azure while leveraging on-premises compute resources. Wenn Sie Microsoft Azure als Datenspeicher verwenden, können Sie sich problemlos auf die Anwendungslogik konzentrieren, ohne sich um die aufwendige Hardwareverwaltung kümmern zu müssen.When you use Microsoft Azure as a storage location, you can easily focus on the application logic without the overhead of hardware management. Wenn ein lokaler Serverknoten ausfällt, können Sie einen neuen Knoten einrichten, ohne Daten zu verschieben.If you lose a computation node on-premises, you can set up a new one without any data movement.

  • Hochverfügbarkeit und Notfallwiederherstellung: Mithilfe von SQL Server-Datendateien in Microsoft Azure können Lösungen für hohe Verfügbarkeit und Notfallwiederherstellung u.U. vereinfacht werden.High availability and disaster recovery benefits: Using SQL Server Data Files in Microsoft Azure feature might simplify the high availability and disaster recovery solutions. Beispiel: Wenn ein virtueller Computer in Microsoft Azure oder eine SQL Server-Instanz abstürzt, können Sie die Datenbanken auf einer neuen SQL Server-Instanz neu erstellen, indem Sie einfach wieder Verknüpfungen zu Microsoft Azure-Blobs herstellen.For example, if a virtual machine in Microsoft Azure or an instance of SQL Server crashes, you can re-create your databases in a new SQL Server instance by just re-establishing links to Microsoft Azure Blobs.

  • Sicherheit: Durch diese neue Erweiterung können Serverinstanzen von Speicherinstanzen getrennt behandelt werden.Security benefits: This new enhancement allows you to separate a compute instance from a storage instance. Beispielsweise können Sie über eine vollständig verschlüsselte Datenbank verfügen, deren Entschlüsselung ausschließlich auf einer Serverinstanz und nicht auf einer Speicherinstanz stattfindet.You can have a fully encrypted database with decryption only occurring on compute instance but not in a storage instance. Dies bedeutet, dass Sie mit der neuen Erweiterung alle Daten in einer öffentlichen Cloud unter Verwendung von TDE-Zertifikaten (Transparent Data Encryption, transparente Datenverschlüsselung) verschlüsseln können, die physisch von den Daten getrennt sind.In other words, using this new enhancement, you can encrypt all data in public cloud using Transparent Data Encryption (TDE) certificates, which are physically separated from the data. Die TDE-Schlüssel können in der Masterdatenbank gespeichert werden, die auf Ihrem physisch sicheren lokalen Computer gespeichert und gesichert wird.The TDE keys can be stored in the master database, which is stored locally in your physically secure on-premises computer and backed up locally. Mithilfe dieser lokalen Schlüssel können Sie die Daten verschlüsseln, die sich in Microsoft Azure Storage befinden.You can use these local keys to encrypt the data, which resides in Microsoft Azure Storage. Falls Ihre Anmeldeinformationen für das Cloudspeicherkonto ausgespäht werden, sind die Daten trotzdem sicher, da die TDE-Zertifikate immer lokal gespeichert werden.If your cloud storage account credentials are stolen, your data still stays secure as the TDE certificates always reside in on-premises.

  • Momentaufnahmensicherung: Diese Funktion ermöglicht es Ihnen, Azure-Momentaufnahmen zu verwenden, um nahezu sofortige Sicherungen und schnellere Wiederherstellungen für Datenbankdateien mithilfe des Azure Blob-Storage-Diensts zu nutzen.Snapshot backup: This feature enables you to use Azure snapshots to provide nearly instantaneous backups and quicker restores for database files stored using the Azure Blob storage service. Diese Funktion ermöglicht es Ihnen, Ihre Sicherungs- und Wiederherstellungsrichtlinien zu vereinfachen.This capability enables you to simplify your backup and restore policies. Weitere Informationen finden Sie unter Dateimomentaufnahme-Sicherungen für Datenbankdateien in Azure.For more information, see File-Snapshot Backups for Database Files in Azure.

Konzepte und AnforderungenConcepts and Requirements

Azure-SpeicherkonzepteAzure Storage Concepts

Bei Verwendung von SQL Server-Datendateien in Windows Azure müssen Sie ein Speicherkonto und einen Container in Windows Azure erstellen.When using SQL Server Data Files in Windows Azure feature, you need to create a storage account and a container in Windows Azure. Anschließend müssen Sie SQL Server-Anmeldeinformationen erstellen, die Informationen zur Containerrichtlinie sowie eine SAS (Shared Access Signature, Signatur für gemeinsamen Zugriff) enthalten, die für den Zugriff auf den Container erforderlich ist.Then, you need to create a SQL Server credential, which includes information on the policy of the container as well as a shared access signature that is necessary to access the container.

In Microsoft Azurestellt ein Azure-Speicherkonto die höchste Namespaceebene für den BLOB-Zugriff dar.In Microsoft Azure, an Azure storage account represents the highest level of the namespace for accessing Blobs. Ein Speicherkonto kann eine unbegrenzte Anzahl von Containern enthalten, solange deren Gesamtgröße 500 TB nicht überschreitet.A storage account can contain an unlimited number of containers, as long as their total size is under 500 TB. Aktuelle Informationen zu Speichergrößenbeschränkungen finden Sie unter Azure-Abonnement und Dienstbeschränkungen, Kontingente und Einschränkungen.For the latest information on storage limits, see Azure Subscription and Service Limits, Quotas, and Constraints. Ein Container stellt eine Gruppierung eines BLOB-Satzes bereit.A container provides a grouping of a set of Blobs. Alle BLOBs müssen sich in einem Container befinden.All Blobs must be in a container. Ein Konto kann eine unbegrenzte Anzahl von Containern enthalten.An account can contain an unlimited number of containers. Analog dazu kann in einem Container auch eine unbegrenzte Anzahl von BLOBs gespeichert werden.Similarly, a container can store an unlimited number of Blobs as well. Es gibt zwei Arten von BLOBs, die im Azure-Speicher gespeichert werden können: Blockblobs und Seitenblobs.There are two types of blobs that can be stored in Azure Storage: block and page blobs. Für die neue Funktion werden Seitenblobs von bis zu 1 TB verwendet, die effizienter sind, wenn Bytebereiche in einer Datei häufig geändert werden.This new feature uses Page blobs, which can be up to 1TB in size, and are more efficient when ranges of bytes in a file are modified frequently. Sie können mit folgendem URL-Format auf BLOBs zugreifen: http://storageaccount.blob.core.windows.net/<container>/<blob>.You can access Blobs using the following URL format: http://storageaccount.blob.core.windows.net/<container>/<blob>.

Überlegungen zur Abrechnung in AzureAzure Billing Considerations

Die Schätzung der für die Nutzung der Azure-Dienste anfallenden Kosten ist ein wichtiger Aspekt des Entscheidungs- und Planungsprozesses.Estimating the cost of using Azure Services is an important matter in the decision making and planning process. Wenn Sie SQL Server-Datendateien im Azure-Speicher speichern, fallen Kosten für die Speicherung und Transaktionen an.When storing SQL Server data files in Azure Storage, you need to pay costs associated with storage and transactions. Zusätzlich erfordert die Implementierung von SQL Server-Datendateien im Azure-Speicher alle 45 bis 60 Sekunden eine implizite Erneuerung der BLOB-Leasedauer.In addition, the implementation of SQL Server Data Files in Azure Storage feature requires a renewal of Blob lease every 45 to 60 seconds implicitly. Auf diese Weise entstehen ebenfalls Transaktionskosten pro Datenbankdatei, z. B. MDF- oder LDF-Datei.This also results in transaction costs per database file, such as .mdf or .ldf. Nach unserer Einschätzung würden sich die Kosten für das Erneuern der Leasedauer für zwei Datenbankdateien (MDF und LDF) gemäß dem aktuellen Preismodell auf ca. 2 US-Cent pro Monat belaufen.Based on our estimations, the cost of renewing leases for two database files (.mdf and .ldf) would be about 2 cents per month according to the current pricing model. Die Informationen auf der Azure-Preisseite sollen helfen, die monatlichen Kosten einzuschätzen, die mit der Nutzung des Azure-Speichers und der virtuellen Azure-Computer verbunden sind.We recommend that you use the information on the Azure Pricing page to help estimate the monthly costs associated with the use of Azure Storage and Azure Virtual Machines.

Konzepte von SQL ServerSQL Server Concepts

Die folgenden Voraussetzungen müssen zur Verwendung der neuen Erweiterung erfüllt sein:When using this new enhancement, you are required to do the followings:

  • Sie erstellen eine Richtlinie für einen Container und generieren zusätzlich einen SAS-Schlüssel.You must create a policy on a container and also generate a shared access signature (SAS) key.

  • Für jeden Container, der von einer Daten- oder Protokolldatei verwendet wird, erstellen Sie SQL Server-Anmeldeinformationen, deren Name mit dem Containerpfad übereinstimmt.For each container used by a data or a log file, you must create a SQL Server Credential whose name matches the container path.

  • Die Informationen zum Azure-Speichercontainer, der zugehörige Richtlinienname und der SAS-Schlüssel müssen im Anmeldeinformationsspeicher von SQL Server gespeichert werden.You must store the information regarding Azure Storage container, its associated policy name, and SAS key in the SQL Server credential store.

    Im folgenden Beispiel wird vorausgesetzt, dass ein Azure-Speichercontainer sowie eine Richtlinie mit Lese-, Schreib- und Auflistungsrechten erstellt wurde.The following example assumes that an Azure storage container has been created, and a policy has been created with read, write, list, rights. Beim Erstellen einer Richtlinie für einen Container wird ein SAS-Schlüssel generiert, der gefahrlos unverschlüsselt im Arbeitsspeicher vorgehalten werden kann und von SQL Server für den Zugriff auf die BLOB-Dateien im Container benötigt wird.Creating a policy on a container generates a SAS key which is safe to keep unencrypted in memory and needed by SQL Server to access the blob files in the container. Ersetzen Sie in den folgenden Codeausschnitt 'your SAS key' mit einem Eintrag, der dem folgenden ähnelt: 'sr=c&si=<MYPOLICYNAME>&sig=<THESHAREDACCESSSIGNATURE>'.In the following code snippet, replace 'your SAS key' with an entry similar to the following: 'sr=c&si=<MYPOLICYNAME>&sig=<THESHAREDACCESSSIGNATURE>'. Weitere Informationen finden Sie unter Verwalten des anonymen Lesezugriffs auf Container und Blobs.For more information, see Manage Access to Azure Storage Resources


-- Create a credential  
CREATE CREDENTIAL [https://testdb.blob.core.windows.net/data]  
WITH IDENTITY='SHARED ACCESS SIGNATURE',  
SECRET = 'your SAS key'  

-- Create database with data and log files in Windows Azure container.  
CREATE DATABASE testdb   
ON  
( NAME = testdb_dat,  
    FILENAME = 'https://testdb.blob.core.windows.net/data/TestData.mdf' )  
 LOG ON  
( NAME = testdb_log,  
    FILENAME =  'https://testdb.blob.core.windows.net/data/TestLog.ldf')  

Wichtiger Hinweis: Wenn ein Container aktive Verweise auf Datendateien enthält, schlagen Versuche, die entsprechenden SQL Server-Anmeldeinformationen zu löschen, fehl.Important note: If there are any active references to data files in a container, attempts to delete the corresponding SQL Server credential fails.

SecuritySecurity

Die folgenden Sicherheitsüberlegungen und -anforderungen sollten beim Speichern von SQL Server-Datendateien im Azure-Speicher berücksichtigt werden.The following are security considerations and requirements when storing SQL Server Data Files in Azure Storage.

  • Beim Erstellen eines Containers für den Azure-BLOB-Speicherdienst sollten Sie den Zugriff auf „Privat“ festlegen.When creating a container for the Azure Blob storage service, we recommend that you set the access to private. Wenn Sie den Zugriff auf „Privat“ festlegen, können die Container- und BLOB-Daten nur vom Besitzer des Azure-Kontos gelesen werden.When you set the access to private, container and blob data can be read by the Azure account owner only.

  • Wenn Sie SQL Server-Datenbankdateien im Azure-Speicher speichern, müssen Sie eine SAS verwenden, d. h. einen URI, der eingeschränkte Rechte für den Zugriff auf Container, BLOBs, Warteschlangen und Tabellen gewährt.When storing SQL Server database files in Azure Storage, you need to use a shared access signature, a URI that grants restricted access rights to containers, blobs, queues, and tables. Durch die Verwendung einer SAS ermöglichen Sie SQL Server unter dem Speicherkonto den Zugriff auf Ressourcen, ohne Ihren Schlüssel für das Azure-Speicherkonto offen zu legen.By using a shared access signature, you can enable SQL Server to access resources in your storage account without sharing your Azure storage account key.

  • Außerdem wird empfohlen, weiterhin die herkömmlichen Sicherheitsvorkehrungen für lokale Datenbanken zu treffen.In addition, we recommend that you continue implementing the traditional on-premises security practices for your databases.

InstallationsvoraussetzungenInstallation Prerequisites

Die folgenden Installationsvoraussetzungen gelten beim Speichern von SQL Server-Datendateien in Azure.The followings are installation prerequisites when storing SQL Server Data Files in Azure.

  • SQL Server in einer lokalen Umgebung: Dieses Feature ist in SQL Server 2016 enthalten.SQL Server on-premises: SQL Server 2016 version includes this feature. Informationen zum Herunterladen von SQL Server 2016 finden Sie unter SQL Server 2016.To learn how to download SQL Server 2016, see SQL Server 2016.

  • SQL Server auf einem virtuellen Computer in Azure: Wenn Sie SQL Server auf einem virtuellen Azure-Computerinstallieren, installieren Sie SQL Server 2016, oder aktualisieren Sie Ihre vorhandene Instanz.SQL Server running in an Azure virtual machine: If you are installing SQL Server on an Azure Virtual Machine, install SQL Server 2016, or update your existing instance. Sie können auch einen neuen virtuellen Computer in Azure erstellen, indem Sie ein Plattformimage von SQL Server 2016 verwenden.Similarly, you can also create a new virtual machine in Azure using SQL Server 2016 platform image.

Einschränkungen Limitations

  • In der aktuellen Version dieser Funktion wird das Speichern von FileStream -Daten im Azure-Speicher nicht unterstützt.In the current release of this feature, storing FileStream data in Azure Storage is not supported. Sie können FileStream -Daten in einer lokalen, in den Azure-Speicher integrierten Datenbank speichern. Es ist jedoch nicht möglich, Filestream-Daten unter Verwendung von Azure-Speicher zwischen Computern zu verschieben.You can store Filestream data in an Azure storage integrated local database but you cannot move Filestream data between machines using Azure Storage. Bei FileStream -Daten wird empfohlen, die herkömmlichen Verfahren zu verwenden, die bisher zum Verschieben von Dateien (MDF, LDF) in Verbindung mit Filestream-Daten zwischen verschiedenen Computern eingesetzt werden.For FileStream data, we recommend that you continue using the traditional techniques to move the files (.mdf, .ldf) associated with Filestream between different machines.

  • Bei Verwendung der neuen Erweiterung kann derzeit nur eine SQL Server-Instanz (nicht mehrere) auf dieselben Datenbankdateien im Azure-Speicher zugreifen.Currently, this new enhancement does not support more than one SQL Server instance accessing the same database files in Azure Storage at the same time. Wenn ServerA mit einer aktiven Datenbankdatei online ist und ServerB versehentlich gestartet wird und auch über eine Datenbank verfügt, die auf dieselbe Datendatei verweist, kann die Datenbank des zweiten Servers nicht gestartet werden und verursacht den Fehlercode 5120 Die physische Datei „%.ls“ kann nicht geöffnet werden\. Betriebssystemfehler %d: „%ls“.If ServerA is online with an active database file and if ServerB is accidently started, and it also has a database which points to the same data file, the second server will fail to start the database with an error code 5120 Unable to open the physical file "%.*ls". Operating system error %d: "%ls".

  • Im Azure-Speicher können ausschließlich MDF-, LDF- und NDF-Dateien mithilfe des Features „SQL Server-Datendateien in Azure“ gespeichert werden.Only .mdf, .ldf, and .ndf files can be stored in Azure Storage by using the SQL Server Data Files in Azure feature.

  • Wenn Sie das Feature für SQL Server-Datendateien in Azure nutzen, wird die Georeplikation für Ihr Speicherkonto nicht unterstützt.When using the SQL Server Data Files in Azure feature, geo-replication for your storage account is not supported. Wenn für ein Speicherkonto eine Georeplikation ausgeführt wird und ein Geo-Failover auftritt, kann die Datenbank beschädigt werden.If a storage account is geo-replicated and a geo-failover happened, database corruption could occur.

  • Jedes BLOB kann eine maximale Größe von 1 TB aufweisen.Each Blob can be up to maximum 1 TB in size. Auf diese Weise wird für die Datenbankdaten- und Protokolldateien, die im Azure-Speicher gespeichert werden können, eine Obergrenze festgelegt.This creates an upper limit on individual database data and log files that can be stored in Azure Storage.

  • Es ist nicht möglich, In-Memory OLTP-Daten mithilfe des Features „SQL Server-Datendateien in Azure“ in einem Azure-BLOB zu speichern.It is not possible to store In-Memory OLTP data in Azure Blob using the SQL Server Data Files in Azure Storage feature. Das liegt daran, dass In-Memory-OLTP von FileStream abhängig ist und das Speichern von FileStream -Daten im Azure-Speicher von dem Feature in der derzeitigen Version nicht unterstützt wird.This is because In-Memory OLTP has a dependency on FileStream and, in the current release of this feature, storing FileStream data in Azure Storage is not supported.

  • Bei Verwendung von SQL Server-Datendateien in Azure führt SQL Server alle URL- oder Dateipfadvergleiche mit der in der Master -Datenbank festgelegten Sortierung aus.When using SQL Server Data Files in Azure feature, SQL Server performs all URL or file path comparisons using the Collation set in the master database.

  • Always On-Verfügbarkeitsgruppen werden unterstützt, solange der primären Datenbank keine neuen Datenbankdateien hinzugefügt werden.Always On Availability Groups are supported as long as you do not add new database files to the primary database. Wenn für einen Datenbankvorgang in der primären Datenbank eine neue Datei erstellt werden muss, deaktivieren Sie zuerst Always On-Verfügbarkeitsgruppen im sekundären Knoten.If a database operation requires a new file to be created in the primary database, first disable Always On Availability Groups in the secondary node. Führen Sie anschließend den Datenbankvorgang in der primären Datenbank aus, und sichern Sie die Datenbank im primären Knoten.Then, perform the database operation on the primary database and backup the database in the primary node. Stellen Sie anschließend die Datenbank auf dem sekundären Knoten wieder her, und aktivieren Sie die Always On-Verfügbarkeitsgruppen im sekundären Knoten.Next, restore the database to the secondary node, and enable Always On Availability Groups in the secondary node. Es sollte beachtet werden, dass Always On-Failoverclusterinstanzen bei Verwendung von SQL Server-Datendateien in Azure nicht unterstützt werden.Note that Always On Failover Cluster Instances is not supported when using the SQL Server Data Files in Azure feature.

  • Während des normalen Betriebs verwendet SQL Server temporäre Leasedauern, um BLOBs für den Speicher zu reservieren, wobei jede BLOB-Leasedauer alle 45 bis 60 Sekunden erneuert wird.During normal operation, SQL Server uses temporary leases to reserve Blobs for storage with a renewal of each Blob lease every 45 to 60 seconds. Wenn ein Server abstürzt und eine andere SQL Server-Instanz gestartet wird, die für die Verwendung derselben BLOBs konfiguriert ist, wartet die neue Instanz bis zu 60 Sekunden, dass die vorhandene Leasedauer für das BLOB abläuft.If a server crashes and another instance of SQL Server configured to use the same blobs is started, the new instance will wait up to 60 seconds for the existing lease on the Blob to expire. Wenn Sie die Datenbank an eine andere Instanz anfügen möchten und nicht 60 Sekunden bis zum Ablauf der Leasedauer warten können, können Sie die BLOB-Leasedauer explizit unterbrechen, um Fehler in Anfügevorgängen zu vermeiden.If you want to attach the database to another instance and you cannot wait for the lease to expire within 60 seconds, you can explicitly break the lease on the Blob to avoid any failures in attach operations.

Unterstützung von Tools und ProgrammierreferenzenTools and programming reference support

In diesem Abschnitt werden die Tools und Referenzbibliotheken für die Programmierung beschrieben, die beim Speichern von SQL Server-Datendateien im Azure-Speicher verwendet werden können.This section describes which tools and programming reference libraries can be used when storing SQL Server data files in Azure Storage.

PowerShell-UnterstützungPowerShell support

Verwenden Sie PowerShell-Cmdlets für die Speicherung von SQL Server-Datendateien im Azure-BLOB-Speicherdienst. Dabei wird anstatt auf einen Dateipfad auf den URL-Pfad eines BLOB-Speichers verwiesen.Use PowerShell cmdlets to store SQL Server data files in Azure Blob Storage service by referencing a Blob Storage URL path instead of a file path. Mit folgendem URL-Format auf Blobs zugreifen: http://storageaccount.blob.core.windows.net/<container>/<blob> .Access Blobs using the following URL format: http://storageaccount.blob.core.windows.net/<container>/<blob> .

Unterstützung von SQL Server-Objekten und -LeistungsindikatorenSQL Server Object and performance counters support

In SQL Server 2014 wurde ein neues SQL Server-Objekt eingeführt, das mit SQL Server-Datendateien im Azure-Speicher verwendet werden kann.Starting with SQL Server 2014, a new SQL Server object has been added to be used with SQL Server Data Files in Azure Storage feature. Das neue SQL Server-Objekt wird als SQL Server, HTTP_STORAGE_OBJECT aufgerufen und kann vom Systemmonitor verwendet werden, um Aktivitäten bei der Ausführung von SQL Server mit dem Microsoft Azure-Speicher zu überwachen.The new SQL Server object is called as SQL Server, HTTP_STORAGE_OBJECT and it can be used by System Monitor to monitor activity when running SQL Server with Windows Azure Storage.

Unterstützung von SQL Server Management StudioSQL Server Management Studio support

SQL Server Management Studio unterstützt die Verwendung der Funktion in mehreren Dialogfeldern.SQL Server Management Studio allows you to use this feature via several dialog windows. Geben Sie für den URL-Pfad des Speichercontainers z. B. > https://teststorageaccnt.blob.core.windows.net/testcontainer/:For example, you can type the URL path of the storage container, such as > https://teststorageaccnt.blob.core.windows.net/testcontainer/ :

als Pfad in verschiedenen Dialogfeldern ein, z. B. Neue Datenbank, Datenbank anfügen und Datenbank wiederherstellen.as a Path in several dialog windows, such as New Database, Attach Database, and Restore Database. Weitere Informationen finden Sie unter Tutorial: Verwenden des Microsoft Azure BLOB-Speicherdiensts mit SQL Server 2016-Datenbanken.For more information, see Tutorial: Using the Microsoft Azure Blob storage service with SQL Server 2016 databases.

Unterstützung von SQL Server Management ObjectsSQL Server Management Objects support

Bei Verwendung von SQL Server-Datendateien in Azure werden alle SQL Server Management Objects (SMO) unterstützt.When using the SQL Server Data Files in Azure feature, all SQL Server Management Objects (SMO) are supported. Wenn ein SMO-Objekt einen Dateipfad erfordert, verwenden Sie das BLOB-URL-Format anstelle eines lokalen Dateipfads, beispielsweise https://teststorageaccnt.blob.core.windows.net/testcontainer/.If an SMO object requires a file path, use the BLOB URL format instead of a local file path, such as https://teststorageaccnt.blob.core.windows.net/testcontainer/. Weitere Informationen zu SQL Server Management Objects (SMO) finden Sie unter SQL Server Management Objects (SMO)-Programmierungshandbuch in der SQL Server-Onlinedokumentation.For more information about SQL Server Management Objects (SMO), see SQL Server Management Objects (SMO) Programming Guide in SQL Server Books Online.

Unterstützung von Transact-SQLTransact-SQL support

Durch die neue Funktion wurde folgende Änderung in der -Oberfläche eingeführt:This new feature has introduced the following change in the Transact-SQL surface area:

  • Die neue int -Spalte credential_idin der sys.master_files -Systemsicht.A new int column, credential_id, in the sys.master_files system view. Die credential_id -Spalte ermöglicht die Rückverweisung von Azure-Speicher-fähigen Datendateien auf sys.credentials, um die zugehörigen Anmeldeinformationen zu identifizieren.The credential_id column is used to enable Azure Storage enabled data files to be cross-referenced back to sys.credentials for the credentials created for them. Sie können die Spalte zur Problembehandlung verwenden, beispielsweise, wenn Anmeldeinformationen nicht gelöscht werden können, weil sie von einer Datenbankdatei verwendet werden.You can use it for troubleshooting, such as a credential cannot be deleted when there is a database file which uses it.

Problembehandlung für SQL Server-Datendateien in Microsoft Azure Troubleshooting for SQL Server Data Files in Microsoft Azure

Um Fehler aufgrund von nicht unterstützten Funktionen oder Einschränkungen zu vermeiden, sollten Sie sich zunächst unter Einschränkungeninformieren.To avoid errors due to unsupported features or limitations, first review Limitations.

In der folgenden Liste sind Fehler aufgeführt, die bei Verwendung von SQL Server-Datendateien mit dem Azure-Speicher auftreten können.The list of errors that you might get when using the SQL Server Data Files in Azure Storage feature are as follows.

AuthentifizierungsfehlerAuthentication errors

  • Die %.\ls-Anmeldeinformationen können nicht gelöscht werden, weil sie von einer aktiven Datenbankdatei verwendet werden.* Cannot drop the credential '%.\ls' because it is used by an active database file.*
    Lösung: Dieser Fehler kann angezeigt werden, wenn Sie versuchen, Anmeldeinformationen zu löschen, die noch von einer aktiven Datenbankdatei im Azure-Speicher verwendet werden.Resolution: You may see this error when you try to drop a credential that is still being used by an active database file in Azure Storage. Um die Anmeldeinformationen zu löschen, müssen Sie zuerst das zugeordnete BLOB löschen, das diese Datenbankdatei enthält.To drop the credential, first you must delete the associated blob that has this database file. Um ein BLOB zu löschen, das über eine aktive Leasedauer verfügt, müssen Sie zunächst die Leasedauer unterbrechen.To delete a blob that has an active lease, you must first break the lease.

  • Für den Container wurde nicht ordnungsgemäß eine SAS (Shared Access Signature) erstellt. Shared Access Signature has not been created on the container correctly.
    Lösung: Stellen Sie sicher, dass eine SAS ordnungsgemäß für den Container erstellt wurde.Resolution: Make sure that you have created a Shared Access Signature on the container correctly. Informieren Sie sich unter Tutorial: Verwenden des Microsoft Azure BLOB-Speicherdiensts mit SQL Server 2016-Datenbanken über die Anweisungen aus Lektion 2.Review the instructions given in Lesson 2 in Tutorial: Using the Microsoft Azure Blob storage service with SQL Server 2016 databases .

  • SQL Server-Anmeldeinformationen wurden nicht ordnungsgemäß erstellt. SQL Server credential has not been not created correctly.
    Lösung: Vergewissern Sie sich, dass Sie für das Feld Identität „Shared Access Signature“ verwendet und ordnungsgemäß einen geheimen Schlüssel erstellt haben.Resolution: Make sure that you have used 'Shared Access Signature' for the Identity field and created a secret correctly. Informieren Sie sich unter Tutorial: Verwenden des Microsoft Azure BLOB-Speicherdiensts mit SQL Server 2016-Datenbankenüber die Anweisungen aus Lektion 3.Review the instructions given in Lesson 3 in Tutorial: Using the Microsoft Azure Blob storage service with SQL Server 2016 databases.

    Fehler bei BLOB-Leasedauer:Lease blob errors:

  • Fehler beim Starten von SQL Server, nachdem eine andere Instanz, die dieselben BLOB-Dateien verwendet, abgestürzt ist.Error when trying to start SQL Server after another instance using the same blob files has crashed. Lösung: Während des normalen Betriebs verwendet SQL Server temporäre Leasedauern, um BLOBs für den Speicher zu reservieren, wobei jede BLOB-Leasedauer alle 45 bis 60 Sekunden erneuert wird.Resolution: During normal operation, SQL Server uses temporary leases to reserve Blobs for storage with a renewal of each Blob lease every 45 to 60 seconds. Wenn ein Server abstürzt und eine andere SQL Server-Instanz gestartet wird, die für die Verwendung derselben BLOBs konfiguriert ist, wartet die neue Instanz bis zu 60 Sekunden, dass die vorhandene Leasedauer für das BLOB abläuft.If a server crashes and another instance of SQL Server configured to use the same blobs is started, the new instance will wait up to 60 seconds for the existing lease on the Blob to expire. Wenn Sie die Datenbank an eine andere Instanz anfügen möchten und nicht 60 Sekunden bis zum Ablauf der Leasedauer warten können, können Sie die BLOB-Leasedauer explizit unterbrechen, um Fehler in Anfügevorgängen zu vermeiden.If you want to attach the database to another instance and you cannot wait for the lease to expire within 60 seconds, you can explicitly break the lease on the Blob to avoid any failures in attach operations.

    DatenbankfehlerDatabase errors

  1. Fehler beim Erstellen einer Datenbank Errors when creating a database
    Informieren Sie sich unter Tutorial: Verwenden des Microsoft Azure BLOB-Speicherdiensts mit SQL Server 2016-Datenbankenüber die Anweisungen aus Lektion 4.Resolution: Review the instructions given in Lesson 4 in Tutorial: Using the Microsoft Azure Blob storage service with SQL Server 2016 databases.

  2. Fehler beim Ausführen der ALTER-Anweisung Errors when running the Alter statement
    Lösung: Stellen Sie sicher, dass die ALTER DATABASE-Anweisung ausgeführt wird, während die Datenbank online ist.Resolution: Make sure to execute the Alter Database statement when the database is online. Wenn Sie die Datendateien in den Azure-Speicher kopieren, erstellen Sie immer ein Seitenblob und kein Blockblob.When copying the data files to Azure Storage, always create a page blob not a block blob. Andernfalls erzeugt ALTER DATABASE einen Fehler.Otherwise, ALTER Database will fail. Informieren Sie sich unter Tutorial: Verwenden des Microsoft Azure BLOB-Speicherdiensts mit SQL Server 2016-Datenbankenüber die Anweisungen aus Lektion 7.Review the instructions given in Lesson 7 in Tutorial: Using the Microsoft Azure Blob storage service with SQL Server 2016 databases.

  3. Fehlercode 5120: Die physische Datei „%.\ls“ kann nicht geöffnet werden. Betriebssystemfehler %d: „%ls“* Error code 5120 Unable to open the physical file "%.\ls". Operating system error %d: "%ls"*
    Lösung: Bei Verwendung der neuen Erweiterung kann derzeit nur eine SQL Server-Instanz (nicht mehrere) auf dieselben Datenbankdateien im Azure-Speicher zugreifen.Resolution: Currently, this new enhancement does not support more than one SQL Server instance accessing the same database files in Azure Storage at the same time. Wenn ServerA mit einer aktiven Datenbankdatei online ist und ServerB versehentlich gestartet wird und auch über eine Datenbank verfügt, die auf dieselbe Datendatei verweist, kann die Datenbank des zweiten Servers nicht gestartet werden und verursacht den Fehlercode 5120 Die physische Datei „%.ls“ kann nicht geöffnet werden*. Betriebssystemfehler %d: „%ls“.If ServerA is online with an active database file and if ServerB is accidently started, and it also has a database which points to the same data file, the second server will fail to start the database with an error *code 5120 Unable to open the physical file "%.\ls". Operating system error %d: "%ls"*.

    Um dieses Problem zu beheben, stellen Sie zuerst fest, ob „ServerA“ auf die Datenbankdatei im Azure-Speicher zugreifen muss oder nicht.To resolve this issue, first determine if you need ServerA to access the database file in Azure Storage or not. Wenn nicht, entfernen Sie einfach jegliche Verbindungen zwischen „ServerA“ und den Datenbankdateien im Azure-Speicher.If not, simply remove any connection between ServerA and the database files in Azure Storage. Führen Sie hierzu folgende Schritte aus:To do this, follow these steps:

    1. Legen Sie den Dateipfad von Server A mit der ALTER DATABASE-Anweisung auf einen lokalen Ordner fest.Set the file path of Server A to a local folder by using the ALTER Database statement.

    2. Schalten Sie die Datenbank auf Server A offline.Set the database offline in Server A.

    3. Kopieren Sie dann die Datenbankdateien aus Azure Storage im lokalen Ordner auf Server A. Dadurch wird sichergestellt, dass „ServerA“ noch lokal eine Kopie der Datenbank hat.Then, copy database files from Azure Storage to the local folder in Server A. This ensures that ServerA still has a copy of the database locally.

    4. Schalten Sie die Datenbank online.Set the database online.