Как переключаться между базами данных - PullRequest
2 голосов
/ 21 января 2009

Наше приложение использует большую базу данных продуктов, которая обновляется один раз в день. Обновления требуют много времени и ресурсов. Вот почему мы обновляем резервную копию базы данных продукта и переключаемся на нее после завершения обновления.

Единственный способ переключаться между базами данных прямо сейчас - это неправильно использовать наш балансировщик нагрузки. Приложение всегда использует один и тот же ip для доступа к серверу базы данных. Балансировщик нагрузки решает, как этот IP-адрес разрешается: после обновлений он использует ip обновленного сервера.

Это ужасный взлом. Есть ли хороший способ переключения между базами данных?

Ответы [ 2 ]

2 голосов
/ 21 января 2009

Похоже, вы только читаете из базы данных. Если это так, проверьте возможности моментальных снимков SQL Server 2005. Вы можете сделать снимок базы данных, доступный только для чтения, и запросить его, как обычную базу данных.

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

У этого есть и другие преимущества:

  • Это позволяет избежать проблем с затратами / задержкой балансировщика нагрузки.
  • Если ваши загрузки идут ужасно неправильно, вы можете использовать снимок для вставки / обновления записей в действующей базе данных
  • Это требует гораздо меньше места на диске, так как вам не нужно вдвое больше места для двух полных копий
  • Это освобождает график резервного копирования / восстановления, поэтому вы можете сделать это в нужное время для приложения, а не в нужное время для ежедневных загрузок

Вот хорошая статья от Simple Talk, объясняющая концепции снимков 2005 года:

http://www.simple -talk.com / SQL / базы данных управления / SQL-Server-2005-снимки /

0 голосов
/ 21 января 2009

Несколько разных опций:

1) Измените базу данных, к которой подключается ваше приложение. Переключайтесь между двумя.

2) Выполните обработку и обновления в промежуточной БД, затем скопируйте только изменения в вашу живую БД.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...