У меня есть база данных SQL-сервера с данными, предоставленными третьей стороной. Они предоставляют инструмент для еженедельного обновления данных базы данных. Инструмент довольно старый и использует ODBC. Обновление может занять несколько часов. Для обеспечения высокой доступности было предложено иметь 2 базы данных SQL и хранить параметр «активная база данных» в другой базе данных, чтобы определить, какую из двух баз данных следует использовать приложениям (в то время как другая может обновляться).
Одна из проблем, с которой мы сталкиваемся: как сделать ссылку на активную базу данных в хранимых процедурах в других базах данных?
Это правильный подход или есть лучший способ?
Примечания: Обновления могут быть инкрементными или могут удалять все данные базы данных, а затем воссоздавать данные. Базы данных в настоящее время доступны только для чтения, кроме инструмента обновления.
Какое ВОСХИТИТЕЛЬНО ЗАВЕРШЕННОЕ решение они предлагают - попробуйте следующее:
Когда придет время обновления:
Обратите внимание, что это подвержено проблемам с кешем ARP - вы также можете получить те же результаты с DNS и (очень) коротким TTL (при условии, что ваши TTL DNS соблюдаются), пакетом высокой доступности, который использует виртуальный MAC, или с интерфейс балансировки нагрузки.