Эластичные инструменты - Как создавать осколки для разных серверов

Я создал сопоставление осколков в базе данных под названием "ShardTesting" на моем локальном сервере sql. Я также создал еще две базы данных: shard1 и shard2 на одном сервере.

Теперь я могу создавать сегменты и сопоставления для этих двух баз данных (shard1 и shard2) в основной базе данных ShardTesting, но не могу создать сегменты для любой базы данных, которая находится на другом сервере где-то в Azure. Я получаю сообщение об ошибке, что код не смог войти в эту новую базу данных.

Вот как я создаю осколок.

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

происходит то, что он пытается войти в эту новую серверную базу данных с учетными данными базы данных ShardTesting, которые явно неверны, потому что ShardTesting является основной базой данных на моем локальном компьютере для хранения всех сегментов и сопоставлений.

Я не вижу способа предоставить userId и Password вместе с этим новым сервером и базой данных, чтобы библиотека использовала их для подключения к этой новой базе данных и создания ее осколка.

1 ответ

Решение

Пока никто не ответил пока. Поэтому позвольте мне ответить на этот вопрос самостоятельно, если кто-то столкнется с той же проблемой.

Все серверы должны иметь одного и того же пользователя с одинаковым паролем. Другими словами, создайте пользователя на всех серверах с одинаковыми именем и паролем, и тогда ShardMapManager сможет войти на них все и создать сопоставления.

Я считаю, что нет способа предоставить отдельные учетные данные для каждого сервера.

Другие вопросы по тегам