1

我正在将现有解决方案转换为使用多租户分片而不是单个数据库。

我的主数据库被复制到辅助 Azure 区域(活动异地复制)。我们使用这个复制的数据库来获取一些数据以减少主数据库的负载。

我想将所有分片与 Shard Manager 数据库一起复制,以便我可以通过复制的 Shard Manager db 连接到复制的租户数据库。

问题是复制的 Shard Manager 数据库仍然返回与位于主数据库服务器上的分片的连接。

有什么方法可以强制复制的 Shard Manager DB 返回到复制的分片的连接?

4

1 回答 1

0

我们最终通过从 ShardMap 获取原始分片位置来创建连接字符串,然后更改数据库服务器。

var replicatedConnectionString = new SqlConnectionStringBuilder(shardedConnectionString);
replicatedConnectionString.DataSource = "replicated-db.database.windows.net";

replicatedConnectionString.InitialCatalog = shardMap.AsListShardMap<int>()
                                                    .GetMappingForKey(shardingKey)
                                                    .Shard
                                                    .Location
                                                    .Database;
于 2017-03-31T06:30:51.787 回答