Как запросить реплицированную защищенную базу данных через Azure Elastic Scale?
Я преобразовываю существующее решение для использования мультитенантных сегментов вместо одной базы данных.
Моя основная база данных реплицируется во вторичный регион Azure (активная георепликация). Мы используем эту реплицированную базу данных для извлечения некоторых данных, чтобы уменьшить нагрузку на основную базу данных.
Я хотел бы реплицировать все шарды вместе с базой данных Shard Manager, чтобы я мог подключиться к реплицированной базе данных клиентов через реплицированную базу данных Shard Manager.
Проблема заключается в том, что реплицированная база данных Shard Manager по-прежнему возвращает соединения с шардами, расположенными на основном сервере базы данных.
Можно ли каким-либо образом заставить реплицированную БД Shard Manager вернуть соединения на реплицированные сегменты?
1 ответ
В итоге мы создали строку подключения, получив исходное местоположение шарда из ShardMap, а затем изменили сервер базы данных.
var replicatedConnectionString = new SqlConnectionStringBuilder(shardedConnectionString);
replicatedConnectionString.DataSource = "replicated-db.database.windows.net";
replicatedConnectionString.InitialCatalog = shardMap.AsListShardMap<int>()
.GetMappingForKey(shardingKey)
.Shard
.Location
.Database;