MySQL

:: DEVELOPER ZONE

Login / Register

  • MySQL.com
  • Developer Zone
  • Partners
  • Online Shop
  • Downloads
  • Documentation
  • Forums
  • Lists
  • Bugs
  • Events
  • User Groups
  • Guilds
  • Blogs
  • Support
  • Resources
  • Books
  • FAQ

Справочное руководство по MySQL 4.0. :: 4 Администрирование баз данных :: 4.4 Предотвращение катастроф и восстановление :: 4.4.7 Настройка режима профилактики таблиц

  • Overview
  • MySQL Reference Manual
  • MaxDB Documentation
  • Connectors

Search the MySQL manual:


  • Справочное руководство по MySQL 4.0.

  • 4.4 Предотвращение катастроф и восстановление
  • 4.4.1 Резервное копирование баз данных
  • 4.4.2 Синтаксис BACKUP TABLE
  • 4.4.3 Синтаксис RESTORE TABLE
  • 4.4.4 Синтаксис CHECK TABLE
  • 4.4.5 Синтаксис REPAIR TABLE
  • 4.4.6 Использование myisamchk для профилактики таблиц и послеаварийного
  • 4.4.7 Настройка режима профилактики таблиц
  • 4.4.8 Получение информации о таблице

Get the MySQL Language Reference and MySQL Administrator's Guide from MySQL Press!


Additional languages

  • German


Learn about new MySQL releases, technical articles, events and more.

Subscribe to the monthly MySQL Newsletter!


Previous / Next / Up / Table of Contents

4.4.7. Настройка режима профилактики таблиц

Начиная с версии MySQL 3.23.13 можно проверять таблицы типа MyISAM с помощью команды CHECK TABLE (see Раздел 4.4.4, «Синтаксис CHECK TABLE »). Для ремонта таблиц можно использовать команду REPAIR TABLE (see Раздел 4.4.5, «Синтаксис REPAIR TABLE »).

Целесообразно выполнять регулярные проверки таблиц, не дожидаясь появления проблем. В целях профилактики для проверки таблиц можно использовать myisamchk -s. Опция -s (сокращение для --silent) задает выполнение myisamchk в молчаливом режиме с выдачей сообщений только при возникновении ошибок.

Не стоит сбрасывать со счетов и выполнение проверки таблиц при запуске сервера. Например, всякий раз, когда во время обновления происходит перезагрузка, необходима проверка всех таблиц, которые могли при этом пострадать (назовем их "потенциально поврежденными таблицами"). В safe_mysqld можно добавить тест, запускающий myisamchk для проверки всех таблиц, измененных за последние 24 часа, в случае, если после перезагрузки остался старый файл .pid (ID процесса) (mysqld создает .pid-файл во время запуска и удаляет его при нормальном завершении; наличие .pid-файла во время запуска системы свидетельствует о том, что mysqld не завершился нормально).

Можно сделать даже более надежный тест - выполнить проверку таблиц с более поздней, чем у .pid-файла, датой последней модификации.

Таблицы также следует регулярно проверять в ходе нормального функционирования системы. У себя в MySQL AB мы запускаем задачи по cron для проверки всех наших важных таблиц раз в неделю, используя следующую строку в файле crontab:

35 0 * * 0 /path/to/myisamchk --fast --silent /path/to/datadir/*/*.MYI

Такая команда отображает информацию о поврежденных таблицах, и мы при надобности можем их исследовать и исправить.

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

Мы рекомендуем для начала выполнять myisamchk -s еженощно на всех таблицах, обновленных на протяжении последних 24 часов, пока вы не станете доверять MySQL настолько, насколько доверяем мы.

Обычно в таком контроле над таблицами MySQL необходимости нет. При изменении таблиц с динамическим размером строк (таблиц со столбцами типов VARCHAR, BLOB или TEXT) или при наличии таблиц с большим числом удаленных строк может потребоваться время от времени (где-то раз в месяц) дефрагментировать таблицы.

Это можно сделать, используя OPTIMIZE TABLE на аналогичных таблицах, или, если есть возможность приостановить mysqld, выполняя:

isamchk -r --silent --sort-index -O sort_buffer_size=16M */*.ISM
myisamchk -r --silent --sort-index -O sort_buffer_size=16M */*.MYI

This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

Top / Previous / Next / Up / Table of Contents

© 1995-2005 MySQL AB. All rights reserved.

  • About MySQL
  • Careers
  • Site Map
  • Contact Us
  • Legal
  • Privacy Policy
  • Trademark Info
  • No Software Patents!