如何通过 Azure Elastic Scale 查询复制的分片数据库?
How to query a replicated sharded database via Azure Elastic Scale?
我正在将现有解决方案转换为使用多租户分片而不是单个数据库。
我的主数据库已复制到辅助 Azure 区域(活动异地复制)。我们使用这个复制的数据库来获取一些数据以减少主数据库的负载。
我想将所有分片与 Shard Manager 数据库一起复制,以便我可以通过复制的 Shard Manager 数据库连接到复制的租户数据库。
问题是复制的 Shard Manager 数据库仍然 return 连接到位于主数据库服务器上的分片。
有什么方法可以强制复制的 Shard Manager 数据库 return 连接到复制的分片?
我们最终通过从 ShardMap 获取原始分片位置创建了一个连接字符串,然后更改了数据库服务器。
var replicatedConnectionString = new SqlConnectionStringBuilder(shardedConnectionString);
replicatedConnectionString.DataSource = "replicated-db.database.windows.net";
replicatedConnectionString.InitialCatalog = shardMap.AsListShardMap<int>()
.GetMappingForKey(shardingKey)
.Shard
.Location
.Database;
我正在将现有解决方案转换为使用多租户分片而不是单个数据库。
我的主数据库已复制到辅助 Azure 区域(活动异地复制)。我们使用这个复制的数据库来获取一些数据以减少主数据库的负载。
我想将所有分片与 Shard Manager 数据库一起复制,以便我可以通过复制的 Shard Manager 数据库连接到复制的租户数据库。
问题是复制的 Shard Manager 数据库仍然 return 连接到位于主数据库服务器上的分片。
有什么方法可以强制复制的 Shard Manager 数据库 return 连接到复制的分片?
我们最终通过从 ShardMap 获取原始分片位置创建了一个连接字符串,然后更改了数据库服务器。
var replicatedConnectionString = new SqlConnectionStringBuilder(shardedConnectionString);
replicatedConnectionString.DataSource = "replicated-db.database.windows.net";
replicatedConnectionString.InitialCatalog = shardMap.AsListShardMap<int>()
.GetMappingForKey(shardingKey)
.Shard
.Location
.Database;