弹性工具 - 如何为不同的服务器创建分片

时间:2018-05-31 20:23:14

标签: c# azure-sql-database sharding azure-elastic-sharding

我在本地sql server上的一个名为“ShardTesting”的数据库中创建了一个分片映射。我还创建了另外两个数据库:同一服务器中的shard1和shard2。

现在,我可以在主ShardTesting数据库中为这两个(shard1和shard2)数据库创建分片和映射,但我无法为Azure上某处的另一台服务器上的任何数据库创建分片。我收到登录错误,代码无法登录到这个新数据库。

这是我创建分片的方式。

var shardLocation = new ShardLocation(server, database);
 ShardCreationInfo shardInfo = new ShardCreationInfo(shardLocation);
 Shard newShard = _listShardMap.CreateShard(shardInfo);

发生的事情是它正在尝试使用ShardTesting数据库凭据登录到这个新的服务器数据库,这显然是错误的,因为ShardTesting是我本地计算机上存储所有分片和映射的主数据库。

我没有看到任何方法提供userId和Password以及这个新服务器和数据库,以便库使用它们连接到这个新数据库并创建其分片。

1 个答案:

答案 0 :(得分:1)

到目前为止还没有人回答。所以,如果有人遇到同样的问题,让我自己回答。

所有服务器都应该有一个具有相同密码的用户。换句话说,在所有具有相同名称和密码的服务器中创建用户,然后ShardMapManager将能够登录所有用户并创建映射。

我认为无法为每台服务器提供单独的凭据。