Meglévő adatbázisok migrálása a vertikális felskálázáshoz
A következőre vonatkozik: Azure SQL Database
A meglévő horizontálisan horizontálisan felskálázott adatbázisok egyszerűen kezelhetők eszközökkel (például az Elastic Database ügyfélkódtárával). Először alakítson át egy meglévő adatbáziskészletet a szegmenstérkép-kezelő használatára.
Áttekintés
Meglévő szegmenses adatbázis migrálása:
- A szegmenstérkép-kezelő adatbázisának előkészítése.
- Hozza létre a szegmenstérképet.
- Készítse elő az egyes szegmenseket.
- Leképezések hozzáadása a szegmenstérképhez.
Ezek a technikák az .NET-keretrendszer ügyfélkódtár vagy az Azure SQL Database – Elastic Database-eszközök szkriptjeiben található PowerShell-szkriptek használatával implementálhatók. Az alábbi példák a PowerShell-szkripteket használják.
A ShardMapManagerről további információt a Szegmenstérkép-kezelés című témakörben talál. Az Elastic Database-eszközök áttekintését az Elastic Database funkcióinak áttekintésében tekintheti meg.
A szegmenstérkép-kezelő adatbázisának előkészítése
A szegmenstérkép-kezelő egy speciális adatbázis, amely a horizontálisan felskálázott adatbázisok kezeléséhez szükséges adatokat tartalmazza. Használhat meglévő adatbázist, vagy létrehozhat egy új adatbázist. A szegmenstérkép-kezelőként működő adatbázisok nem lehetnek azonosak a szegmensek adatbázisával. A PowerShell-szkript nem hozza létre önnek az adatbázist.
1. lépés: Szegmenstérkép-kezelő létrehozása
# 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.
A szegmenstérkép-kezelő lekérése
A létrehozás után ezzel a parancsmaggal lekérheti a szegmenstérkép-kezelőt. Erre a lépésre minden alkalommal szükség van, amikor a ShardMapManager objektumot kell használnia.
# 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>'
2. lépés: A szegmenstérkép létrehozása
Válassza ki a létrehozni kívánt szegmenstérkép típusát. A választás az adatbázis architektúrájától függ:
- Önálló bérlő adatbázisonként (a kifejezésekért lásd a szószedetet.)
- Adatbázisonként több bérlő (két típus):
- Listaleképezés
- Tartományleképezés
Egybérlős modell esetén hozzon létre egy listaleképezési szegmenstérképet. Az egybérlős modell bérlőnként egy adatbázist rendel hozzá. Ez egy hatékony modell az SaaS-fejlesztők számára, mivel leegyszerűsíti a felügyeletet.
A több-bérlős modell több bérlőt rendel egy adott adatbázishoz (és több adatbázis között is eloszthat bérlőcsoportokat). Ezt a modellt akkor használja, ha arra számít, hogy minden bérlőnek kis adatigénye van. Ebben a modellben bérlők tartományát rendelje hozzá egy adatbázishoz tartományleképezéssel.
Vagy több-bérlős adatbázismodellt is implementálhat egy listaleképezéssel , hogy több bérlőt rendeljen hozzá egy adott adatbázishoz. A DB1 például az 1. és az 5. bérlőazonosítóval kapcsolatos információk tárolására szolgál, a DB2 pedig a 7. és a 10. bérlő adatait tárolja.
A választott beállítás alapján válasszon az alábbi lehetőségek közül:
1. lehetőség: Szegmenstérkép létrehozása listaleképezéshez
Hozzon létre egy szegmenstérképet a ShardMapManager objektummal.
# $ShardMapManager is the shard map manager object
$ShardMap = New-ListShardMap -KeyType $([int]) -ListShardMapName 'ListShardMap' -ShardMapManager $ShardMapManager
2. lehetőség: Szegmenstérkép létrehozása tartományleképezéshez
A leképezési minta használatához a bérlőazonosító értékeknek folyamatos tartományoknak kell lenniük, és elfogadható, ha az adatbázisok létrehozásakor kihagyja a tartományt.
# $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
3. lehetőség: Az egyes adatbázisok leképezéseinek listázása
A minta beállításához listatérképet is létre kell készíteni a 2. lépés 1. lehetőségének megfelelően.
3. lépés: Egyéni szegmensek előkészítése
Adja hozzá az egyes szegmenseket (adatbázist) a szegmenstérkép-kezelőhöz. Ezzel előkészíti az egyes adatbázisokat a leképezési adatok tárolására. Hajtsa végre ezt a metódust az egyes szegmenseken.
Add-Shard -ShardMap $ShardMap -SqlServerName '<shard_server_name>' -SqlDatabaseName '<shard_database_name>'
# The $ShardMap is the shard map created in step 2.
4. lépés: Leképezések hozzáadása
A leképezések hozzáadása a létrehozott szegmenstérkép típusától függ. Ha létrehozott egy listatérképet, listaleképezéseket adhat hozzá. Ha tartományleképezést hozott létre, tartományleképezéseket adhat hozzá.
1. lehetőség: Listaleképezés adatainak leképezése
Az adatok leképezéséhez adjon hozzá egy listaleképezést minden bérlőhöz.
# Create the mappings and associate it with the new shards
Add-ListMapping -KeyType $([int]) -ListPoint '<tenant_id>' -ListShardMap $ShardMap -SqlServerName '<shard_server_name>' -SqlDatabaseName '<shard_database_name>'
2. lehetőség: Tartományleképezés adatainak leképezése
Adja hozzá a tartományleképezéseket az összes bérlőazonosító-tartományhoz – adatbázis-társításokhoz:
# Create the mappings 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>'
4. lépés 3. lehetőség: Több bérlő adatainak leképezése egy adott adatbázisban
Minden bérlő esetében futtassa a ListMapping bővítményt (1. lehetőség).
A leképezések ellenőrzése
A meglévő szegmensekről és a hozzájuk társított leképezésekről az alábbi parancsok segítségével kérdezhetők le:
# List the shards and mappings
Get-Shards -ShardMap $ShardMap
Get-Mappings -ShardMap $ShardMap
Összesítés
A beállítás befejezése után megkezdheti az Elastic Database ügyfélkódtár használatát. Adatfüggő útválasztást és több szegmenses lekérdezést is használhat.
További lépések
Szerezze be a PowerShell-szkripteket az Azure Elastic Database-eszközök szkriptjeiből.
A Rugalmas adatbázis-eszközök ügyfélkódtár a GitHubon érhető el: Azure/elastic-db-tools.
A felosztási egyesítési eszközzel adatokat helyezhet át egy több-bérlős modellbe vagy onnan egyetlen bérlői modellbe. Lásd: Egyesítés felosztása eszköz.
További információforrások
A több bérlős szoftverszolgáltatás (SaaS) típusú adatbázis-alkalmazások általános adatarchitektúra-mintázataival kapcsolatos információk: Tervminták több-bérlős SaaS-alkalmazásokhoz Azure SQL Database esetén.
Kérdések és funkciókérések
Ha kérdése van, használja a Microsoft Q&A kérdésoldalát az SQL Database-hez és a funkciókérésekhez, adja hozzá őket az SQL Database visszajelzési fórumához.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: