Обработка внешнего источника данных в Azure SQL и гео-репликация

Ниже моя лазурная установка

  1. Elastic Pool Primary (30 баз данных) - активный
  2. Elastic Pool Secondary (30 баз данных) - только для гео-репликации.

Основной пул используется WebApp для чтения и записи. Все отчеты работают на вторичном.

Недавно мне пришлось добавить источник внешних данных в одну из баз данных в первичном, и перекрестный запрос к базе данных работает хорошо.

Хорошо, что эта конфигурация внешнего источника данных также была реплицирована и хорошо работает на вторичном.

Проблема:

Used the following to create external data souce

CREATE DATABASE SCOPED CREDENTIAL ElasticDBQueryCred 
WITH IDENTITY = 'username', 
SECRET = 'password'; 

CREATE EXTERNAL DATA SOURCE ElasticDBQueryDataSrc WITH 
(TYPE = RDBMS, 
LOCATION = 'primarydbname.database.windows.net', 
DATABASE_NAME = 'db1', 
CREDENTIAL = ElasticDBQueryCred, 
) ;

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

Есть ли лучший способ добавить внешний источник данных в дополнительный пул, чтобы он мог использовать свою собственную копию db1? Или Azure SQL обрабатывает это сам по себе?

Любая обратная связь или помощь приветствуется.

Спасибо

1 ответ

Решение

Это является следствием того факта, что первичная база данных реплицируется полностью, включая метаданные, хранящиеся там. Чтобы обойти это, вы можете попробовать настроить два разных внешних источника на первичном - например, ElasticDBQueryDataSrcPrimary, локальный для первичного пула, и ElasticDBQueryDataSrcSecondary, локальный для вторичного пула. Вы будете нести ответственность за переключение вашего источника данных между запросами на основной и дополнительный.

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