使用彈性資料庫工具加入分區

適用于:Azure SQL資料庫

為新的範圍或索引鍵加入分區

對於已經存在的分區對應,應用程式通常需要新增分區,以處理預期來自新的索引鍵或索引鍵範圍的資料。 例如,依租使用者識別碼分區化的應用程式可能需要為新的租使用者建立新的分區,或每個新月份開始時,每月分區化的資料可能需要布建的新分區。

如果索引鍵值的新範圍還不是現有對應的一部分,您可以新增分區,並將新的索引鍵或範圍與該分區產生關聯。

範例:將分區及其範圍加入至現有的分區對應

這個範例會使用 TryGetShard (Java.NET)、CreateShard (Java.NET)、CreateRangeMapping (Java.NET) 方法,並建立 ShardLocation (Java.NET) 類別的執行個體。 在下列範例中,已建立名為 sample_shard_2 的資料庫及其中的所有必要結構描述物件,以保存範圍 [300, 400)。

// sm is a RangeShardMap object.
// Add a new shard to hold the range being added.
Shard shard2 = null;

if (!sm.TryGetShard(new ShardLocation(shardServer, "sample_shard_2"),out shard2))
{
    shard2 = sm.CreateShard(new ShardLocation(shardServer, "sample_shard_2"));  
}

// Create the mapping and associate it with the new shard
sm.CreateRangeMapping(new RangeMappingCreationInfo<long>
                            (new Range<long>(300, 400), shard2, MappingStatus.Online));

若為 .NET 版本,您也可以使用 PowerShell 作為替代方法來建立新的分區對應管理員。 範例請見 這裡

為現有範圍的空白部分加入分區

在某些情況下,您可能已將某個範圍對應至分區,並在其某些部分填入資料,但現在您想讓後續的資料導向至不同的分區。 例如,您可以依日期定界分割,並已將 50 天配置給分區,但在第 24 天,您希望未來的資料登陸不同的分區。 彈性資料庫 分割合併工具 可以執行這項作業,但如果資料移動並非必要 (例如,日期範圍的資料 [25, 50) ,也就是包含 50 天到 50 個獨佔日期的資料尚未存在,) 您可以直接使用分區對應管理 API 來執行此作業。

範例:分割範圍並將空白部分指派給新增的分區

已建立名為 「sample_shard_2」 的資料庫及其內所有必要的架構物件。

// sm is a RangeShardMap object.
// Add a new shard to hold the range we will move
Shard shard2 = null;

if (!sm.TryGetShard(new ShardLocation(shardServer, "sample_shard_2"),out shard2))
{
    shard2 = sm.CreateShard(new ShardLocation(shardServer,"sample_shard_2"));  
}

// Split the Range holding Key 25
sm.SplitMapping(sm.GetMappingForKey(25), 25);

// Map new range holding [25-50) to different shard:
// first take existing mapping offline
sm.MarkMappingOffline(sm.GetMappingForKey(25));

// now map while offline to a different shard and take online
RangeMappingUpdate upd = new RangeMappingUpdate();
upd.Shard = shard2;
sm.MarkMappingOnline(sm.UpdateMapping(sm.GetMappingForKey(25), upd));

重要

只有在您確定更新對應的範圍是空白時,才可使用這項技術。 上述方法並不會檢查要移動的資料範圍,因此您最好在程式碼中納入檢查。 如果資料列存在於要移動的範圍中,則實際的資料分佈將不會符合更新的分區對應。 在這些情況下,請改用 分割合併工具 執行作業。

其他資源

尚未使用彈性資料庫工具? 請參閱使用者入門指南。 如有疑問,請在 SQL Database 問與答的問題頁面上與我們連絡。如有功能要求,請在 SQL Database 意見反應論壇中新增想法或投票支持現有的想法。