Ö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:
- Parça eşleme yöneticisi veritabanını hazırlayın.
- Parça eşlemesini oluşturun.
- Tek tek parçaları hazırlayın.
- 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:
- Veritabanı başına tek kiracı (Terimler için sözlüğe bakın.)
- Veritabanı başına birden çok kiracı (iki tür):
- Liste eşlemesi
- 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.
Ç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.
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.
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.