Gegevens verplaatsen tussen uitgeschaalde clouddatabasesMoving data between scaled-out cloud databases

Als u een Software als een Service-ontwikkelaar bent en plotseling enorme vraag wanneer er in uw app, moet u de groei.If you are a Software as a Service developer, and suddenly your app undergoes tremendous demand, you need to accommodate the growth. Zodat toevoegen u meer databases (shards).So you add more databases (shards). Hoe opnieuw u de gegevens naar de nieuwe databases te distribueren zonder te onderbreken van de integriteit van gegevens?How do you redistribute the data to the new databases without disrupting the data integrity? Gebruik de hulpprogramma voor splitsen en samenvoegen om gegevens te verplaatsen van beperkte databases naar de nieuwe databases.Use the split-merge tool to move data from constrained databases to the new databases.

Het hulpprogramma voor splitsen en samenvoegen wordt uitgevoerd als een Azure-web-service.The split-merge tool runs as an Azure web service. Een beheerder of ontwikkelaar maakt gebruik van het hulpprogramma shardlets (gegevens uit een shard) verplaatsen tussen verschillende databases (shards).An administrator or developer uses the tool to move shardlets (data from a shard) between different databases (shards). Het hulpprogramma maakt gebruik van shard-Toewijzingsbeheer onderhouden van de database-service-metagegevens, en ervoor zorgen dat consistente toewijzingen.The tool uses shard map management to maintain the service metadata database, and ensure consistent mappings.

Overzicht

DownloadenDownload

Microsoft.Azure.SqlDatabase.ElasticScale.Service.SplitMergeMicrosoft.Azure.SqlDatabase.ElasticScale.Service.SplitMerge

DocumentatieDocumentation

  1. Zelfstudie voor elastische database splitsen en samenvoegen-hulpprogrammaElastic database Split-Merge tool tutorial
  2. Beveiligingsconfiguratie splitsen en samenvoegenSplit-Merge security configuration
  3. Aandachtspunten voor de beveiliging van splitsen en samenvoegenSplit-merge security considerations
  4. Shard-toewijzingsbeheerShard map management
  5. Bestaande databases migreren voor uitschalingMigrate existing databases to scale-out
  6. Hulpmiddelen voor elastic databaseElastic database tools
  7. Woordenlijst voor elastische Database-hulpprogramma 'sElastic Database tools glossary

Waarom gebruikt u het hulpprogramma voor splitsen en samenvoegenWhy use the split-merge tool

  • FlexibiliteitFlexibility

    Toepassingen moeten flexibel uitbreiden buiten de grenzen van een individuele Azure SQL DB-database.Applications need to stretch flexibly beyond the limits of a single Azure SQL DB database. Het hulpprogramma gebruiken om gegevens te verplaatsen naar behoefte nieuwe databases behoudt integriteit.Use the tool to move data as needed to new databases while retaining integrity.

  • Gesplitste te laten groeienSplit to grow

    Als u wilt vergroten de totale capaciteit voor het afhandelen van bij een explosieve groei, extra capaciteit maken met de gegevens voor sharding en door te distribueren voor incrementeel meer databases, totdat de capaciteit moet worden voldaan.To increase overall capacity to handle explosive growth, create additional capacity by sharding the data and by distributing it across incrementally more databases until capacity needs are fulfilled. Dit is een goed voorbeeld van de splitsen functie.This is a prime example of the split feature.

  • Als u wilt verkleinen samenvoegenMerge to shrink

    Capaciteit moet verkleinen door de seizoensgebonden aard van een bedrijf.Capacity needs shrink due to the seasonal nature of a business. Het hulpprogramma kunt u omlaag schalen naar minder schaaleenheden wanneer bedrijven wordt vertraagd.The tool lets you scale down to fewer scale units when business slows. De functie 'samenvoegen' in de Elastic Scale splitsen en samenvoegen-Service bevat informatie over deze vereiste.The ‘merge’ feature in the Elastic Scale split-merge Service covers this requirement.

  • Hotspots beheren door te shardlets verplaatsenManage hotspots by moving shardlets

    De toewijzing van shardlets naar shards kan met meerdere tenants per database leiden tot capaciteit knelpunten op sommige shards.With multiple tenants per database, the allocation of shardlets to shards can lead to capacity bottlenecks on some shards. Dit is vereist voor opnieuw toewijzen van shardlets of bezet shardlets verplaatsen naar nieuwe of minder gebruikte shards.This requires re-allocating shardlets or moving busy shardlets to new or less utilized shards.

Concepten en belangrijke functiesConcepts & key features

  • Klant gehoste servicesCustomer-hosted services

    De splitsen en samenvoegen wordt geleverd als een klant-gehoste-service.The split-merge is delivered as a customer-hosted service. U moet implementeren en de service hosten in uw Microsoft Azure-abonnement.You must deploy and host the service in your Microsoft Azure subscription. Het pakket dat u vanuit NuGet downloaden bevat een configuratiesjabloon om uit te voeren met de gegevens voor uw specifieke implementatie.The package you download from NuGet contains a configuration template to complete with the information for your specific deployment. Zie de splitsen en samenvoegen zelfstudie voor meer informatie.See the split-merge tutorial for details. Omdat de service wordt uitgevoerd in uw Azure-abonnement, kunt u deze kunt beheren en configureren van de meeste beveiligingsaspecten van de service.Since the service runs in your Azure subscription, you can control and configure most security aspects of the service. De standaardsjabloon bevat de opties voor het configureren van SSL, op basis van certificaten voor clientverificatie, versleuteling voor opgeslagen referenties, DoS beveiligen en IP-beperkingen.The default template includes the options to configure SSL, certificate-based client authentication, encryption for stored credentials, DoS guarding and IP restrictions. U vindt meer informatie over de beveiligingsaspecten in het volgende document beveiligingsconfiguratie splitsen en samenvoegen.You can find more information on the security aspects in the following document split-merge security configuration.

    De standaardwaarde geïmplementeerd met een Webrol en een werknemer de service wordt uitgevoerd.The default deployed service runs with one worker and one web role. Gebruik de A1-VM-grootte in Azure Cloud Services.Each uses the A1 VM size in Azure Cloud Services. Terwijl u kunt deze instellingen niet wijzigen bij het implementeren van het pakket, kunt u ze kunt wijzigen na een geslaagde implementatie in de actieve cloudservice (via Azure portal).While you cannot modify these settings when deploying the package, you could change them after a successful deployment in the running cloud service, (through the Azure portal). Houd er rekening mee dat de werkrol moet niet worden geconfigureerd voor meer dan één exemplaar voor technische redenen.Note that the worker role must not be configured for more than a single instance for technical reasons.

  • Integratie van de shard-kaartShard map integration

    De service voor splitsen en samenvoegen communiceert met de shard-toewijzing van de toepassing.The split-merge service interacts with the shard map of the application. Wanneer u de service voor splitsen en samenvoegen kunnen worden gesplitst of samengevoegd of shardlets verplaatsen tussen shards, wordt de service automatisch de shard-toewijzing bijgewerkt.When using the split-merge service to split or merge ranges or to move shardlets between shards, the service automatically keeps the shard map up-to-date. Om dit te doen, is de service maakt verbinding met de database voor shard map manager van de toepassing en -bereiken en -toewijzingen onderhoudt als splitsen of samenvoegen/verplaatsen aanvragen uitgevoerd.To do so, the service connects to the shard map manager database of the application and maintains ranges and mappings as split/merge/move requests progress. Dit zorgt ervoor dat de shard-toewijzing een actuele weergave altijd weergegeven wanneer bewerkingen voor splitsen en samenvoegen gaat.This ensures that the shard map always presents an up-to-date view when split-merge operations are going on. Splitsen, worden samenvoegen en shardlet gegevensverplaatsingsbewerkingen geïmplementeerd door een reeks shardlets uit de bron-shard verplaatsen naar de doel-shard.Split, merge and shardlet movement operations are implemented by moving a batch of shardlets from the source shard to the target shard. Tijdens de verplaatsing van shardlet de shardlets onderworpen aan de huidige batch zijn gemarkeerd als offline in de shard-toewijzing en zijn niet beschikbaar voor gegevensafhankelijke routering verbindingen met behulp van de OpenConnectionForKey API.During the shardlet movement operation the shardlets subject to the current batch are marked as offline in the shard map and are unavailable for data-dependent routing connections using the OpenConnectionForKey API.

  • Consistente shardlet-verbindingenConsistent shardlet connections

    Bij het verplaatsen van gegevens wordt gestart voor een nieuwe batch shardlets, beschikbaar elke shard-toewijzing gegevensafhankelijke routering verbindingen de shard opslaan van de shardlet worden afgesloten en volgende verbindingen van de shard-toewijzing die API 's om de shardlets worden geblokkeerd terwijl de verplaatsing van gegevens is wordt uitgevoerd om te voorkomen dat inconsistenties.When data movement starts for a new batch of shardlets, any shard-map provided data-dependent routing connections to the shard storing the shardlet are killed and subsequent connections from the shard map APIs to the shardlets are blocked while the data movement is in progress in order to avoid inconsistencies. Verbindingen met andere shardlets op de dezelfde shard wordt ook ophalen verwijderd, maar is wel mogelijk opnieuw onmiddellijk op opnieuw proberen.Connections to other shardlets on the same shard will also get killed, but will succeed again immediately on retry. Zodra de batch wordt verplaatst, wordt de shardlets online opnieuw uit voor de doel-shard worden gemarkeerd en wordt de brongegevens is verwijderd uit de bron-shard.Once the batch is moved, the shardlets are marked online again for the target shard and the source data is removed from the source shard. De service uitvalt tijdens de volgende stappen voor elke batch totdat alle shardlets zijn verplaatst.The service goes through these steps for every batch until all shardlets have been moved. Dit zal leiden tot meerdere verbinding kill-bewerkingen in de loop van de voltooiingsbewerking splitsen of samenvoegen/verplaatsen.This will lead to several connection kill operations during the course of the complete split/merge/move operation.

  • Shardlet beschikbaarheid beherenManaging shardlet availability

    Beperken van de verbinding aan de huidige batch van shardlets zoals hierboven wordt beschreven doden beperkt het bereik van niet-beschikbaarheid tot één batch van shardlets tegelijk.Limiting the connection killing to the current batch of shardlets as discussed above restricts the scope of unavailability to one batch of shardlets at a time. Dit heeft de voorkeur boven een benadering waarbij de volledige shard offline voor alle bijbehorende shardlets in de loop van een bewerking splitsen of samenvoegen zouden blijven.This is preferred over an approach where the complete shard would remain offline for all its shardlets during the course of a split or merge operation. De grootte van een batch, gedefinieerd als het aantal verschillende shardlets om te gaan op een tijdstip, is een configuratieparameter.The size of a batch, defined as the number of distinct shardlets to move at a time, is a configuration parameter. Deze kan worden gedefinieerd voor elke bewerking splitsen en samenvoegen, afhankelijk van de behoeften van de beschikbaarheid en prestaties van de toepassing.It can be defined for each split and merge operation depending on the application’s availability and performance needs. Houd er rekening mee dat het bereik dat wordt vergrendeld in de shard-toewijzing mogelijk groter is dan de opgegeven batch.Note that the range that is being locked in the shard map may be larger than the batch size specified. Dit komt doordat de service de grootte van het bereik kiest dat het werkelijke aantal sharding sleutelwaarden in de gegevens ongeveer overeenkomt met de batchgrootte.This is because the service picks the range size such that the actual number of sharding key values in the data approximately matches the batch size. Dit is belangrijk te onthouden is met name voor spaarzaam ingevuld sharding-sleutels.This is important to remember in particular for sparsely populated sharding keys.

  • Opslag van MetagegvensMetadata storage

    De service voor splitsen en samenvoegen gebruikt een database te onderhouden van de status ervan, en om Logboeken te bewaren tijdens de verwerking van aanvragen.The split-merge service uses a database to maintain its status and to keep logs during request processing. De gebruiker deze database maakt in het abonnement en biedt de verbindingsreeks voor het in het configuratiebestand voor de service-implementatie.The user creates this database in their subscription and provides the connection string for it in the configuration file for the service deployment. Beheerders van de organisatie van de gebruiker kunnen ook verbinding maken met deze database om voortgang van de aanvraag te beoordelen en gedetailleerde informatie over mogelijke problemen te onderzoeken.Administrators from the user’s organization can also connect to this database to review request progress and to investigate detailed information regarding potential failures.

  • Sharding-awarenessSharding-awareness

    De service voor splitsen en samenvoegen wordt onderscheid gemaakt tussen tussen (1) shard tabellen, (2) verwijzingstabellen en (3) normale tabellen.The split-merge service differentiates between (1) sharded tables, (2) reference tables, and (3) normal tables. De semantiek van een bewerking splitsen of samenvoegen/verplaatsen afhankelijk zijn van het type van de tabel die wordt gebruikt en worden als volgt gedefinieerd:The semantics of a split/merge/move operation depend on the type of the table used and are defined as follows:

    • Shard-tabellenSharded tables

      Operations verplaatsen shardlets verplaatsen van bron naar doel shard splitsen en samenvoegen.Split, merge, and move operations move shardlets from source to target shard. Na voltooiing van de totale aanvraag zijn de shardlets niet meer aanwezig zijn op de bron.After successful completion of the overall request, those shardlets are no longer present on the source. Houd er rekening mee dat de doeltabellen moeten aanwezig zijn op de doel-shard en mag geen gegevens in het doelbereik voordat de verwerking van de bewerking.Note that the target tables need to exist on the target shard and must not contain data in the target range prior to processing of the operation.

    • Naslaginformatie over tabellenReference tables

      Voor de splitsing verwijzingstabellen samen te voegen en verplaats bewerkingen kunt u de gegevens van de bron kopiëren naar de doel-shard.For reference tables, the split, merge and move operations copy the data from the source to the target shard. Merk echter op dat er geen wijzigingen doorgevoerd op de doel-shard voor een bepaalde tabel als een rij al aanwezig in deze tabel op de doelcomputer is.Note, however, that no changes occur on the target shard for a given table if any row is already present in this table on the target. De tabel is leeg zijn voor elke bewerking verwijzing tabel kopiëren naar verwerkt.The table has to be empty for any reference table copy operation to get processed.

    • Andere tabellenOther Tables

      Andere tabellen kunnen worden gebruikt op de bron- of het doel van een bewerking voor splitsen en samenvoegen.Other tables can be present on either the source or the target of a split and merge operation. De service voor splitsen en samenvoegen negeert deze tabellen voor verplaatsing van gegevens of te kopiëren.The split-merge service disregards these tables for any data movement or copy operations. Merk echter op dat ze deze bewerkingen in het geval van beperkingen kunnen verstoren.Note, however, that they can interfere with these operations in case of constraints.

      De informatie van verwijzing versus shard tabellen wordt verstrekt door de SchemaInfo API's op de shard-toewijzing.The information on reference vs. sharded tables is provided by the SchemaInfo APIs on the shard map. Het volgende voorbeeld wordt het gebruik van deze API's op een object opgegeven shard map manager:The following example illustrates the use of these APIs on a given shard map manager object:

      // Create the schema annotations
      SchemaInfo schemaInfo = new SchemaInfo();
      
      // Reference tables
      schemaInfo.Add(new ReferenceTableInfo("dbo", "region"));
      schemaInfo.Add(new ReferenceTableInfo("dbo", "nation"));
      
      // Sharded tables
      schemaInfo.Add(new ShardedTableInfo("dbo", "customer", "C_CUSTKEY"));
      schemaInfo.Add(new ShardedTableInfo("dbo", "orders", "O_CUSTKEY"));
      // Publish
      smm.GetSchemaInfoCollection().Add(Configuration.ShardMapName, schemaInfo);
      

      De tabellen 'regio' en 'land' worden gedefinieerd als verwijzingstabellen en met splitsen of samenvoegen/verplaatsen bewerkingen moeten worden gekopieerd.The tables ‘region’ and ‘nation’ are defined as reference tables and will be copied with split/merge/move operations. 'klant' en 'orders' zijn op zijn beurt gedefinieerd als shard tabellen.‘customer’ and ‘orders’ in turn are defined as sharded tables. C_CUSTKEY en O_CUSTKEY fungeren als de sharding-sleutel.C_CUSTKEY and O_CUSTKEY serve as the sharding key.

  • Referentiële integriteit aannemenReferential Integrity

    De service voor splitsen en samenvoegen analyseert afhankelijkheden tussen tabellen en refererende-sleutelrelaties van sleutel-primaire gebruikt om te zetten van de bewerkingen voor het verplaatsen van tabellen en shardlets.The split-merge service analyzes dependencies between tables and uses foreign key-primary key relationships to stage the operations for moving reference tables and shardlets. In het algemeen zijn verwijzingstabellen gekopieerd, eerst in volgorde van de afhankelijkheid, vervolgens shardlets in volgorde van de bijbehorende afhankelijkheden in elke batch worden gekopieerd.In general, reference tables are copied first in dependency order, then shardlets are copied in order of their dependencies within each batch. Dit is nodig zodat FK PK beperkingen met betrekking tot de doel-shard worden herkend wanneer de nieuwe gegevens worden ontvangen.This is necessary so that FK-PK constraints on the target shard are honored as the new data arrives.

  • Consistentie van de shard-toewijzing en de uiteindelijke voltooiingShard Map Consistency and Eventual Completion

    Geval van problemen, de service voor splitsen en samenvoegen operations hervat na een storing voordoet en is erop gericht om uit te voeren in voortgang van aanvragen.In the presence of failures, the split-merge service resumes operations after any outage and aims to complete any in progress requests. Maar mogelijk zijn er niet kan worden hersteld situaties, bijvoorbeeld wanneer de shard doel is zoekgeraakt of niet meer worden hersteld aangetast.However, there may be unrecoverable situations, e.g., when the target shard is lost or compromised beyond repair. Onder deze omstandigheden blijven bepaalde shardlets die zijn mag worden verplaatst, bevinden zich op de bron-shard.Under those circumstances, some shardlets that were supposed to be moved may continue to reside on the source shard. De service zorgt ervoor dat er alleen shardlet toewijzingen worden bijgewerkt nadat de gegevens die nodig is gekopieerd naar het doel.The service ensures that shardlet mappings are only updated after the necessary data has been successfully copied to the target. Shardlets worden alleen op de broncomputer verwijderd zodra alle hun gegevens zijn gekopieerd naar het doel en de bijbehorende toewijzingen zijn bijgewerkt.Shardlets are only deleted on the source once all their data has been copied to the target and the corresponding mappings have been updated successfully. De verwijderingsbewerking gebeurt op de achtergrond terwijl het bereik op de doel-shard al online is.The deletion operation happens in the background while the range is already online on the target shard. De service voor splitsen en samenvoegen is altijd zorgt ervoor dat de juistheid van de toewijzingen die zijn opgeslagen in de shard-toewijzing.The split-merge service always ensures correctness of the mappings stored in the shard map.

De gebruikersinterface van splitsen en samenvoegenThe split-merge user interface

De service voor splitsen en samenvoegen-pakket bevat een werkrol en een Webrol.The split-merge service package includes a worker role and a web role. De Webrol wordt gebruikt voor het verzenden van aanvragen voor splitsen en samenvoegen in een interactieve wijze.The web role is used to submit split-merge requests in an interactive way. De belangrijkste onderdelen van de gebruikersinterface zijn als volgt:The main components of the user interface are as follows:

  • BewerkingstypeOperation Type

    Het bewerkingstype is een keuzerondje die het soort bewerking die wordt uitgevoerd door de service voor deze aanvraag bepaalt.The operation type is a radio button that controls the kind of operation performed by the service for this request. U kunt kiezen tussen de splitsing, samenvoegen en scenario's te verplaatsen.You can choose between the split, merge and move scenarios. U kunt ook een eerder ingediende bewerking annuleren.You can also cancel a previously submitted operation. U kunt gebruiken splitsen, samenvoegen en verplaatsen van aanvragen voor bereik-shard-toewijzingen.You can use split, merge and move requests for range shard maps. Lijst-shard-kaarten alleen ondersteuning voor verplaatsingsbewerkingen.List shard maps only support move operations.

  • Shard-toewijzingShard Map

    De volgende sectie van de parameters van de aanvraag wordt informatie geboden over de shard-toewijzing en de database die als host fungeert voor de shard-toewijzing.The next section of request parameters covers information about the shard map and the database hosting your shard map. In het bijzonder, moet u de naam van de Azure SQL Database-server en de database die als host fungeert de shardmap referenties verbinding maken met de database voor shard, en ten slotte de naam van de shard-toewijzing op te geven.In particular, you need to provide the name of the Azure SQL Database server and database hosting the shardmap, credentials to connect to the shard map database, and finally the name of the shard map. De bewerking accepteert momenteel alleen een enkele set referenties.Currently, the operation only accepts a single set of credentials. Deze referenties moeten beschikken over voldoende machtigingen voor het uitvoeren van wijzigingen in de shard-toewijzing evenals garantie voor de gebruikersgegevens op de shards.These credentials need to have sufficient permissions to perform changes to the shard map as well as to the user data on the shards.

  • Bron-bereik (splitsen en samenvoegen)Source Range (split and merge)

    Een bewerking voor splitsen en samenvoegen verwerkt een bereik met de hoge en lage-sleutel.A split and merge operation processes a range using its low and high key. Als u een bewerking met een niet-gebonden hoge sleutelwaarde, schakel het selectievakje 'hoge sleutel is maximaal' in en laat het veld met de hoge sleutel leeg.To specify an operation with an unbounded high key value, check the “High key is max” check box and leave the high key field empty. De bereik-sleutelwaarden die u opgeeft, hoeft niet exact overeenkomt met een toewijzing en de grenzen in de shard-toewijzing.The range key values that you specify do not need to precisely match a mapping and its boundaries in your shard map. Als u geen begrenzingen bereik helemaal geen opgeeft wordt de service afgeleid het dichtstbijzijnde bereik voor u automatisch.If you do not specify any range boundaries at all the service will infer the closest range for you automatically. U kunt het GetMappings.ps1 PowerShell-script gebruiken om op te halen van de huidige toewijzingen in een opgegeven shard-toewijzing.You can use the GetMappings.ps1 PowerShell script to retrieve the current mappings in a given shard map.

  • Gedrag van de bron splitsen (splitsen)Split Source Behavior (split)

    Voor gesplitste bewerkingen, definieert het punt om op te splitsen van het bronbereik.For split operations, define the point to split the source range. U doen dit door op te geven van de sharding-sleutel waar u de splitsing moet plaatsvinden.You do this by providing the sharding key where you want the split to occur. Gebruik het keuzerondje opgeven of u het onderste gedeelte van het bereik (met uitzondering van de sleutel splitsen) wilt verplaatsen, of of u wilt dat het bovenste gedeelte verplaatsen (met inbegrip van de split-sleutel).Use the radio button specify whether you want the lower part of the range (excluding the split key) to move, or whether you want the upper part to move (including the split key).

  • Bron Shardlet (verplaatsen)Source Shardlet (move)

    Verplaatsingsbewerkingen verschillen van splitsen of samenvoegen bewerkingen zoals een bereik voor het beschrijven van de bron is niet vereist.Move operations are different from split or merge operations as they do not require a range to describe the source. Een bron voor het verplaatsen wordt gewoon geïdentificeerd door de sharding-sleutelwaarde die u van plan bent om te verplaatsen.A source for move is simply identified by the sharding key value that you plan to move.

  • Doel Shard (splitsen)Target Shard (split)

    Nadat u de gegevens hebt opgegeven op de bron van de splitsbewerking, moet u definiëren waar u de gegevens moeten worden gekopieerd naar door te geven van de Azure SQL Db-servernaam en databasenaam voor het doel.Once you have provided the information on the source of your split operation, you need to define where you want the data to be copied to by providing the Azure SQL Db server and database name for the target.

  • Doelbereik (samenvoegen)Target Range (merge)

    Bewerkingen verplaatsen shardlets aan een bestaande shard worden samengevoegd.Merge operations move shardlets to an existing shard. U kunt de bestaande shard identificeren door te geven van de grenzen van het bereik van het bestaande bereik dat u samenvoegen wilt met.You identify the existing shard by providing the range boundaries of the existing range that you want to merge with.

  • BatchgrootteBatch Size

    De batchgrootte bepaalt het aantal shardlets die op een moment tijdens de verplaatsing van gegevens offline gaan.The batch size controls the number of shardlets that will go offline at a time during the data movement. Dit is een geheel getal waar u lagere waarden kunt gebruiken wanneer u gevoelig zijn bent voor de lange perioden met uitvaltijd voor shardlets.This is an integer value where you can use smaller values when you are sensitive to long periods of downtime for shardlets. Hogere waarden verhoogt de tijd die een bepaalde shardlet is offline maar kan de prestaties verbeteren.Larger values will increase the time that a given shardlet is offline but may improve performance.

  • Bewerkings-ID (annuleren)Operation ID (Cancel)

    Als u een lopende bewerking die is niet meer nodig hebt, kunt u de bewerking annuleren door op te geven van de bewerkings-ID in dit veld.If you have an ongoing operation that is no longer needed, you can cancel the operation by providing its operation ID in this field. U kunt de bewerkings-ID ophalen uit de tabel van de status van aanvraag (Zie de sectie 8.1) of van de uitvoer in de webbrowser waar u de aanvraag heeft ingediend.You can retrieve the operation ID from the request status table (see Section 8.1) or from the output in the web browser where you submitted the request.

Vereisten en beperkingenRequirements and Limitations

De huidige implementatie van de service voor splitsen en samenvoegen is onderworpen aan de volgende vereisten en beperkingen:The current implementation of the split-merge service is subject to the following requirements and limitations:

  • De shards moeten aanwezig zijn en worden geregistreerd in de shard-toewijzing voor een bewerking splitsen en samenvoegen in deze shards kan worden uitgevoerd.The shards need to exist and be registered in the shard map before a split-merge operation on these shards can be performed.
  • De service maakt geen tabellen of andere databaseobjecten automatisch als onderdeel van hun werkzaamheden.The service does not create tables or any other database objects automatically as part of its operations. Dit betekent dat het schema voor alle shard en referentietabellen moet aanwezig zijn op de doel-shard voorafgaand aan elke bewerking splitsen of samenvoegen/verplaatsen.This means that the schema for all sharded tables and reference tables needs to exist on the target shard prior to any split/merge/move operation. Shard tabellen in het bijzonder moet leeg zijn in het bereik waarin nieuwe shardlets zijn om te worden toegevoegd door een bewerking splitsen of samenvoegen/verplaatsen.Sharded tables in particular are required to be empty in the range where new shardlets are to be added by a split/merge/move operation. Anders mislukt de bewerking de eerste consistentiecontrole op de doel-shard.Otherwise, the operation will fail the initial consistency check on the target shard. Let ook op die verwijzen naar gegevens alleen worden gekopieerd als de verwijzing tabel leeg is en of er geen garanties voor consistentie met betrekking tot andere gelijktijdige bewerkingen op tabellen met het schrijven.Also note that reference data is only copied if the reference table is empty and that there are no consistency guarantees with regard to other concurrent write operations on the reference tables. Dit wordt aangeraden: bij het uitvoeren van splitsen en samenvoegen/bewerkingen, geen andere bewerkingen voor schrijven wijzigingen aanbrengen in de tabellen.We recommend this: when running split/merge operations, no other write operations make changes to the reference tables.
  • De service is afhankelijk van rij identiteit die is ingesteld door een unieke index of sleutel die de sharding-sleutel ter verbetering van prestaties en betrouwbaarheid voor grote shardlets bevat.The service relies on row identity established by a unique index or key that includes the sharding key to improve performance and reliability for large shardlets. Dit kan de service om gegevens te verplaatsen op een nog betere granulatie dan alleen de sleutelwaarde sharding.This allows the service to move data at an even finer granularity than just the sharding key value. Hiermee kunt u de maximale hoeveelheid logboekruimte en vergrendelingen die vereist tijdens de bewerking zijn te verminderen.This helps to reduce the maximum amount of log space and locks that are required during the operation. Houd rekening met het maken van een unieke index of een primaire sleutel, met inbegrip van de sharding-sleutel voor een bepaalde tabel als u wilt gebruiken die tabel met splitsen of samenvoegen/verplaatsen aanvragen.Consider creating a unique index or a primary key including the sharding key on a given table if you want to use that table with split/merge/move requests. Uit prestatieoverwegingen moet de sharding-sleutel de toonaangevende kolom in de sleutel of de index.For performance reasons, the sharding key should be the leading column in the key or the index.
  • In de loop van de verwerking van aanvragen, sommige shardlet-gegevens mogelijk aanwezig zijn zowel op de bron en de doel-shard.During the course of request processing, some shardlet data may be present both on the source and the target shard. Dit is nodig om te beveiligen tegen fouten tijdens de verplaatsing shardlet.This is necessary to protect against failures during the shardlet movement. De integratie van splitsen en samenvoegen met de shard-toewijzing zorgt ervoor dat verbindingen via de gegevensafhankelijke routering API's via de OpenConnectionForKey methode voor de shard-toewijzing een inconsistente tussenliggende statussen niet ziet.The integration of split-merge with the shard map ensures that connections through the data-dependent routing APIs using the OpenConnectionForKey method on the shard map do not see any inconsistent intermediate states. Echter, bij het verbinden met de bron of de doel-shards zonder gebruik van de OpenConnectionForKey methode, inconsistente tussenliggende Staten mogelijk zichtbaar zijn, wanneer splitsen of samenvoegen/verplaatsen aanvragen gaat op.However, when connecting to the source or the target shards without using the OpenConnectionForKey method, inconsistent intermediate states might be visible when split/merge/move requests are going on. Deze verbindingen mogelijk gedeeltelijk of dubbele resultaten, afhankelijk van de timing of de shard onderliggende de verbinding weergegeven.These connections may show partial or duplicate results depending on the timing or the shard underlying the connection. Deze beperking wordt momenteel de verbindingen gemaakt door Elastic Scale meerdere Shard-query bevat.This limitation currently includes the connections made by Elastic Scale Multi-Shard-Queries.
  • De database met metagegevens voor de service voor splitsen en samenvoegen moet niet worden gedeeld tussen verschillende rollen.The metadata database for the split-merge service must not be shared between different roles. Bijvoorbeeld, een functie van de splitsen en samenvoegen-service die wordt uitgevoerd in de faseringsmodus moet verwijzen naar een andere metagegevensdatabase dan de productie-rol.For example, a role of the split-merge service running in staging needs to point to a different metadata database than the production role.

BillingBilling

De service voor splitsen en samenvoegen wordt uitgevoerd als een cloudservice in uw Microsoft Azure-abonnement.The split-merge service runs as a cloud service in your Microsoft Azure subscription. Daarom zijn de kosten voor cloudservices van toepassing op uw exemplaar van de service.Therefore charges for cloud services apply to your instance of the service. Tenzij u vaak splitsen of samenvoegen/verplaatsen bewerkingen wilt uitvoeren, wordt u aangeraden verwijderen van uw cloudservice voor splitsen en samenvoegen.Unless you frequently perform split/merge/move operations, we recommend you delete your split-merge cloud service. Die kosten voor het werken met opgeslagen of cloud service-exemplaren geïmplementeerd.That saves costs for running or deployed cloud service instances. U kunt opnieuw implementeren en de configuratie van uw direct uitvoerbaar starten wanneer u wilt splitsen of samenvoegen bewerkingen uitvoeren.You can re-deploy and start your readily runnable configuration whenever you need to perform split or merge operations.

BewakingMonitoring

Status van tabellenStatus tables

De Service voor splitsen en samenvoegen biedt de RequestStatus tabel in de database van de store metagegevens voor de bewaking van voltooide en voortdurende aanvragen.The split-merge Service provides the RequestStatus table in the metadata store database for monitoring of completed and ongoing requests. De tabel bevat een rij voor elke splitsen en samenvoegen-aanvraag die is ingediend voor dit exemplaar van de service voor splitsen en samenvoegen.The table lists a row for each split-merge request that has been submitted to this instance of the split-merge service. Het biedt de volgende informatie voor elke aanvraag:It gives the following information for each request:

  • TimestampTimestamp

    De datum en tijd waarop de aanvraag is gestart.The time and date when the request was started.

  • OperationIdOperationId

    De GUID die de aanvraag wordt aangeduid.A GUID that uniquely identifies the request. Deze aanvraag kan ook worden gebruikt om de bewerking annuleert, terwijl deze wordt nog steeds momenteel is.This request can also be used to cancel the operation while it is still ongoing.

  • StatusStatus

    De huidige status van de aanvraag.The current state of the request. De tabel voor lopende aanvragen, ook de huidige fase waarin de aanvraag is.For ongoing requests, it also lists the current phase in which the request is.

  • CancelRequestCancelRequest

    Een vlag die aangeeft of de aanvraag is geannuleerd.A flag that indicates whether the request has been canceled.

  • Wordt uitgevoerdProgress

    De schatting van een percentage van voor de bewerking is voltooid.A percentage estimate of completion for the operation. Een waarde van 50 geeft aan dat de bewerking ongeveer 50% voltooid is.A value of 50 indicates that the operation is approximately 50% complete.

  • DetailsDetails

    Een XML-waarde waarmee een meer gedetailleerd voortgangsrapport.An XML value that provides a more detailed progress report. Het rapport wordt uitgevoerd, wordt regelmatig bijgewerkt als sets rijen worden gekopieerd van bron naar doel.The progress report is periodically updated as sets of rows are copied from source to target. In het geval van fouten of uitzonderingen bevat deze kolom ook meer gedetailleerde informatie over de fout.In case of failures or exceptions, this column also includes more detailed information about the failure.

Azure DiagnosticsAzure Diagnostics

De service voor splitsen en samenvoegen maakt gebruik van Azure Diagnostics op basis van de Azure SDK 2.5 voor controle en diagnostische gegevens.The split-merge service uses Azure Diagnostics based on Azure SDK 2.5 for monitoring and diagnostics. U kunt de configuratie van de diagnostische gegevens beheren, zoals hier wordt beschreven: Inschakelen van diagnostische gegevens in Azure Cloudservices en Virtual Machines.You control the diagnostics configuration as explained here: Enabling Diagnostics in Azure Cloud Services and Virtual Machines. Het downloadpakket bevat twee configuraties voor diagnostische gegevens: één voor de Webserverrol en één voor de werkrol.The download package includes two diagnostics configurations - one for the web role and one for the worker role. Het bevat de definities voor logboekregistratie van prestatiemeteritems, IIS-logboeken, Windows-gebeurtenislogboeken en logboeken voor splitsen en samenvoegen-toepassing.It includes the definitions to log Performance Counters, IIS logs, Windows Event Logs, and split-merge application event logs.

Diagnostische gegevens implementerenDeploy Diagnostics

Notitie

Dit artikel is bijgewerkt voor het gebruik van de nieuwe Azure PowerShell Az-module.This article has been updated to use the new Azure PowerShell Az module. U kunt nog steeds de AzureRM-module die blijven ontvangen van oplossingen voor problemen tot ten minste December 2020.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Zie voor meer informatie over de nieuwe Az-module en compatibiliteit met AzureRM Introductie van de nieuwe Az-module van Azure PowerShell.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Zie voor instructies over Az-module installeren, Azure PowerShell installeren.For Az module installation instructions, see Install Azure PowerShell.

Belangrijk

De PowerShell Azure Resource Manager-module nog steeds wordt ondersteund door Azure SQL Database, maar alle toekomstige ontwikkeling is voor de module Az.Sql.The PowerShell Azure Resource Manager module is still supported by Azure SQL Database, but all future development is for the Az.Sql module. Zie voor deze cmdlets AzureRM.Sql.For these cmdlets, see AzureRM.Sql. De argumenten voor de opdrachten in de Az-module en de AzureRm-modules zijn vrijwel identiek zijn.The arguments for the commands in the Az module and in the AzureRm modules are substantially identical.

Als u controle en diagnostische gegevens met behulp van de diagnostische configuratie voor de web- en werknemersrollen geleverd door het NuGet-pakket, voert u de volgende opdrachten met behulp van Azure PowerShell:To enable monitoring and diagnostics using the diagnostic configuration for the web and worker roles provided by the NuGet package, run the following commands using Azure PowerShell:

    $storage_name = "<YourAzureStorageAccount>"
    $key = "<YourAzureStorageAccountKey"
    $storageContext = New-AzStorageContext -StorageAccountName $storage_name -StorageAccountKey $key  
    $config_path = "<YourFilePath>\SplitMergeWebContent.diagnostics.xml"
    $service_name = "<YourCloudServiceName>"
    Set-AzureServiceDiagnosticsExtension -StorageContext $storageContext -DiagnosticsConfigurationPath $config_path -ServiceName $service_name -Slot Production -Role "SplitMergeWeb"
    $config_path = "<YourFilePath>\SplitMergeWorkerContent.diagnostics.xml"
    $service_name = "<YourCloudServiceName>"
    Set-AzureServiceDiagnosticsExtension -StorageContext $storageContext -DiagnosticsConfigurationPath $config_path -ServiceName $service_name -Slot Production -Role "SplitMergeWorker"

U kunt meer informatie over het configureren en implementeren van de diagnostische instellingen hier vinden: Inschakelen van diagnostische gegevens in Azure Cloudservices en Virtual Machines.You can find more information on how to configure and deploy diagnostics settings here: Enabling Diagnostics in Azure Cloud Services and Virtual Machines.

Diagnostische gegevens ophalenRetrieve diagnostics

Eenvoudig kunt u uw diagnostische gegevens van de Visual Studio Server Explorer in het Azure-deel van de structuur van de Server Explorer openen.You can easily access your diagnostics from the Visual Studio Server Explorer in the Azure part of the Server Explorer tree. Open een exemplaar van Visual Studio en in de menubalk op weergave en Server Explorer.Open a Visual Studio instance, and in the menu bar click View, and Server Explorer. Klik op de Azure pictogram verbinding maken met uw Azure-abonnement.Click the Azure icon to connect to your Azure subscription. Navigeer vervolgens naar Azure Storage -> -> <your storage account> -> WADLogsTable-tabellen >.Then navigate to Azure -> Storage -> <your storage account> -> Tables -> WADLogsTable. Zie voor meer informatie, Server Explorer.For more information, see Server Explorer.

WADLogsTable

De WADLogsTable gemarkeerd in de bovenstaande afbeelding bevat de gedetailleerde gebeurtenissen uit het toepassingslogboek van de splitsen en samenvoegen-service.The WADLogsTable highlighted in the figure above contains the detailed events from the split-merge service’s application log. Houd er rekening mee dat de standaardconfiguratie van het gedownloade pakket is gericht op een productie-implementatie.Note that the default configuration of the downloaded package is geared towards a production deployment. Daarom is het interval waarmee logboeken en prestatiemeteritems worden opgehaald uit de service-exemplaren grote (5 minuten).Therefore the interval at which logs and counters are pulled from the service instances is large (5 minutes). Voor testen en ontwikkeling, verlaagt u het interval door de diagnostische instellingen van de web- of de werkrol aan uw behoeften aan te passen.For test and development, lower the interval by adjusting the diagnostics settings of the web or the worker role to your needs. Met de rechtermuisknop op de rol in de Visual Studio Server Explorer (Zie hierboven) en past u de periode Transfer in het dialoogvenster voor de configuratie-instellingen voor diagnostische gegevens:Right-click on the role in the Visual Studio Server Explorer (see above) and then adjust the Transfer Period in the dialog for the Diagnostics configuration settings:

Configuratie

PrestatiesPerformance

Betere prestaties is over het algemeen worden verwacht van de hogere meer goed werkende service-lagen in Azure SQL Database.In general, better performance is to be expected from the higher, more performant service tiers in Azure SQL Database. Hogere i/o-, CPU en geheugen toewijzingen voor de hogere Servicelagen profiteren van de bulksgewijs kopiëren en verwijderen van bewerkingen die gebruikmaakt van de service voor splitsen en samenvoegen.Higher IO, CPU and memory allocations for the higher service tiers benefit the bulk copy and delete operations that the split-merge service uses. Om die reden, de service tier speciaal voor deze databases voor een gedefinieerde, een beperkte periode te vergroten.For that reason, increase the service tier just for those databases for a defined, limited period of time.

De service wordt ook validatie van query's als onderdeel van de normale bewerkingen uitvoert.The service also performs validation queries as part of its normal operations. Deze validatie van query's controleren op onverwachte aanwezigheid van gegevens in het doelbereik en zorg ervoor dat elke bewerking splitsen of samenvoegen/verplaatsen wordt gestart vanuit een consistente status.These validation queries check for unexpected presence of data in the target range and ensure that any split/merge/move operation starts from a consistent state. Deze alle query's werken via sharding sleutelbereiken gedefinieerd door het bereik van de bewerking en de grootte van de partij geleverd als onderdeel van de definitie van de aanvraag.These queries all work over sharding key ranges defined by the scope of the operation and the batch size provided as part of the request definition. Deze query's het beste presteren wanneer een index aanwezig is waarvan de sharding-sleutel als de eerste kolom heeft.These queries perform best when an index is present that has the sharding key as the leading column.

Uniekheid van eigenschap met de sharding-sleutel als de eerste kolom kunnen bovendien de service moet gebruiken een geoptimaliseerde benadering waarmee resourceverbruik in termen van logboekruimte en het geheugen wordt beperkt.In addition, a uniqueness property with the sharding key as the leading column will allow the service to use an optimized approach that limits resource consumption in terms of log space and memory. Deze eigenschap uniekheid is vereist voor het verplaatsen van grote gegevenshoeveelheden (doorgaans meer dan 1GB).This uniqueness property is required to move large data sizes (typically above 1GB).

Upgrade uitvoerenHow to upgrade

  1. Volg de stappen in een service voor splitsen en samenvoegen implementeren.Follow the steps in Deploy a split-merge service.
  2. Wijzig het configuratiebestand van cloud-service voor uw implementatie splitsen en samenvoegen in overeenstemming met de configuratieparameters voor de nieuwe.Change your cloud service configuration file for your split-merge deployment to reflect the new configuration parameters. Een nieuwe vereiste parameter zijn de gegevens van het certificaat dat wordt gebruikt voor versleuteling.A new required parameter is the information about the certificate used for encryption. Er is een eenvoudige manier om dit te doen om te vergelijken van het nieuwe configuratiebestand voor een sjabloon uit de download op basis van uw bestaande configuratie.An easy way to do this is to compare the new configuration template file from the download against your existing configuration. Zorg ervoor dat u de instellingen voor 'DataEncryptionPrimaryCertificateThumbprint' en 'DataEncryptionPrimary' voor zowel de web- en de werkrol toevoegen.Make sure you add the settings for “DataEncryptionPrimaryCertificateThumbprint” and “DataEncryptionPrimary” for both the web and the worker role.
  3. Voordat u de update implementeert naar Azure, zorg ervoor dat alle lopende splitsen en samenvoegen bewerkingen zijn voltooid.Before deploying the update to Azure, ensure that all currently running split-merge operations have finished. U kunt dit eenvoudig doen door het opvragen van de RequestStatus en PendingWorkflows tabellen in de metagegevensdatabase voor splitsen en samenvoegen voor lopende aanvragen.You can easily do this by querying the RequestStatus and PendingWorkflows tables in the split-merge metadata database for ongoing requests.
  4. Werk uw bestaande implementatie van cloud-service voor splitsen en samenvoegen in uw Azure-abonnement met het nieuwe pakket en het bijgewerkte configuratiebestand zijn opgenomen.Update your existing cloud service deployment for split-merge in your Azure subscription with the new package and your updated service configuration file.

U hoeft niet voor het inrichten van een nieuwe database met metagegevens voor splitsen en samenvoegen om bij te werken.You do not need to provision a new metadata database for split-merge to upgrade. De nieuwe versie, de bestaande database met metagegevens automatisch bijgewerkt naar de nieuwe versie.The new version will automatically upgrade your existing metadata database to the new version.

Best practices en probleemoplossingBest practices & troubleshooting

  • Definieer een testtenant en uitoefening van uw belangrijkste splitsen of samenvoegen/verplaatsen-bewerkingen met de testtenant over verschillende shards.Define a test tenant and exercise your most important split/merge/move operations with the test tenant across several shards. Zorg ervoor dat alle metagegevens correct is gedefinieerd in de shard-toewijzing en dat de bewerkingen niet in strijd beperkingen of refererende sleutels zijn.Ensure that all metadata is defined correctly in your shard map and that the operations do not violate constraints or foreign keys.
  • Houd de testtenant problemen met betrekking tot de grootte van gegevens boven de maximale grootte van de grootste tenant om te controleren of u niet regelmatig gegevensgrootte.Keep the test tenant data size above the maximum data size of your largest tenant to ensure you are not encountering data size related issues. Dit helpt u bij het bepalen van een bovengrens van de tijd die nodig is voor het verplaatsen van één tenant.This helps you assess an upper bound on the time it takes to move a single tenant around.
  • Zorg ervoor dat uw schema verwijderingen geeft.Make sure that your schema allows deletions. De service voor splitsen en samenvoegen vereist de mogelijkheid om gegevens te verwijderen uit de bron-shard zodra de gegevens is gekopieerd naar het doel.The split-merge service requires the ability to remove data from the source shard once the data has been successfully copied to the target. Bijvoorbeeld, triggers verwijderen kunt voorkomen dat de service verwijderen van de gegevens op de bron- en kan leiden tot bewerkingen mislukken.For example, delete triggers can prevent the service from deleting the data on the source and may cause operations to fail.
  • De sharding-sleutel moet de eerste kolom in uw primaire sleutel of unieke indexdefinitie.The sharding key should be the leading column in your primary key or unique index definition. Dat zorgt ervoor dat de beste prestaties voor de splitsen of samenvoegen validatie-query's en de werkelijke gegevens verplaatsen en verwijderen van bewerkingen die altijd worden uitgevoerd op sharding sleutelbereiken.That ensures the best performance for the split or merge validation queries, and for the actual data movement and deletion operations which always operate on sharding key ranges.
  • Plaatsen van uw service voor splitsen en samenvoegen in de regio en Datacenter waar uw databases zich bevinden.Collocate your split-merge service in the region and data center where your databases reside.

Aanvullende resourcesAdditional resources

Geen gebruik van hulpmiddelen voor elastic database nog?Not using elastic database tools yet? Bekijk onze Getting Started Guide.Check out our Getting Started Guide. U vragen hebt, neemt u contact met ons op de forum van SQL-Database en voor functieaanvragen, deze toe te voegen aan de forum met feedback van SQL-Database.For questions, please reach out to us on the SQL Database forum and for feature requests, please add them to the SQL Database feedback forum.