Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:Azure SQL Database
Beheer eenvoudig uw bestaande uitgeschaalde shard-databases met behulp van hulpprogramma's (zoals het bouwen van schaalbare clouddatabases). Converteer eerst een bestaande set databases om de shard map manager te gebruiken.
Overzicht
Een bestaande shard-database migreren:
- Bereid de shard map beheerderdatabase voor.
- Maak de shard-kaart.
- Bereid de afzonderlijke shards voor.
- Voeg toewijzingen toe aan de shardmap.
Deze technieken kunnen worden geïmplementeerd met behulp van de .NET Framework-clientbibliotheek of de PowerShell-scripts in Azure SQL Database - Elastic Database-hulpprogrammascripts. In de voorbeelden worden de PowerShell-scripts gebruikt.
Zie Shard map management voor meer informatie over de ShardMapManager. Zie overzicht van de functies van Elastic Database voor een overzicht van de hulpprogramma's voor Elastic Database.
De shard map manager-database voorbereiden
Het shard-kaartbeheerder is een speciale database die de gegevens bevat voor het beheren van geschaalde databases. U kunt een bestaande database gebruiken of een nieuwe database maken. Een database die als shard-toewijzingsbeheer fungeert, mag niet dezelfde database zijn als een shard. Het PowerShell-script maakt de database niet voor u.
Stap 1: Maak een shardmapbeheerder
# Create a shard map manager
New-ShardMapManager -UserName '<user_name>' -Password '<password>' -SqlServerName '<server_name>' -SqlDatabaseName '<smm_db_name>'
#<server_name> and <smm_db_name> are the server name and database name
# for the new or existing database that should be used for storing
# tenant-database mapping information.
De shardmapbeheerder ophalen
Na de creatie kunt u de shardmapbeheerder ophalen met deze cmdlet. Deze stap is nodig telkens wanneer u het ShardMapManager-object moet gebruiken.
# Try to get a reference to the Shard Map Manager
$ShardMapManager = Get-ShardMapManager -UserName '<user_name>' -Password '<password>' -SqlServerName '<server_name>' -SqlDatabaseName '<smm_db_name>'
Stap 2: Maak de shard-toewijzing
Selecteer het type shard map dat u wilt maken. De keuze is afhankelijk van de databasearchitectuur:
- Eén tenant per database (zie de woordenlijst voor termen.)
- Meerdere tenants per database (twee soorten):
- Lijstkoppeling
- Bereikafstemming
Voor een model met één tenant maakt u een lijst shard map. Met het model met één tenant wordt één database per tenant toegewezen. Dit is een effectief model voor SaaS-ontwikkelaars omdat het beheer vereenvoudigt.
Het multitenant-model wijst verschillende tenants toe aan een afzonderlijke database (en u kunt groepen tenants over meerdere databases verdelen). Gebruik dit model wanneer u verwacht dat elke tenant kleine gegevensbehoeften heeft. Wijs in dit model een groep tenants aan een database toe met behulp van bereiktoewijzing.
U kunt ook een multitenant-databasemodel implementeren met behulp van een lijsttoewijzing om meerdere tenants toe te wijzen aan een afzonderlijke database. DB1 wordt bijvoorbeeld gebruikt voor het opslaan van informatie over tenant-id 1 en 5, en DB2 slaat gegevens op voor tenant 7 en tenant 10.
Kies een van de volgende opties op basis van uw keuze:
Optie 1: Een shard-map maken voor een lijstkoppeling
Maak een shard-kaart met behulp van het ShardMapManager-object.
# $ShardMapManager is the shard map manager object
$ShardMap = New-ListShardMap -KeyType $([int]) -ListShardMapName 'ListShardMap' -ShardMapManager $ShardMapManager
Optie 2: Een shard-kaart maken voor een bereik mapping
Als u dit toewijzingspatroon wilt gebruiken, moeten tenant ID-waarden opeenvolgende reeksen zijn en is het acceptabel om hiaten in de reeksen voor te komen door reeksen over te slaan bij het aanmaken van de databases.
# $ShardMapManager is the shard map manager object
# 'RangeShardMap' is the unique identifier for the range shard map.
$ShardMap = New-RangeShardMap -KeyType $([int]) -RangeShardMapName 'RangeShardMap' -ShardMapManager $ShardMapManager
Optie 3: Toon toewijzingen voor een afzonderlijke database
Voor het instellen van dit patroon moet ook een lijstkaart worden gemaakt, zoals wordt weergegeven in stap 2, optie 1.
Stap 3: Afzonderlijke shards voorbereiden
Voeg elke shard (database) toe aan de shard-toewijzingsbeheerder. Hiermee worden de afzonderlijke databases voorbereid voor het opslaan van toewijzingsgegevens. Voer deze methode uit op elke shard. Dit $ShardMap
is de shardmap die in stap 2 is gemaakt.
Add-Shard -ShardMap $ShardMap -SqlServerName '<shard_server_name>' -SqlDatabaseName '<shard_database_name>'
# The $ShardMap is the shard map created in step 2.
Stap 4: Toewijzingen toevoegen
De toevoeging van toewijzingen is afhankelijk van het type shard-toewijzing dat u hebt gemaakt. Als u een lijstkaart hebt gemaakt, kunt u lijsttoewijzingen toevoegen. Als u een bereikkaart hebt gemaakt, voegt u bereiktoewijzingen toe.
Optie 1: De gegevens toewijzen voor een lijsttoewijzing
Beheer de gegevens door voor elke tenant een lijsttoewijzing aan te maken. Gebruik het volgende PowerShell-voorbeeldscript om de toewijzingen te maken en deze te koppelen aan de nieuwe shards.
# Create the mapping and associate it with the new shards
Add-ListMapping -KeyType $([int]) -ListPoint '<tenant_id>' -ListShardMap $ShardMap -SqlServerName '<shard_server_name>' -SqlDatabaseName '<shard_database_name>'
Optie 2: De gegevens in kaart brengen voor een bereiktoewijzing
Voeg de bereiktoewijzingen toe voor alle bereik-tot-database koppelingen van tenant-id's. Gebruik het volgende PowerShell-voorbeeldscript om de toewijzingen te maken en deze te koppelen aan de nieuwe shards.
# Create the mapping and associate it with the new shards
Add-RangeMapping -KeyType $([int]) -RangeHigh '5' -RangeLow '1' -RangeShardMap $ShardMap -SqlServerName '<shard_server_name>' -SqlDatabaseName '<shard_database_name>'
Stap 4 optie 3: De gegevens voor meerdere huurders toewijzen aan een afzonderlijke database
Voer voor elke tenant de Add-ListMapping
cmdlet (optie 1) uit.
Controleer de toewijzingen
Informatie over de bestaande shards en de toewijzingen die eraan zijn gekoppeld, kunnen worden opgevraagd met behulp van het volgende PowerShell-voorbeeldscript:
# List the shards and mappings
Get-Shards -ShardMap $ShardMap
Get-Mappings -ShardMap $ShardMap
Samenvatting
Zodra u de installatie hebt voltooid, kunt u beginnen met het gebruik van de elastic database-clientbibliotheek. U kunt ook gegevensafhankelijke routering en multi-shardquery gebruiken.