Эластичные инструменты - Как создавать осколки для разных серверов
Я создал сопоставление осколков в базе данных под названием "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 сможет войти на них все и создать сопоставления.
Я считаю, что нет способа предоставить отдельные учетные данные для каждого сервера.