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