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

Elastic tools - How to create shards for different servers

我在本地 sql 服务器上名为 '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 是我本地计算机上存储所有分片和映射的主数据库。

我看不出有任何方法可以提供用户 ID 和密码以及这个新服务器和数据库,以便库使用它们连接到这个新数据库并创建它的分片。

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

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

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