Fichiers de données SQL Server dans Microsoft AzureSQL Server data files in Microsoft Azure

Cette rubrique s’applique à : OuiSQL Serveraucunbase de données SQL AzureaucunAzure SQL Data Warehouse aucun Parallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse Fichiers de données sur Azure Data files on Azure

Les fichiers de données SQL Server dans Microsoft Azure permettent la prise en charge native des fichiers de base de données SQL Server stockés en tant qu'objets blob Microsoft Azure.SQL Server Data Files in Microsoft Azure enables native support for SQL Server database files stored as Microsoft Azure Blobs. Elle permet de créer une base de données dans SQL Server exécuté localement ou sur une machine virtuelle dans Microsoft Azure, avec un emplacement de stockage dédié pour vos données dans le service de stockage d'objets blob Microsoft Azure.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. Cette amélioration simplifie en particulier le déplacement des bases de données entre les ordinateurs, grâce aux opérations par attachement et détachement.This enhancement especially simplifies to move databases between machines by using detach and attach operations. En outre, elle fournit un autre emplacement de stockage pour les fichiers de sauvegarde de base de données, ce qui permet de restaurer ces fichiers depuis ou vers le service Microsoft Azure Storage.In addition, it provides an alternative storage location for your database backup files by allowing you to restore from or to Microsoft Azure Storage. Par conséquent, elle permet plusieurs solutions hybrides en offrant différents avantages en matière de virtualisation des données, de déplacement des données, de sécurité et de disponibilité, le tout à des coûts et une maintenance réduits pour une mise à l'échelle élastique et une haute disponibilité.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.

Important

Le stockage des bases de données système dans le stockage d’objets blob Azure n’est pas recommandé et n’est pas pris en charge.Storing system databases in Azure blob storage is not recommended and is not supported.

Cette rubrique présente les concepts et les considérations essentiels au stockage des fichiers de données SQL Server dans le service Microsoft Azure Storage.This topic introduces concepts and considerations that are central to storing SQL Server data files in Microsoft Azure Storage Service.

Pour obtenir une expérience pratique de la façon d’utiliser cette nouvelle fonctionnalité, consultez Didacticiel : Utilisation du service de stockage d’objets blob Microsoft Azure avec des bases de données 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 .

Pourquoi utiliser des fichiers de données SQL Server dans Microsoft Azure ?Why use SQL Server data files in Microsoft Azure?

  • Migration facile et rapide : cette fonctionnalité simplifie le processus de migration en déplaçant une base de données à la fois entre les ordinateurs locaux ainsi qu’entre les environnements locaux et le cloud, sans aucune modification de l’application.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. Par conséquent, elle prend en charge une migration incrémentielle tout en conservant l'infrastructure locale existante.Therefore, it supports an incremental migration while maintaining your existing on-premises infrastructure in place. En outre, avoir accès à un stockage de données centralisé simplifie la logique d'application lorsqu'une application doit s'exécuter à plusieurs emplacements dans un environnement local.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. Dans certains cas, vous devez configurer rapidement des centres de calcul situés dans des emplacements géographiquement dispersés, qui rassemblent des données de nombreuses sources différentes.In some cases, you may need to rapidly setup computer centers in geographically dispersed locations, which gather data from many different sources. Grâce à cette nouvelle amélioration, au lieu de déplacer des données d'un emplacement à un autre, vous pouvez stocker un grand nombre de bases de données en tant qu'objets blob Microsoft Azure, puis exécuter des scripts Transact-SQL pour créer des bases de données sur des ordinateurs locaux ou virtuels.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.

  • Coûts réduits et stockage illimité : cette fonctionnalité vous permet de bénéficier d’un stockage hors site illimité dans Microsoft Azure tout en tirant parti des ressources de calcul locales.Cost and limitless storage benefits: This feature enables you to have limitless off-site storage in Microsoft Azure while leveraging on-premises compute resources. Lorsque vous utilisez Microsoft Azure comme emplacement de stockage, vous pouvez aisément vous concentrer sur la logique d'application sans surcharge pour la gestion du matériel.When you use Microsoft Azure as a storage location, you can easily focus on the application logic without the overhead of hardware management. Si vous perdez un nœud de calcul local, vous pouvez en configurer un autre sans aucun déplacement des données.If you lose a computation node on-premises, you can set up a new one without any data movement.

  • Haute disponibilité et récupération d'urgence : la fonctionnalité Fichiers de données SQL Server dans Microsoft Azure peut simplifier les solutions de haute disponibilité et de récupération d'urgence.High availability and disaster recovery benefits: Using SQL Server Data Files in Microsoft Azure feature might simplify the high availability and disaster recovery solutions. Par exemple, si une machine virtuelle dans Microsoft Azure ou une instance de SQL Server est défaillante, vous pouvez recréer les bases de données sur une nouvelle instance de SQL Server en rétablissant tout simplement les liens aux objets blob de Microsoft Azure.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.

  • Sécurité : cette nouvelle amélioration vous permet de séparer une instance de calcul d'une instance de stockage.Security benefits: This new enhancement allows you to separate a compute instance from a storage instance. Vous pouvez avoir une base de données entièrement chiffrée où le déchiffrement ne concerne que l'instance de calcul, mais pas l'instance de stockage.You can have a fully encrypted database with decryption only occurring on compute instance but not in a storage instance. En d'autres termes, cette nouvelle amélioration vous permet de chiffrer toutes les données dans un cloud public à l'aide de certificats TDE (Transparent Data Encryption), lesquels sont physiquement séparés des données.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. Les clés TDE peuvent être stockées dans la base de données master, qui est stockée localement sur votre ordinateur physiquement sécurisé et sauvegardée localement.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. Vous pouvez utiliser ces clés locales pour chiffrer les données, qui résident dans Microsoft Azure Storage.You can use these local keys to encrypt the data, which resides in Microsoft Azure Storage. Si les informations d'identification du compte de stockage en nuage (cloud) sont dérobées, vos données restent sécurisées dans la mesure où les certificats TDE résident toujours localement.If your cloud storage account credentials are stolen, your data still stays secure as the TDE certificates always reside in on-premises.

  • Sauvegarde d’instantané : Cette fonctionnalité vous permet d’utiliser les instantanés Azure pour obtenir des sauvegardes quasi instantanées et des restaurations plus rapides pour les fichiers de base de données stockés avec le service de stockage Azure Blob.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. Cette fonctionnalité vous permet de simplifier vos stratégies de sauvegarde et de restauration.This capability enables you to simplify your backup and restore policies. Pour plus d’informations, consultez Sauvegarde d’instantanés de fichiers pour les fichiers de base de données dans Azure.For more information, see File-Snapshot Backups for Database Files in Azure.

Concepts et configuration requiseConcepts and Requirements

Concepts liés au stockage AzureAzure Storage Concepts

Lorsque vous utilisez la fonctionnalité Fichiers de données SQL Server dans Windows Azure, vous devez créer un compte de stockage et un conteneur dans Windows Azure.When using SQL Server Data Files in Windows Azure feature, you need to create a storage account and a container in Windows Azure. Ensuite, vous devez créer des informations d'identification SQL Server, qui comportent des informations sur la stratégie du conteneur ainsi qu'une signature d'accès partagé qui est nécessaire pour accéder au conteneur.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.

Dans Microsoft Azure, un compte de stockage Azure représente le niveau le plus élevé de l’espace de noms pour accéder aux objets blob.In Microsoft Azure, an Azure storage account represents the highest level of the namespace for accessing Blobs. Un compte de stockage peut contenir un nombre illimité de conteneurs, tant que leur taille totale ne dépasse pas la limite de stockage.A storage account can contain an unlimited number of containers, as long as their total size is below the storage limits. Pour les informations les plus récentes sur les limites de stockage, consultez Abonnement Azure et limites, quotas et contraintes du service.For the latest information on storage limits, see Azure Subscription and Service Limits, Quotas, and Constraints. Un conteneur regroupe un ensemble d’ objets blob.A container provides a grouping of a set of Blobs. Tous les objets blob doivent figurer dans un conteneur.All Blobs must be in a container. Un compte peut contenir un nombre illimité de conteneurs.An account can contain an unlimited number of containers. De la même manière, un conteneur peut également stocker un nombre illimité d'objets blob.Similarly, a container can store an unlimited number of Blobs as well. Il existe deux types d’objets blob qui peuvent être enregistrés dans un stockage Azure : les objets blob de blocs et les objets blob de pages.There are two types of blobs that can be stored in Azure Storage: block and page blobs. Cette nouvelle fonctionnalité utilise des objets blob de pages, qui sont plus efficaces quand les plages d’octets d’un fichier sont fréquemment modifiées.This new feature uses Page blobs, which are more efficient when ranges of bytes in a file are modified frequently. Vous pouvez accéder aux objets blob avec le format d'URL suivant : 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>.

Considérations sur la facturation AzureAzure billing considerations

L’estimation du coût d’utilisation des services Azure est une question importante dans le processus de prise de décision et de planification.Estimating the cost of using Azure Services is an important matter in the decision making and planning process. Lorsque vous stockez des fichiers de données SQL Server dans le stockage Azure, vous devez payer les coûts associés au stockage et aux transactions.When storing SQL Server data files in Azure Storage, you need to pay costs associated with storage and transactions. En outre, l’implémentation de la fonctionnalité Fichiers de données SQL Server dans le stockage Azure nécessite un renouvellement implicite du bail d’objets blob toutes les 45 à 60 secondes.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. Cela entraîne également des coûts de transaction par fichier de base de données (.mdf ou .ldf, par exemple).This also results in transaction costs per database file, such as .mdf or .ldf. Utilisez les informations de la page Tarification Azure pour estimer les coûts mensuels associés à l’utilisation de Stockage Azure et de Machines virtuelles Azure.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.

Concepts de SQL ServerSQL Server concepts

Si vous utilisez cette nouvelle amélioration, assurez-vous de procéder comme suit :When using this new enhancement, you are required to do the followings:

  • Créez une stratégie sur un conteneur et générez également une clé de signature d'accès partagé (SAS).You must create a policy on a container and also generate a shared access signature (SAS) key.

  • Pour chaque conteneur utilisé par un fichier de données ou un fichier journal, créez des informations d'identification SQL Server dont le nom correspond au chemin d'accès du conteneur.For each container used by a data or a log file, you must create a SQL Server Credential whose name matches the container path.

  • Stockez les informations relatives au conteneur de stockage Azure, le nom de stratégie associé et la clé SAS dans la banque d’informations d’identification de SQL Server.You must store the information regarding Azure Storage container, its associated policy name, and SAS key in the SQL Server credential store.

    Dans l'exemple suivant, on suppose qu'un conteneur Azure Storage a été créé et qu'une stratégie a été créée avec des droits de lecture, d'écriture et de création de liste.The following example assumes that an Azure storage container has been created, and a policy has been created with read, write, list, rights. La création d'une stratégie sur un conteneur génère une clé SAS qui peut rester non chiffrée en mémoire et qui est requise par SQL Server pour accéder aux fichiers d'objet blob dans le conteneur.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. Dans l'extrait de code suivant, remplacez '<your SAS key>' par une entrée similaire à la suivante : '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>'. Pour plus d'informations, consultez Gérer l'accès aux ressources Azure Storage.For more information, see Manage Access to Azure Storage Resources

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

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')  

Remarque importante : s'il existe des références actives aux fichiers de données dans un conteneur, toutes les tentatives de suppression des informations d'identification SQL Server correspondantes échouent.Important note: If there are any active references to data files in a container, attempts to delete the corresponding SQL Server credential fails.

SécuritéSecurity

Vous trouverez ci-dessous les considérations de sécurité et la configuration requise pour le stockage de fichiers de données SQL Server dans le stockage Azure.The following are security considerations and requirements when storing SQL Server Data Files in Azure Storage.

  • Lorsque vous créez un conteneur pour le service de stockage d’objets blob Azure, nous vous recommandons de définir l’accès sur Privé.When creating a container for the Azure Blob storage service, we recommend that you set the access to private. Lorsque vous définissez l’accès privé, le conteneur et les données blob ne peuvent être lus que par le propriétaire du compte Azure.When you set the access to private, container and blob data can be read by the Azure account owner only.

  • Lors de l’enregistrement des fichiers de base de données SQL Server dans le stockage Azure, vous devez utiliser une signature d’accès partagé, un URI qui octroie des droits d’accès restreints aux conteneurs, aux objets blob, aux files d’attente et aux tables.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. À l’aide d’une signature d’accès partagé, vous pouvez autoriser SQL Server à accéder aux ressources dans votre compte de stockage sans partager votre clé de compte de stockage Azure.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.

  • De plus, nous vous recommandons de continuer de suivre les pratiques de sécurité locales habituelles pour vos bases de données.In addition, we recommend that you continue implementing the traditional on-premises security practices for your databases.

Prérequis pour l’installationInstallation prerequisites

Vous trouverez ci-dessous les conditions préalables à l’installation pour le stockage de fichiers de données SQL Server dans le stockage Azure.The followings are installation prerequisites when storing SQL Server Data Files in Azure.

  • SQL Server local : SQL Server 2016 et ultérieur comprend cette fonctionnalité.SQL Server on-premises: SQL Server 2016 and later include this feature. Pour savoir comment télécharger la dernière version de SQL Server, consultez SQL Server.To learn how to download the latest version of SQL Server, see SQL Server.

  • SQL Server s’exécutant sur une machine virtuelle Azure : si vous installez SQL Server sur une machine virtuelle Azure, installez SQL Server 2016 ou mettez à jour votre instance existante.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. De la même manière, vous pouvez aussi créer une nouvelle machine virtuelle dans Azure à l’aide de l’image de la plateforme SQL Server 2016.Similarly, you can also create a new virtual machine in Azure using SQL Server 2016 platform image.

LimitationsLimitations

  • Dans la version actuelle de cette fonctionnalité, l’enregistrement de données FileStream dans le stockage Azure n’est pas pris en charge.In the current release of this feature, storing FileStream data in Azure Storage is not supported. Vous pouvez enregistrer des données Filestream dans une base de données locale intégrée au stockage Azure, mais vous ne pouvez pas déplacer ces données entre des machines à l’aide du stockage Azure.You can store Filestream data in an Azure storage integrated local database but you cannot move Filestream data between machines using Azure Storage. Pour les données FileStream , nous vous recommandons de continuer à utiliser les méthodes traditionnelles pour déplacer des fichiers (.mdf, .ldf) associés à Filestream entre différents ordinateurs.For FileStream data, we recommend that you continue using the traditional techniques to move the files (.mdf, .ldf) associated with Filestream between different machines.

  • Actuellement, cette nouvelle amélioration ne prend pas en charge plusieurs instances SQL Server qui accèdent en même temps aux mêmes fichiers de base de données dans Stockage Azure.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. Si ServerA est en ligne avec un fichier de base de données actif et si ServerB est démarré par erreur et qu’il comporte également une base de données qui désigne le même fichier de données, le deuxième serveur ne parvient pas à démarrer la base de données et génère le code d’erreur 5120 Impossible d’ouvrir le fichier physique « %.*ls ». Erreur %d du système d’exploitation : « %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".

  • Seuls les fichiers .mdf, .ldf et .ndf peuvent être enregistrés dans le Stockage Azure à l’aide de la fonctionnalité Fichiers de données SQL Server dans Azure.Only .mdf, .ldf, and .ndf files can be stored in Azure Storage by using the SQL Server Data Files in Azure feature.

  • En cas d’utilisation de la fonctionnalité Fichiers de données SQL Server dans Azure, la géoréplication de votre compte de stockage n’est pas prise en charge.When using the SQL Server Data Files in Azure feature, geo-replication for your storage account is not supported. Si un compte de stockage est géorépliqué et qu'un géobasculement a lieu, la base de données risque d'être endommagée.If a storage account is geo-replicated and a geo-failover happened, database corruption could occur.

  • Pour les limites de capacité, consultez Présentation du Stockage Blob.For capacity limitations, see Introduction to Blob storage.

  • Il est impossible d’enregistrer des données de l’OLTP en mémoire dans un objet blob Azure à l’aide de la fonctionnalité Fichiers de données SQL Server dans le stockage Azure.It is not possible to store In-Memory OLTP data in Azure Blob using the SQL Server Data Files in Azure Storage feature. Cela s’explique par le fait que l’OLTP en mémoire compte une dépendance sur FileStream et que, dans la version actuelle de cette fonctionnalité, l’enregistrement de données FileStream dans Azure Storage n’est pas pris en charge.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.

  • Si la fonctionnalité Fichiers de données SQL Server dans Windows Azure est activée, SQL Server effectue une comparaison de toutes les URL ou de tous les chemins d’accès de fichier à l’aide du classement défini dans la base de données master .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.

  • Lesgroupes de disponibilité AlwaysOn sont pris en charge tant que vous n’ajoutez pas de nouveaux fichiers de base de données à la base de données primaire.Always On availability groups are supported as long as you do not add new database files to the primary database. Si une opération de base de données nécessite la création d’un fichier dans la base de données primaire, désactivez d’abord les groupes de disponibilité AlwaysOn dans le nœud secondaire.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. Puis, effectuez l'opération de base de données dans la base de données primaire et sauvegardez la base de données dans le nœud principal.Then, perform the database operation on the primary database and backup the database in the primary node. Ensuite, restaurez la base de données sur le nœud secondaire, puis activez les groupes de disponibilité AlwaysOn dans le nœud secondaire.Next, restore the database to the secondary node, and enable Always On availability groups in the secondary node. Notez que les instances de cluster de basculement AlwaysOn ne sont pas prises en charge lors de l’utilisation de la fonctionnalité Fichiers de données SQL Server dans Azure.Note that Always On failover cluster instances is not supported when using the SQL Server data files in Azure feature.

  • En mode de fonctionnement normal, SQL Server utilise des baux temporaires pour réserver des objets blob pour le stockage, avec un renouvellement du bail de chaque objet blob toutes les 45 à 60 secondes.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. En cas de défaillance d'un serveur et du démarrage d'une autre instance de SQL Server configurée pour utiliser les mêmes objets blob, la nouvelle instance attend jusqu'à 60 secondes, le temps que le bail existant sur l'objet blob expire.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. Si vous voulez attacher la base de données à une autre instance et que vous ne pouvez pas attendre l'expiration du bail pendant 60 secondes, vous pouvez résilier explicitement le bail sur l'objet blob afin d'éviter les erreurs dans les opérations d'attachement.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.

Prise en charge des bibliothèques de référence de programmation et des outilsTools and programming reference support

Cette section décrit les bibliothèques de référence de programmation et les outils qui peuvent être utilisés lors du stockage de fichiers de données SQL Server dans le stockage Azure.This section describes which tools and programming reference libraries can be used when storing SQL Server data files in Azure Storage.

Prise en charge de PowerShellPowerShell support

Utilisez des applets de commande PowerShell pour stocker des fichiers de données SQL Server dans le service de stockage d’objets blob Azure en référençant un chemin d’accès d’URL de stockage d’objets blob à la place d’un chemin d’accès de fichier.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. Accédez aux objets blob à l’aide du format d’URL suivant :http://storageaccount.blob.core.windows.net/<container>/<blob>.Access Blobs using the following URL format: http://storageaccount.blob.core.windows.net/<container>/<blob> .

Prise en charge des compteurs de performances et des objets SQL ServerSQL Server object and performance counters support

Depuis SQL Server 2014, un nouvel objet SQL Server a été ajouté pour être utilisé avec la fonctionnalité Fichiers de données SQL Server dans le stockage Azure.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. Le nouvel objet SQL Server est appelé SQL Server, HTTP_STORAGE_OBJECT et il peut être utilisé par le Moniteur système pour surveiller l’activité lors de l’exécution de SQL Server avec Microsoft Azure Storage.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.

Prise en charge de SQL Server Management StudioSQL Server Management Studio support

SQL Server Management Studio vous permet d'utiliser cette fonctionnalité via plusieurs fenêtres de dialogue.SQL Server Management Studio allows you to use this feature via several dialog windows. Par exemple, vous pouvez entrer le chemin d’accès d’URL du conteneur de stockage sous la forme 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/ :

sous la forme d’un Chemin d’accès dans plusieurs fenêtres de boîte de dialogue, comme Nouvelle base de données, Attacher la base de données, et Restaurer la base de données.as a Path in several dialog windows, such as New Database, Attach Database, and Restore Database. Pour plus d’informations, consultez Didacticiel : Utilisation du service de stockage d’objets blob Microsoft Azure avec des bases de données SQL Server 2016.For more information, see Tutorial: Using the Microsoft Azure Blob storage service with SQL Server 2016 databases.

Prise en charge d’objets SMO (SQL Server Management Objects)SQL Server Management Objects (SMO) support

Quand vous utilisez la fonctionnalité Fichiers de données SQL Server dans Azure, tous les objets SMO (SQL Server Management Objects) sont pris en charge.When using the SQL Server Data Files in Azure feature, all SQL Server Management Objects (SMO) are supported. Si un objet SMO nécessite un chemin d'accès de fichier, utilisez le format d'URL BLOB à la place d'un chemin d'accès de fichier local, tel que 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/. Pour plus d’informations sur les objets SMO, consultez Guide de programmation SMO (SQL Server Management Objects) dans la documentation en ligne de SQL Server.For more information about SQL Server Management Objects (SMO), see SQL Server Management Objects (SMO) Programming Guide in SQL Server Books Online.

Prise en charge de Transact-SQLTransact-SQL support

Cette nouvelle fonctionnalité a apporté le changement suivant dans la surface d'exposition de Transact-SQL :This new feature has introduced the following change in the Transact-SQL surface area:

  • Une nouvelle colonne int , credential_id, dans la vue système sys.master_files .A new int column, credential_id, in the sys.master_files system view. La colonne credential_id permet aux fichiers de données prenant en charge Azure Storage d’être référencés dans sys.credentials concernant les informations d’identification créées à leur intention.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. Vous pouvez l'utiliser pour le dépannage, par exemple dans le cas où des informations d'identification ne peuvent pas être supprimées parce qu'elles sont utilisées par un fichier de base de données.You can use it for troubleshooting, such as a credential cannot be deleted when there is a database file which uses it.

Dépannage pour les fichiers de données SQL Server dans Microsoft AzureTroubleshooting for SQL Server Data Files in Microsoft Azure

Pour éviter des erreurs attribuables à des limitations ou à des fonctionnalités non prises en charge, passez d'abord en revue Limitations.To avoid errors due to unsupported features or limitations, first review Limitations.

Voici la liste des erreurs possibles lorsque vous utilisez la fonctionnalité Fichiers de données SQL Server dans le stockage Azure.The list of errors that you might get when using the SQL Server Data Files in Azure Storage feature are as follows.

Erreurs d'authentificationAuthentication errors

  • Impossible de supprimer les informations d’identification « %.*ls » parce qu’elles sont utilisées par un fichier de base de données actif. Cannot drop the credential '%.*ls' because it is used by an active database file.
    Résolution : vous pouvez voir cette erreur lorsque vous tentez de supprimer des informations d’identification encore utilisées par un fichier de base de données actif dans le stockage Azure.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. Pour supprimer les informations d'identification, vous devez d'abord supprimer l'objet blob associé qui comporte ce fichier de base de données.To drop the credential, first you must delete the associated blob that has this database file. Pour supprimer un objet blob dont le bail est actif, vous devez d'abord résilier le bail.To delete a blob that has an active lease, you must first break the lease.

  • La signature d'accès partagé n'a pas été créée correctement sur le conteneur. Shared Access Signature has not been created on the container correctly.
    Résolution : vérifiez que vous avez créé correctement une signature d'accès partagé sur le conteneur.Resolution: Make sure that you have created a Shared Access Signature on the container correctly. Passez en revue les instructions fournies à la leçon 2 dans Didacticiel : Utilisation du service de stockage d’objets blob Microsoft Azure avec des bases de données SQL Server 2016 .Review the instructions given in Lesson 2 in Tutorial: Using the Microsoft Azure Blob storage service with SQL Server 2016 databases .

  • Les informations d'identification de SQL Server n'ont pas été créées correctement. SQL Server credential has not been not created correctly.
    Résolution : vérifiez que vous avez utilisé une « signature d'accès partagé » pour le champ Identité et que vous avez créé un secret correctement.Resolution: Make sure that you have used 'Shared Access Signature' for the Identity field and created a secret correctly. Passez en revue les instructions fournies à la leçon 3 dans Didacticiel : Utilisation du service de stockage d’objets blob Microsoft Azure avec des bases de données SQL Server 2016.Review the instructions given in Lesson 3 in Tutorial: Using the Microsoft Azure Blob storage service with SQL Server 2016 databases.

    Erreurs de bail d'un objet blob :Lease blob errors:

  • Erreur lors de la tentative de démarrage de SQL Server après la défaillance d'une autre instance utilisant les mêmes fichiers d'objets blob.Error when trying to start SQL Server after another instance using the same blob files has crashed. Résolution : en mode de fonctionnement normal, SQL Server utilise des baux temporaires pour réserver des objets blob pour le stockage, avec un renouvellement du bail de chaque objet blob toutes les 45 à 60 secondes.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. En cas de défaillance d'un serveur et du démarrage d'une autre instance de SQL Server configurée pour utiliser les mêmes objets blob, la nouvelle instance attend jusqu'à 60 secondes, le temps que le bail existant sur l'objet blob expire.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. Si vous voulez attacher la base de données à une autre instance et que vous ne pouvez pas attendre l'expiration du bail pendant 60 secondes, vous pouvez résilier explicitement le bail sur l'objet blob afin d'éviter les erreurs dans les opérations d'attachement.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.

    Erreurs de base de donnéesDatabase errors

  1. Erreurs lors de la création d'une base de données Errors when creating a database
    Solution : passez en revue les instructions fournies à la leçon 4 dans Didacticiel : Utilisation du service de stockage d’objets blob Microsoft Azure avec des bases de données SQL Server 2016.Resolution: Review the instructions given in Lesson 4 in Tutorial: Using the Microsoft Azure Blob storage service with SQL Server 2016 databases.

  2. Erreurs lors de l'exécution de l'instruction Alter Errors when running the Alter statement
    Résolution : veillez à exécuter l'instruction Alter Database lorsque la base de données est en ligne.Resolution: Make sure to execute the Alter Database statement when the database is online. Lors de la copie des fichiers de données vers le stockage Azure, créez toujours un objet blob de pages, et non un objet blob de blocs.When copying the data files to Azure Storage, always create a page blob not a block blob. Sinon, la modification de la base de données avec l'instruction ALTER échouera.Otherwise, ALTER Database will fail. Passez en revue les instructions fournies à la leçon 7 dans Didacticiel : Utilisation du service de stockage d’objets blob Microsoft Azure avec des bases de données SQL Server 2016.Review the instructions given in Lesson 7 in Tutorial: Using the Microsoft Azure Blob storage service with SQL Server 2016 databases.

  3. Code d’erreur 5120 Impossible d’ouvrir le fichier physique « %.*ls ». Erreur %d du système d’exploitation : « %ls » Error code 5120 Unable to open the physical file "%.*ls". Operating system error %d: "%ls"
    Résolution : actuellement, cette nouvelle amélioration ne prend pas en charge plusieurs instances de SQL Server qui accèdent en même temps aux mêmes fichiers de base de données dans le stockage Azure.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. Si ServerA est en ligne avec un fichier de base de données actif et si ServerB est démarré par erreur et qu’il comporte également une base de données qui désigne le même fichier de données, le deuxième serveur ne parvient pas à démarrer la base de données et génère le code d’erreur 5120 Impossible d’ouvrir le fichier physique « %.*ls ». Erreur %d du système d’exploitation : « %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".

    Pour résoudre ce problème, déterminez d’abord si vous avez besoin du serveur A pour accéder au fichier de base de données dans le stockage Azure.To resolve this issue, first determine if you need ServerA to access the database file in Azure Storage or not. Si vous n’en avez pas besoin, supprimez simplement toute connexion entre le serveur A et les fichiers de base de données dans le stockage Azure.If not, simply remove any connection between ServerA and the database files in Azure Storage. Pour cela, procédez comme suit :To do this, follow these steps:

    1. Définissez le chemin d'accès du serveur A sur un dossier local à l'aide de l'instruction ALTER Database.Set the file path of Server A to a local folder by using the ALTER Database statement.

    2. Mettez la base de données hors connexion sur le serveur A.Set the database offline in Server A.

    3. Puis, copiez les fichiers de base de données du stockage Azure dans le dossier local du serveur A. Cela garantit que le serveur A dispose toujours d’une copie de la base de données localement.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. Mettez la base de données en ligne.Set the database online.

Étapes suivantesNext steps

Créer une base de donnéesCreate a database