我在本地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以及这个新服务器和数据库,以便库使用它们连接到这个新数据库并创建其分片。
答案 0 :(得分:1)
到目前为止还没有人回答。所以,如果有人遇到同样的问题,让我自己回答。
所有服务器都应该有一个具有相同密码的用户。换句话说,在所有具有相同名称和密码的服务器中创建用户,然后ShardMapManager将能够登录所有用户并创建映射。
我认为无法为每台服务器提供单独的凭据。