Ölçeği genişletmek için mevcut veritabanlarını geçirme

Şunlar için geçerlidir: Azure SQL Veritabanı

Araçları ( Elastik Veritabanı istemci kitaplığı gibi) kullanarak mevcut ölçeği genişletilmiş parçalı veritabanlarınızı kolayca yönetin. Önce parça eşleme yöneticisini kullanmak için mevcut bir veritabanı kümesini dönüştürün.

Genel Bakış

Mevcut parçalı veritabanını geçirmek için:

  1. Parça eşleme yöneticisi veritabanını hazırlayın.
  2. Parça eşlemesini oluşturun.
  3. Tek tek parçaları hazırlayın.
  4. Parça eşlemesine eşlemeler ekleyin.

Bu teknikler, .NET Framework istemci kitaplığı veya Azure SQLVeritabanı - Elastik Veritabanı araçları betiklerinde bulunan PowerShell betikleri kullanılarak uygulanabilir. Buradaki örneklerde PowerShell betikleri kullanılır.

ShardMapManager hakkında daha fazla bilgi için bkz. Parça eşleme yönetimi. Elastik Veritabanı araçlarına genel bakış için bkz. Elastik Veritabanı özelliklerine genel bakış.

Parça eşleme yöneticisi veritabanını hazırlama

Parça eşleme yöneticisi, ölçeği genişletilmiş veritabanlarını yönetmek için verileri içeren özel bir veritabanıdır. Var olan bir veritabanını kullanabilir veya yeni bir veritabanı oluşturabilirsiniz. Parça eşleme yöneticisi olarak davranan bir veritabanı, parçayla aynı veritabanı olmamalıdır. PowerShell betiği veritabanını sizin için oluşturmaz.

1. Adım: Parça eşleme yöneticisi oluşturma

# 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.

Parça eşleme yöneticisini almak için

Oluşturulduktan sonra, bu cmdlet ile parça eşleme yöneticisini alabilirsiniz. Bu adım, ShardMapManager nesnesini her kullanmanız gerektiğinde gereklidir.

# 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. Adım: Parça eşlemesi oluşturma

Oluşturulacak parça eşlemesi türünü seçin. Seçim, veritabanı mimarisine bağlıdır:

  1. Veritabanı başına tek kiracı (Terimler için sözlüğe bakın.)
  2. Veritabanı başına birden çok kiracı (iki tür):
    1. Liste eşlemesi
    2. Aralık eşleme

Tek kiracılı model için liste eşleme parça eşlemesi oluşturun. Tek kiracılı model, kiracı başına bir veritabanı atar. Bu, yönetimi basitleştirdiğinden SaaS geliştiricileri için etkili bir modeldir.

Liste eşlemesi

Çok kiracılı model, tek bir veritabanına birkaç kiracı atar (ve kiracı gruplarını birden çok veritabanına dağıtabilirsiniz). Her kiracının küçük veri gereksinimlerine sahip olmasını beklediğiniz durumlarda bu modeli kullanın. Bu modelde, aralık eşlemesini kullanarak bir veritabanına bir kiracı aralığı atayın.

Aralık eşleme

Veya tek bir veritabanına birden çok kiracı atamak için liste eşlemesi kullanarak çok kiracılı bir veritabanı modeli uygulayabilirsiniz. Örneğin, DB1 kiracı kimliği 1 ve 5 hakkındaki bilgileri depolamak için kullanılır ve DB2 kiracı 7 ve kiracı 10 için verileri depolar.

Tek bir db'de birden çok kiracı

Seçiminize bağlı olarak şu seçeneklerden birini belirleyin:

1. Seçenek: Liste eşlemesi için parça eşlemesi oluşturma

ShardMapManager nesnesini kullanarak bir parça eşlemesi oluşturun.

# $ShardMapManager is the shard map manager object
$ShardMap = New-ListShardMap -KeyType $([int]) -ListShardMapName 'ListShardMap' -ShardMapManager $ShardMapManager

2. Seçenek: Aralık eşlemesi için parça eşlemesi oluşturma

Bu eşleme desenini kullanmak için kiracı kimliği değerlerinin sürekli aralıklar olması gerekir ve veritabanlarını oluştururken aralığı atlayarak aralıklarda boşluk olması kabul edilebilir.

# $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

Seçenek 3: Tek bir veritabanındaki eşlemeleri listeleme

Bu düzenin ayarlanması, 2. adım olan 1. seçenekte gösterildiği gibi bir liste haritası oluşturulmasını da gerektirir.

3. Adım: Tek tek parçaları hazırlama

Her bir parça (veritabanı) parça eşleme yöneticisine ekleyin. Bu, tek tek veritabanlarını eşleme bilgilerini depolamaya hazırlar. Her parçada bu yöntemi yürütür.

Add-Shard -ShardMap $ShardMap -SqlServerName '<shard_server_name>' -SqlDatabaseName '<shard_database_name>'
# The $ShardMap is the shard map created in step 2.

4. Adım: Eşleme ekleme

Eşlemelerin eklenmesi, oluşturduğunuz parça eşlemesinin türüne bağlıdır. Liste eşlemesi oluşturduysanız, liste eşlemeleri eklersiniz. Bir aralık eşlemesi oluşturduysanız, aralık eşlemeleri eklersiniz.

1. Seçenek: Liste eşlemesi için verileri eşleme

Her kiracı için bir liste eşlemesi ekleyerek verileri eşleyin.

# 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. Seçenek: Aralık eşlemesi için verileri eşleme

Tüm kiracı kimliği aralığı - veritabanı ilişkilendirmeleri için aralık eşlemelerini ekleyin:

# 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>'

Adım 4 seçenek 3: Tek bir veritabanında birden çok kiracının verilerini eşleme

Her kiracı için Add-ListMapping (seçenek 1) çalıştırın.

Eşlemeleri denetleme

Mevcut parçalar ve bunlarla ilişkili eşlemeler hakkındaki bilgiler aşağıdaki komutlar kullanılarak sorgulanabilir:

# List the shards and mappings
Get-Shards -ShardMap $ShardMap
Get-Mappings -ShardMap $ShardMap

Özet

Kurulumu tamamladıktan sonra Elastik Veritabanı istemci kitaplığını kullanmaya başlayabilirsiniz. Verilere bağımlı yönlendirme ve çok parçalı sorgu da kullanabilirsiniz.

Sonraki adımlar

Azure Elastik Veritabanı araç betiklerinden PowerShell betiklerini alın.

Elastik veritabanı araçları istemci kitaplığı GitHub'da kullanılabilir: Azure/elastic-db-tools.

Verileri çok kiracılı bir modele veya modelden tek bir kiracı modeline taşımak için bölünmüş birleştirme aracını kullanın. Bkz . Birleştirme aracını bölme.

Ek kaynaklar

Çok kiracılı hizmet olarak yazılım (SaaS) veritabanı uygulamalarının ortak veri mimarisi düzenlerine ilişkin bilgi için bkz. Azure SQL Veritabanı ile Çok Kiracılı SaaS Uygulamaları için Tasarım Düzenleri.

Sorular ve özellik istekleri

Sorular için SQL Veritabanı için Microsoft Soru-Cevap&soru sayfasını kullanın ve özellik istekleri için bunları SQL Veritabanı geri bildirim forumunuza ekleyin.