Нисколько.
Одна опция состоит в том, чтобы остановить SQL Server, переместить MDF и файлы LDF, запустить SQL Server, удалить подозреваемого DB, повторно прикрепить файл MDF и надеяться, что Ваш DB все еще работает.
Или восстановите его.
Я не шучу: ACID вызывает откат и не позволит поврежденную таблицу без внешнего вмешательства.
Существует шанс, он мог быть заблокирован по другой причине, но обычно он откатывает транзакцию. Перезапуск SQL Server мог помочь в этом случае, но не происходит, крича, идет ли он не так, как надо :-)
Если это - производство, то ожидайте или удалите/восстановите. Вы не можете сказать, что "Я не забочусь о состоянии таблицы. Просто выход". в производстве...
В этом случае это может быть файловая система XFS. У вас могут быть серьезные проблемы с фрагментацией, а также замедление, связанное с почти полной файловой системой. В любом случае вы могли бы получить больше места.
Пожалуйста, проверьте фрагментацию файловой системы XFS. Вы можете сделать это с помощью команды xfs_db
. Если файловая система - / dev / sdb1
, например, тогда ваша команда будет выглядеть так:
xfs_db -r -c frag /dev/sdb1
Это выведет коэффициент фрагментации:
actual 66524, ideal 55966, fragmentation factor 15.87%
Вы можете запустить онлайн-утилиту дефрагментации, xfs_fsr -v
в сеансе screen
, чтобы попытаться исправить это. По умолчанию команда выполняется в течение 2 часов или ДЕСЯТЬ передается через файловую систему. Возможно, вам придется запускать его несколько раз. Проверяйте коэффициент фрагментации между прогонами.
Есть два инструмента, которые вы можете использовать, чтобы увидеть, что происходит на вашем сервере. iostat и iotop , помогут вам найти проблему.
Если вы хотите переназначить два приоритета, которые разные процессы имеют на вашем сервере по отношению к вводу-выводу, вы можете использовать ionice . Этого может быть достаточно, чтобы решить ваши проблемы, но это, вероятно, временное исправление. Вы можете захотеть изучить другое хранилище или распределение ресурсов для вашего сервера.
iostat
Iostat можно использовать для определения того, какие устройства хранения / памяти замедляют работу вашего сервера. У него хорошая статистика iowait. Как только вы узнаете, какое устройство замедляет работу, вы сможете лучше понять, на чем сосредоточить свое внимание.
$ iostat Linux 3.2.0-30-generic (aaron-laptop) 11/09/2012 _x86_64_ (4 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 5,83 0,07 3,00 1,81 0,00 89,29 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 20,64 231,97 76,26 1290702 424315
iotop
Отлично подходит для определения того, какие процессы дольше всего ждут завершения ввода-вывода или являются наиболее интенсивными по io.
Total DISK READ: 0.00 B/s | Total DISK WRITE: 9.89 K/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND 349 be/3 root 0.00 B/s 1012.49 B/s 0.00 % 1.79 % [jbd2/sda3-8] 1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % init 2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd] 3 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/0]
ionice --help ionice - sets or gets process io scheduling class and priority. Usage: ionice [OPTION] -p PID [PID...] ionice [OPTION] COMMAND Options: -c, --class scheduling class name or number 0: none, 1: realtime, 2: best-effort, 3: idle -n, --classdata scheduling class data 0-7 for realtime and best-effort classes -p, --pid=PID view or modify already running process -t, --ignore ignore failures -V, --version output version information and exit -h, --help display this help and exit