Что происходит, когда tempdb не может больше расти?

У нас есть производственный кластер, который может быть подобен тому, чем Вы интересуетесь:

  • MySQL MMM для хранения баз данных в синхронизации между обоими серверами.
  • OCFS2 сверху DRBD 0.8 в мультипривилегированном режиме для хранения веб-файлов и конфигурационных файлов в синхронизации между обоими серверами.
  • Keepalived на избыточных брандмауэрах перед веб-кластером, который отслеживает, которых серверы возросли и равномерно распределяют соединения клиента между ними.

Это довольно просто реализовать и продолжать бежать, и обеспечивает превосходную производительность. Keepalived может быть немного трудным, потому что он не помещает супер userful ошибки в системный журнал о поврежденных конфигурациях, но после того как у Вас есть он работа, это - горное тело. DRBD о лучшем нерешении SAN для хранения целых файловых систем в синхронизации между машинами, и OCFS2 является (в наших тестах) лучшей работающей кластерной файловой системой с открытым исходным кодом, и это - установка, очень легко также.

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

3
задан 9 February 2011 в 04:10
1 ответ

Существует хорошая статья здесь об этой теме (о 3/4 путь ниже на страницу). Вот выборка:

В этом примере запрос работает в течение 3 минут, прежде чем мы поразим предел размера файла 200 МБ, как показано на рисунке 25, и получим ошибку, что группа файлов полна.

В этой точке сбои запроса, очевидно, как будет любые другие запросы, которые должны использовать TempDB. SQL Server все еще функционирует правильно, но, пока временная таблица #HoldAll существует, TempDB останется заполненным.

Ваши три опции, как DBA, к:

  • Перезапустите SQL Server.
  • Попытайтесь уменьшить Базу данных tempdb.
  • Найдите ошибочный запрос и уничтожьте его.
2
ответ дан 3 December 2019 в 07:14

Теги

Похожие вопросы