Mettre à l’échelle de façon dynamique les ressources de base de données moyennant un temps d’arrêt minimalDynamically scale database resources with minimal downtime

S’APPLIQUE À : Azure SQL Database Azure SQL Managed Instance

Azure SQL Database et SQL Managed Instance vous permet d’ajouter de manière dynamique plus de ressources à votre base de données avec un temps d’arrêt minimal ; toutefois, il existe un délai de basculement durant lequel la connectivité à la base de données est perdue pendant un court laps de temps, qui peut être atténué à l’aide d’une logique de nouvelle tentative.Azure SQL Database and SQL Managed Instance enable you to dynamically add more resources to your database with minimal downtime; however, there is a switch over period where connectivity is lost to the database for a short amount of time, which can be mitigated using retry logic.

Vue d’ensembleOverview

Lorsque la demande ciblant votre application s’accroît de quelques appareils et clients à plusieurs millions, Azure SQL Database et SQL Managed Instance se mettent à l’échelle immédiatement avec un temps d’arrêt minimal.When demand for your app grows from a handful of devices and customers to millions, Azure SQL Database and SQL Managed Instance scale on the fly with minimal downtime. La scalabilité est une des caractéristiques les plus importantes de PaaS (plateforme en tant que service) qui vous permet d’ajouter plus de ressources de façon dynamique à votre service, si besoin.Scalability is one of the most important characteristics of platform as a service (PaaS) that enables you to dynamically add more resources to your service when needed. Azure SQL Database vous permet de modifier en toute simplicité vos ressources (alimentation processeur, mémoire, débit E/S et stockage) allouées à vos bases de données.Azure SQL Database enables you to easily change resources (CPU power, memory, IO throughput, and storage) allocated to your databases.

Vous pouvez limiter les problèmes de performances dus à une utilisation croissante de votre application qui ne peuvent être résolus en utilisant des méthodes de réécriture de requête ou d’indexation.You can mitigate performance issues due to increased usage of your application that cannot be fixed using indexing or query rewrite methods. L’ajout de ressources vous permet de réagir rapidement lorsqu’une base de données atteint la limite de ressources actuelles et a besoin de plus de puissance pour gérer les charges entrantes.Adding more resources enables you to quickly react when your database hits the current resource limits and needs more power to handle the incoming workload. Azure SQL Database vous permet aussi de diminuer la taille des ressources lorsqu’elles ne sont pas nécessaires afin de réduire les coûts.Azure SQL Database also enables you to scale-down the resources when they are not needed to lower the cost.

Vous n’avez pas à vous inquiéter de l’achat de matériel et du changement de l’infrastructure sous-jacente.You don’t need to worry about purchasing hardware and changing underlying infrastructure. La mise à l'échelle d’une base de données peut être effectuée en toute simplicité via le portail Azure à l’aide d’un curseur.Scaling a database can be easily done via the Azure portal using a slider.

Performances de SQL Database

Azure SQL Database offre le modèle d’achat DTU et le modèle d’achat DTU et le modèle d'achat vCore, tandis que Azure SQL Managed Instance offre uniquement le modèle d’achat vCore.Azure SQL Database offers the DTU-based purchasing model and the vCore-based purchasing model, while Azure SQL Managed Instance offers just the vCore-based purchasing model.

  • Le modèle d’achat DTU offre une combinaison de ressources de calcul, de mémoire et d’E/S réparties sur trois niveaux de service pour prendre en charge les charges de travail de base de données, aussi bien légères qu’importantes : De base, Standard et Premium.The DTU-based purchasing model offers a blend of compute, memory, and I/O resources in three service tiers to support lightweight to heavyweight database workloads: Basic, Standard, and Premium. Les niveaux de performance de chaque niveau fournissent une combinaison différente de ces ressources, à laquelle vous pouvez ajouter d’autres ressources de stockage.Performance levels within each tier provide a different mix of these resources, to which you can add additional storage resources.
  • Le modèle d’achat vCore vous permet de choisir le nombre de vCores, la quantité de mémoire et de stockage, ainsi que la vitesse de stockage.The vCore-based purchasing model lets you choose the number of vCores, the amount or memory, and the amount and speed of storage. Ce modèle d’achat propose trois niveaux de service : Usage général, Critique pour l’entreprise et Hyperscale.This purchasing model offers three service tiers: General Purpose, Business Critical, and Hyperscale.

Vous pouvez créer votre première application dans une petite base de données unique pour un coût mensuel modique avec le niveau de service De base, Standard ou Usage général, puis remplacer ce niveau de service manuellement ou par programme à tout moment par le niveau de service Premium ou Critique pour l’entreprise, afin de répondre aux besoins de votre solution.You can build your first app on a small, single database at a low cost per month in the Basic, Standard, or General Purpose service tier and then change its service tier manually or programmatically at any time to the Premium or Business Critical service tier to meet the needs of your solution. Vous pouvez ajuster les performances sans perturber le fonctionnement de votre application, ni l’expérience de vos clients.You can adjust performance without downtime to your app or to your customers. L’évolutivité dynamique permet à votre base de données de répondre en toute transparence aux besoins en ressources qui évoluent sans cesse et de payer uniquement les ressources dont vous avez besoin, lorsque vous en avez besoin.Dynamic scalability enables your database to transparently respond to rapidly changing resource requirements and enables you to only pay for the resources that you need when you need them.

Nota

La scalabilité dynamique est différente de la mise à l’échelle automatique.Dynamic scalability is different from autoscale. La mise à l’échelle automatique survient quand un service se met à l’échelle automatiquement en fonction de critères, tandis que l’extensibilité dynamique permet la mise à l’échelle manuelle avec un temps d’arrêt minimal.Autoscale is when a service scales automatically based on criteria, whereas dynamic scalability allows for manual scaling with a minimal downtime.

Des bases de données uniques dans Azure SQL Database prennent en charge la scalabilité dynamique manuelle, mais pas la mise à l’échelle automatique.Single databases in Azure SQL Database support manual dynamic scalability, but not autoscale. Pour plus expérience plus automatique, envisagez d’utiliser des pools élastiques, ce qui permet aux bases de données de partager des ressources dans un pool en fonction de leurs besoins individuels.For a more automatic experience, consider using elastic pools, which allow databases to share resources in a pool based on individual database needs. Toutefois, il existe des scripts qui peuvent aider à automatiser la scalabilité pour une base de données unique dans Azure SQL Database.However, there are scripts that can help automate scalability for a single database in Azure SQL Database. Pour obtenir un exemple, consultez la rubrique Utiliser PowerShell pour surveiller et mettre à l’échelle une base de données SQL.For an example, see Use PowerShell to monitor and scale a single SQL Database.

Vous pouvez changer les niveaux de service DTU ou les caractéristiques vCore à tout moment, avec un temps d’arrêt minimal de votre application (généralement inférieur à quatre secondes).You can change DTU service tiers or vCore characteristics at any time with minimal downtime to your application (generally averaging under four seconds). Pour de nombreuses entreprises et applications, la possibilité de créer des bases de données et d’augmenter ou ralentir les performances à la demande se révèle suffisante, surtout si les modèles d’utilisation sont relativement prévisibles.For many businesses and apps, being able to create databases and dial performance up or down on demand is enough, especially if usage patterns are relatively predictable. Mais si vous avez des modèles d'utilisation imprévisibles, il peut être difficile de gérer les coûts et votre modèle commercial.But if you have unpredictable usage patterns, it can make it hard to manage costs and your business model. Pour ce scénario, vous utilisez un pool élastique avec un certain nombre d’eDTU qui sont partagées entre plusieurs bases de données dans le pool.For this scenario, you use an elastic pool with a certain number of eDTUs that are shared among multiple databases in the pool.

Présentation de SQL Database : DTU de base de données unique par couche et niveau

Azure SQL Database offre la possibilité de mettre à l'échelle vos bases de données de façon dynamique :Azure SQL Database offers the ability to dynamically scale your databases:

  • Avec une base de données unique, vous pouvez utiliser des modèles DTU ou vCore pour définir le volume maximal de ressources assignées à chaque base de données.With a single database, you can use either DTU or vCore models to define maximum amount of resources that will be assigned to each database.
  • Les pools élastiques vous permettent de définir la limite de ressources maximale par groupe de bases de données dans le pool.Elastic pools enable you to define maximum resource limit per group of databases in the pool.

Azure SQL Managed Instance vous permet également une mise à l’échelle :Azure SQL Managed Instance allows you to scale as well:

  • SQL Managed Instance utilise le mode vCores et vous permet de définir le nombre maximum de cœurs UC et la quantité maximale de stockage alloués à votre instance.SQL Managed Instance uses vCores mode and enables you to define maximum CPU cores and maximum of storage allocated to your instance. Toutes les bases de données au sein de l’instance gérée partageront les ressources allouées à l’instance.All databases within the managed instance will share the resources allocated to the instance.

Quelle que soit la version, une action de mise à l’échelle (scale up ou scale down) aurait pour effet de redémarrer le processus du moteur de base de données et de le déplacer si nécessaire vers une autre machine virtuelle.Initiating scale up or scale down action in any of the flavors would restart database engine process and move it to a different virtual machine if needed. Le déplacement du processus du moteur de base de données vers une nouvelle machine virtuelle est un processus en ligne, ce qui vous permet de continuer à utiliser votre service Azure SQL Database existant pendant sa progression.Moving database engine process to a new virtual machine is online process where you can continue using your existing Azure SQL Database service while the process is in progress. Une fois le moteur de base de données cible entièrement initialisé et prêt à traiter les requêtes, les connexions sont basculées du moteur de base de données source vers le moteur de base de données cible.Once the target database engine is fully initialized and ready to process the queries, the connections will be switched from source to target database engine.

Nota

Une courte interruption de la connexion risque de se produire à la fin du processus de mise à l’échelle.You can expect a short connection break when the scale up/scale down process is finished. Si vous avez implémenté une Logique de nouvelles tentatives pour les erreurs temporaires standard, vous ne remarquerez pas le basculement.If you have implemented Retry logic for standard transient errors, you will not notice the failover.

Autres méthodes de mise à l’échelleAlternative scale methods

La mise à l'échelle des ressources reste la façon la plus facile et efficace pour améliorer les performances de votre base de données sans changer le code de la base de données ou de l’application.Scaling resources is the easiest and the most effective way to improve performance of your database without changing either the database or application code. Dans certains cas, même les niveaux de service, les tailles de calcul et les optimisations de performances les plus élevés peuvent ne pas suffire à gérer votre charge de travail correctement et de façon économique.In some cases, even the highest service tiers, compute sizes, and performance optimizations might not handle your workload in a successful and cost-effective way. Dans ce cas, vous disposez d’autres options pour mettre à l’échelle votre base de données :In that case you have these additional options to scale your database:

  • Lecture du Scale-out est une fonctionnalité disponible qui vous offre un réplica en lecture seule de vos données, sur lequel vous pouvez exécutez des requêtes en lecture seule exigeantes telles que les rapports.Read scale-out is an available feature where you are getting one read-only replica of your data where you can execute demanding read-only queries such as reports. Un réplica en lecture seule gère votre charge de travail en lecture seule sans affecter l’utilisation des ressources sur votre base de données principale.A read-only replica will handle your read-only workload without affecting resource usage on your primary database.
  • Le partitionnement de base de données est un ensemble de techniques qui vous permet de diviser vos données en plusieurs bases de données pour les mettre à l'échelle indépendamment.Database sharding is a set of techniques that enables you to split your data into several databases and scale them independently.

Étapes suivantesNext steps