Ö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çeklendirilmiş parçalı veritabanlarınızı kolayca yönetin. Önce mevcut bir veritabanı kümesini parça eşleme yöneticisini kullanacak şekilde 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 SQL Veritabanı - 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. Mevcut 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şturma işleminden 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şlemesi

Tek kiracılı model için bir 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.

List mapping

Ç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ı beklerken bu modeli kullanın. Bu modelde, aralık eşlemesini kullanarak bir veritabanına bir kiracı aralığı atayın.

Range mapping

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.

Multiple tenants on single DB

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

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

Bu desenin ayarlanması için 2. adım olan 1. seçenekte gösterildiği gibi bir liste haritası oluşturulması da gerekir.

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

Her bir parça (veritabanı) parça eşleme yöneticisine ekleyin. Bu işlem, 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şlemeleri 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>'

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

Her kiracı için Add-ListMapping 'i (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çları 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ı ve özellik istekleri için Microsoft Soru-Cevap soru sayfasını kullanın ve bunları SQL Veritabanı geri bildirim forumunuza ekleyin.