Основы PHP
  Что такое PHP?
  Возможности PHP
  Преимущества PHP
  История развития
  Что нового в PHP5?
  «Движок» PHP
  Переход на PHP 5.3
New Переход на PHP 5.6
  Введение в PHP
  Изучение PHP
  Основы CGI
  Синтаксис PHP
  Типы данных PHP
  Переменные в PHP
  Константы PHP
  Выражения PHP
  Операторы PHP
  Конструкции PHP
  Ссылки в PHP
  PHP и ООП
  Безопасность
  Функции PHP
  Функции по категориям
  Функции по алфавиту
  Стандартные функции
  Пользовательские
  PHP и HTTP
  Работа с формами
  PHP и Upload
  PHP и Cookies
  PHP и базы данных
  PHP и MySQL
  Документация MySQL
  Учебники
  Учебники по PHP
  Учебники по MySQL
  Другие учебники
  Уроки PHP
  Введение
  Самые основы
  Управление
  Функции
  Документация
  Математика
  Файлы
  Основы SQL
  Дата и время
  CURL
  Изображения
  Стили
  Безопасность
  Установка
  Проектирование БД
  Регулярные выражения
  Подготовка к работе
  Быстрый старт
  Установка PHP
  Установка MySQL
  Конфигурация PHP
  Download / Скачать
  Скачать Apache
  Скачать PHP
  Скачать PECL
  Скачать PEAR
  Скачать MySQL
  Редакторы PHP
  Полезные утилиты
  Документация
  PHP скрипты
  Скачать скрипты
  Инструменты
  PHP в примерах
  Новости портала
 Главная   »  Документация MySQL
 
 
 

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


4.4.6.6 Использование памяти утилитой myisamchk Содержание 4.4.6.8 Как проверять таблицы на ошибки

4.4.6.7 Использование myisamchk для послеаварийного восстановления

При выполнении mysqld со --skip-locking (установка по умолчанию в некоторых системах, подобных Linux) применение myisamchk для проверки таблицы, когда она используется mysqld, не совсем безопасно. Если есть уверенность, что никто не обратится к таблицам через mysqld во время выполнения myisamchk, то достаточно до начала проверки таблиц выполнить mysqladmin flush-tables, если нет - то на время проверки таблиц необходимо приостановить mysqld. При запуске myisamchk в то время, когда mysqld обновляет таблицы, может быть выдано предупреждение о повреждении таблицы - даже в случае, если этого не произошло.

Если --skip-locking не используется, то проверять таблицы с помощью myisamchk можно в любое время. Во время проверки все пытающиеся обновить таблицу клиенты получат возможность сделать это, только дождавшись готовности myisamchk.

Если myisamchk применяется для ремонта или оптимизации таблиц, то всегда необходимо обеспечить отсутствие обращений сервера mysqld к таблице (это также относится к случаю использования --skip-locking). Если mysqld не может быть приостановлен, то до myisamchk, как минимум, надо выполнить mysqladmin flush-tables. Таблицы могут быть повреждены, если сервер и myisamchk обратятся к таблицам одновременно.

В данном разделе описывается, как выявлять повреждения данных в базах данных MySQL и что делать с повреждениями дальше. Если таблица повреждается часто, то надо постараться отыскать причину этих повреждений! Обращайтесь к разделу See section A.4.1 Что делать, если работа MySQL сопровождается постоянными сбоями.

Причины повреждения таблиц рассматриваются также в разделе по таблицам MyISAM. Обращайтесь к разделу See section 7.1.3 Проблемы с таблицами MyISAM..

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

Файл Назначение
'tbl_name.frm' Файл определения таблицы (формы)
'tbl_name.MYD' Файл данных
'tbl_name.MYI' Индексный файл

Каждый из этих трех типов файлов ''имеет'' свои виды повреждений, но наиболее часто проблемы возникают с файлами данных и индексными файлами.

Во время своей работы myisamchk построчно создает копию файла (данных) '.MYD'. Стадия исправления завершается тем, что программа удаляет старый файл '.MYD' и переименовывает новый путем присвоения ему имени исходного. Если используется --quick, myisamchk не создает временного файла '.'MYD, а, исходя из предположения, что файл '.MYD' правилен, только формирует новый индексный файл, никак не меняя файл '.'MYD. Это безопасно, поскольку myisamchk автоматически распознает, что файл '.MYD' запорчен, и в этом случае прерывает исправление. Можно также задавать для myisamchk две опции --quick. В этом случае myisamchk не прерывается аварийно по некоторым ошибкам (таким как дублирование ключа), а пытается исправить их путем модификации файла '.MYD'. Обычно использование двух опций --quick имеет смысл только в случае, если свободного места на диске недостаточно для выполнения нормального исправления. Тогда перед запуском myisamchk следует по крайней мере выполнить резервное копирование.


4.4.6.6 Использование памяти утилитой myisamchk Содержание 4.4.6.8 Как проверять таблицы на ошибки

 
 
Есть еще вопросы или что-то непонятно - добро пожаловать на наш  форум портала PHP.SU 
 

 
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS