Dynamisches Skalieren von Datenbankressourcen bei minimaler DowntimeDynamically scale database resources with minimal downtime

GILT FÜR: Azure SQL-Datenbank Azure SQL Managed Instance

Mit Azure SQL-Datenbank und SQL Managed Instance können Sie mit minimaler Downtime zusätzliche Ressourcen dynamisch zu Ihrer Datenbank hinzufügen. Allerdings wird die Verbindung mit der Datenbank während einer Umschaltzeit kurzzeitig unterbrochen, was jedoch durch Wiederholungslogik abgeschwächt werden kann.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.

ÜbersichtOverview

Wenn die Nachfrage nach Ihrer App von einigen wenigen Geräten und Kunden bis in den Millionenbereich zunimmt, können Azure SQL-Datenbank und SQL Managed Instance im laufenden Betrieb mit minimaler Downtime skaliert werden.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. Die Skalierbarkeit ist eines der wichtigsten Merkmale von PaaS (Platform-as-a-Service), mit dem Sie Ihrem Dienst bei Bedarf dynamisch weitere Ressourcen hinzufügen können.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. Mit Azure SQL-Datenbank können Sie Ressourcen (CPU-Leistung, Arbeitsspeicher, E/A-Durchsatz und Speicher), die Ihren Datenbanken zugeordnet sind, leicht ändern.Azure SQL Database enables you to easily change resources (CPU power, memory, IO throughput, and storage) allocated to your databases.

Sie können Leistungsprobleme beheben, die aufgrund der vermehrten Nutzung Ihrer Anwendung auftreten und sich per Indizierung oder mit Methoden zum Umschreiben von Abfragen nicht beseitigen lassen.You can mitigate performance issues due to increased usage of your application that cannot be fixed using indexing or query rewrite methods. Durch das Hinzufügen von weiteren Ressourcen können Sie schnell reagieren, wenn Ihre Datenbank die derzeitigen Ressourcenlimits erreicht und eine höhere Leistung benötigt, um die eingehende Workload verarbeiten zu können.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. Mit Azure SQL-Datenbank können Sie die Ressourcen auch zentral herunterskalieren, wenn sie nicht benötigt werden, um die Kosten zu senken.Azure SQL Database also enables you to scale-down the resources when they are not needed to lower the cost.

Sie müssen sich nicht mit dem Kauf von Hardware und der Änderung der zugrunde liegenden Infrastruktur befassen.You don’t need to worry about purchasing hardware and changing underlying infrastructure. Sie können eine Datenbank einfach im Azure-Portal über einen Schieberegler skalieren.Scaling a database can be easily done via the Azure portal using a slider.

Skalieren der Datenbankleistung

Azure SQL-Datenbank bietet das DTU-basierte Kaufmodell und das vCore-basierte Kaufmodell, während Azure SQL Managed Instance nur das vCore-basierte Kaufmodell bietet.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.

  • Das DTU-basierte Kaufmodell bietet zur Unterstützung von einfachen bis hin zu komplexen Datenbankworkloads eine Mischung aus Compute-, Arbeitsspeicher- und E/A-Ressourcen auf drei Dienstebenen: Basic, Standard und 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. Leistungsstufen auf den einzelnen Ebenen bieten unterschiedliche Ressourcenzusammenstellungen, durch zusätzliche Speicherressourcen ergänzt werden können.Performance levels within each tier provide a different mix of these resources, to which you can add additional storage resources.
  • Beim vCore-basierten Kaufmodell können Sie die Anzahl virtueller Kerne, die Arbeitsspeichermenge sowie Menge und Geschwindigkeit des Speichers auswählen.The vCore-based purchasing model lets you choose the number of vCores, the amount or memory, and the amount and speed of storage. Dieses Kaufmodell bietet drei Dienstebenen: „Universell“, „Unternehmenskritisch“ und „Hyperscale“.This purchasing model offers three service tiers: General Purpose, Business Critical, and Hyperscale.

Sie können zu einer geringen monatlichen Gebühr Ihre erste App in einer kleinen Einzeldatenbank in den Dienstebenen „Basic“, „Standard“ oder „Universell“ erstellen und diese dann jederzeit manuell oder programmgesteuert in die Dienstebenen „Premium“ oder „Unternehmenskritisch“ ändern, um die Anforderungen Ihrer Lösung zu erfüllen.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. Die Leistungsanpassung ist möglich, ohne dass es für die App oder für Ihre Kunden zu Ausfallzeiten kommt.You can adjust performance without downtime to your app or to your customers. Dank der dynamischen Skalierbarkeit kann Ihre Datenbank in transparenter Form auf sich schnell ändernde Ressourcenanforderungen reagieren, und Sie zahlen nur für die Ressourcen, die Sie jeweils benötigen.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.

Hinweis

Dynamische Skalierbarkeit ist nicht dasselbe wie automatische Skalierung.Dynamic scalability is different from autoscale. Bei der automatischen Skalierung wird ein Dienst automatisch auf der Grundlage von Kriterien skaliert. Die dynamische Skalierbarkeit ermöglicht dagegen eine manuelle Skalierung mit minimaler Downtime.Autoscale is when a service scales automatically based on criteria, whereas dynamic scalability allows for manual scaling with a minimal downtime.

Einzeldatenbanken in Azure SQL-Datenbank unterstützen die manuelle dynamische Skalierbarkeit, aber keine Autoskalierung.Single databases in Azure SQL Database support manual dynamic scalability, but not autoscale. Ein höheres Maß an Automatisierung lässt sich bei Bedarf mithilfe von Pools für elastische Datenbanken erzielen, die die gemeinsame Nutzung eines Ressourcenpools auf der Grundlage individueller Datenbankanforderungen ermöglichen.For a more automatic experience, consider using elastic pools, which allow databases to share resources in a pool based on individual database needs. Es gibt allerdings auch Skripts, die Sie bei der Automatisierung der Skalierbarkeit für eine einzelne Datenbank in Azure SQL-Datenbank unterstützen.However, there are scripts that can help automate scalability for a single database in Azure SQL Database. Ein Beispiel finden Sie unter Überwachen und Skalieren einer einzelnen SQL­-Datenbank mit PowerShell.For an example, see Use PowerShell to monitor and scale a single SQL Database.

Sie können DTU-Dienstebenen oder V-Kern-Merkmale jederzeit ändern und die Ausfallzeiten für Ihre Anwendung dabei gering halten (im Durchschnitt meist unter vier Sekunden).You can change DTU service tiers or vCore characteristics at any time with minimal downtime to your application (generally averaging under four seconds). Für viele Unternehmen und Apps genügt es, wenn Datenbanken erstellt werden können und sich die Leistung nach oben oder unten anpassen lässt – insbesondere, wenn die Nutzungsmuster relativ gut vorhersagbar sind.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. Bei unvorhersagbaren Nutzungsmustern kann es jedoch schwer sein, die Kosten und Ihr Geschäftsmodell zu verwalten.But if you have unpredictable usage patterns, it can make it hard to manage costs and your business model. In diesem Szenario verwenden Sie einen Pool für elastische Datenbanken mit einer bestimmten Anzahl von eDTUs, die von mehreren Datenbanken im Pool gemeinsam genutzt werden.For this scenario, you use an elastic pool with a certain number of eDTUs that are shared among multiple databases in the pool.

Einführung in SQL-Datenbank: Einzeldatenbank-DTUs nach Dienst- und Leistungsebene

Azure SQL-Datenbank ermöglicht ein dynamisches Skalieren Ihrer Datenbanken:Azure SQL Database offers the ability to dynamically scale your databases:

  • In einer Einzeldatenbank können Sie entweder DTU- oder V-Kern-Modelle nutzen, um die maximale Menge von Ressourcen zu definieren, die den einzelnen Datenbanken zugewiesen werden.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.
  • Bei Pools für elastische Datenbanken können Sie das maximale Ressourcenlimit pro Datenbankgruppe im Pool definieren.Elastic pools enable you to define maximum resource limit per group of databases in the pool.

In Azure SQL Managed Instance ist ebenfalls ein Skalieren möglich:Azure SQL Managed Instance allows you to scale as well:

  • SQL Managed Instance verwendet den Modus Virtuelle Kerne und ermöglicht Ihnen das Definieren der maximalen Anzahl von CPU-Kernen und des maximalen Speichers für Ihre Instanz.SQL Managed Instance uses vCores mode and enables you to define maximum CPU cores and maximum of storage allocated to your instance. Alle Datenbanken innerhalb der verwalteten Instanz nutzen die der Instanz zugeordneten Ressourcen gemeinsam.All databases within the managed instance will share the resources allocated to the instance.

Wenn Sie die Aktion zum Hoch- oder Herunterskalieren in einer der Varianten initiieren, wird der Datenbank-Engine-Prozess neu gestartet und bei Bedarf auf einen anderen virtuellen Computer verschoben.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. Das Verschieben des Datenbank-Engine-Prozesses auf einen neuen virtuellen Computer ist ein Onlineprozess, bei dem Sie den vorhandenen Azure SQL-Datenbank-Dienst weiterhin verwenden können, während der Prozess ausgeführt wird.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. Sobald die Zieldatenbank-Engine vollständig initialisiert und zum Verarbeiten der Abfragen bereit ist, werden die Verbindungen von der Quell- zur Zieldatenbank-Engine umgeleitet.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.

Hinweis

Sie müssen mit einer kurzen Unterbrechung der Verbindung rechnen, wenn das Hoch-/Herunterskalieren abgeschlossen ist.You can expect a short connection break when the scale up/scale down process is finished. Wenn Sie Wiederholungslogik bei vorübergehenden Standardfehlern implementiert haben, bemerken Sie den Failover nicht.If you have implemented Retry logic for standard transient errors, you will not notice the failover.

Alternative SkalierungsmethodenAlternative scale methods

Die Skalierung von Ressourcen ist die einfachste und effektivste Möglichkeit, die Leistung Ihrer Datenbank zu verbessern, ohne die Datenbank oder den Anwendungscode zu ändern.Scaling resources is the easiest and the most effective way to improve performance of your database without changing either the database or application code. Manchmal kann es vorkommen, dass auch die höchsten Dienstebenen, Computegrößen und Leistungsoptimierungen nicht zu einer erfolgreichen und kostengünstigen Verarbeitung Ihrer Workload führen.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. In diesen Fällen haben Sie weitere Möglichkeiten zum Skalieren Ihrer Datenbank:In that case you have these additional options to scale your database:

  • Die horizontale Leseskalierung ist ein verfügbares Feature, bei dem Sie ein schreibgeschütztes Replikat Ihrer Daten erhalten, über das Sie anspruchsvolle schreibgeschützte Abfragen (z. B. Berichte) ausführen können.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. Mit einem schreibgeschützten Replikat wird Ihre schreibgeschützte Workload verarbeitet, ohne dass sich Auswirkungen auf die Ressourcenverwendung in Ihrer primären Datenbank ergeben.A read-only replica will handle your read-only workload without affecting resource usage on your primary database.
  • Das Datenbank-Sharding umfasst eine Reihe von Verfahren, mit denen Sie Ihre Daten in mehrere Datenbanken aufteilen und unabhängig voneinander skalieren können.Database sharding is a set of techniques that enables you to split your data into several databases and scale them independently.

Nächste SchritteNext steps