Инструменты пользователя

Инструменты сайта


other:temp2

Ремонт и восстановление базы MySQL по SSH

База на MySQL в несколько сотен тысяч сообщений требует регулярного обслуживания, там неизбежно возникают ошибки, пускай и мелкие, но они имеют свойство накапливаться, и если забить на несколько месяцев, то возможно возникновение проблем. В большинстве случаев все легко решается простой оптимизацией таблиц (тех, которым эта оптимизация нужна) через phpMyAdmin, иногда какие-то таблицы приходится восстанавливать. Но иногда проблема оказывается слишком серьезной и phpMyAdmin банально виснет пытаясь восстановить огромную таблицу. Вот тут то на помощь и приходит возможность зайти и все исправить через SSH.

Что такое SSH я здесь объяснять не стану, подразумеваем что вы уже знаете что это и как этим пользоваться. По этому начнем сразу в главного.

Итак, заходим по SSH на сервер и набираем следующую команду:

mysqlcheck -uваш_логин_базы -pваш_пароль_базы –auto-repair –check –optimize –all-databases

На место команды -uваш_логин_базы подставляете после -u свой логин, на место пароля – свой пароль. Тут все просто. Остальные инструкции обеспечивают проверку базы, в случае найденных ошибок восстановление, оптимизацию таблиц, ну и наконец последняя команда –all-databases означает что будут обработаны все базы данных. Работает эта утилита быстро, спокойно кушает то, на чем намертво виснет phpMyAdmin, в общем крайне полезная штука.

На случай если вам вдруг нужны другие команды утилиты mysqlcheck привожу тут списочек (его же можно получить просто набла в командной строке mysqlcheck или mysqlcheck -help):

  1. A, –all-databasesПроверить все базы данных. Аналогична опции –databases, если указать все базы данных.
  2. 1, –all-in-1Вместо выполнения запросов для каждой таблицы в отдельности выполнить все запросы в одном отдельно для каждой таблицы. Имена таблиц будут представлены в виде списка имен, разделенных запятой.
  3. a, –analyzeАнализировать данные таблицы.
  4. -auto-repairЕсли проверенная таблица повреждена, автоматически восстановить ее. Исправления будут произведены после проверки всех таблиц, если были обнаружены повреждения.
  5. #, –debug=…Выводит информацию журнала отладки. Часто используется следующий набор параметров: ‘d:t:o,filename’
  6. -character-sets-dir=…Директория, где находятся установки символов.
  7. c, –checkПроверить таблицу на наличие ошибок.
  8. C, –check-only-changedПроверить только таблицы, измененные со времени последней проверки или некорректно закрытые.
  9. -compressИспользовать сжатие данных в протоколе сервер/клиент.
  10. ?, –helpВывести данную вспомогательную информацию и выйти из программы.
  11. B, –databasesПроверить несколько баз данных. Обратите внимание на разницу в использовании: в этом случае таблицы не указываются. Все имена аргументов рассматриваются как имена баз данных.
  12. -default-character-set=…Установить набор символов по умолчанию.
  13. F, –fastПроверить только базы данных, которые не были закрыты должным образом.
  14. f, –forceПродолжать даже при получении ошибки SQL.
  15. e, –extendedПри использовании данного параметра совместно с CHECK TABLE можно быть на 100 процентов быть уверенным в целостности таблицы, хотя это и займет много времени. Если же использовать этот параметр с REPAIR TABLE, запустится расширенное восстановление таблицы, которое может потребовать не только длительного времени выполнения, но и привнесет также массу ненужных строк!
  16. h, –host=…Подключиться к хосту.
  17. m, –medium-checkБыстрее, чем –extended-check, но находит только 99,99 процентов всех ошибок. Для большинства случаев этот вариант вполне подходит.
  18. o, –optimizeОптимизировать таблицу.
  19. p, –password[=…]Используемый пароль при подключении к серверу. Если пароль не указан, у пользователя запрашивается пароль с терминала.
  20. P, –port=…Номер порта, используемого для подключения по TCP/IP.
  21. -protocol=(TCP | SOCKET | PIPE | MEMORY)Для указания протокола соединения, который надлежит использовать. Новшество в MySQL 4.1.0.
  22. q, –quickПри использовании данной опции совместно с CHECK TABLE предотвращается сканирование строк для корректировки неправильных связей. Это наиболее быстрый метод проверки. Если же использовать этот параметр с REPAIR TABLE, программа попытается восстановить только систему индексов. Это наиболее быстрый метод восстановления таблицы.
  23. r, –repairМожет исправить почти все, за исключением уникальных ключей, имеющих дубликаты.
  24. s, –silentВыводить только сообщения об ошибках.
  25. S, –socket=…Файл сокета, используемый для подсоединения.
  26. -tablesПерекрывает опцию –databases (-B).
  27. u, –user=#Имя пользователя MySQL, если этот пользователь в данное время не является активным.
  28. v, –verboseВывести информацию о различных этапах.
  29. V, –versionВывести информацию о версии и выйти из программы.

Общий формат запуска утилиты (в зависимости от потребностей чинить ли отдельные таблицы в базе, отдельные базы, или все сразу):

shell> mysqlcheck [OPTIONS] database [tables]

shell> mysqlcheck [OPTIONS] –databases DB1 [DB2 DB3…]

shell> mysqlcheck [OPTIONS] –all-databases


источник


other/temp2.txt · Последнее изменение: 2022/07/19 02:18 — 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki