Программирование >>  Программный интерфейс приложений 

1 ... 170 171 172 [ 173 ] 174 175 176 ... 264



Поддержка и восстановление баз

данных

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

В этой главе рассказывается, как определить и разрешить подобные проблемы, возникающие с таблицами, независимо от причин их вызвавших. Наилучшими средствами проверки и восстановления таблиц для администратора являются утилиты myisamchk и isamchk, обладающие



похожими возможностями. Ранее в главе 4, Оптимизация запросов , уже описывалось их применение для анализа распределения ключей индексов, а также их деактивизации и активизации. С таким же успехом утилиты myisamchk И isamchk можно применять для проверки таблиц и их восстановления. В свою очередь, это позволяет вовремя устранять последствия повреждения, пока они не приняли катастрофический размах.

Более полный список опций, поддерживаемых профаммами myisamchk и isamchk, представлен в приложении Д, Профаммы MySQL . Базовую информацию об их работе можно найти в справочном руководстве по MySQL.

Проверка и восстановление таблиц баз данных

Обычно процедура обнаружения и исправления ошибок состоит из следующих этапов.

1. Проверка таблицы на наличие ошибок.

Если ошибки в таблице отсутствуют, процедура завершается. В любом другом случае возникает необходимость в их усфанении.

2. Создание копий файлов таблиц перед началом восстановления на случай негативного развития событий.

3. Попытка исправления таблицы.

4. Если эта попытка оказывается неудачной, остается лишь восстановить базу данных из архива и журналов обновлений.

Выполнение последнего этапа описанной процедуры предполагает, что администратор аккуратно выполняет резервирование и активизировал регистрацию запросов на обновление таблиц. В любом другом случае его ждут большие неприятности. Настоятельно рекомендуется внимательно прочитать главу ] J, Общее администрирование MySQL , в которой рассказывается об использовании профаммы mysqldump и регистрации обновлений. Мало кто из администраторов захочет столкнуться с проблемой безвозвратной потери таблицы из-за того, что ранее поленился активизировать регистрацию.

Прежде чем приступить к проверке и восстановлению таблиц с помощью утилит myisamchk и isamchk, следуйте приведенным ниже рекомендациям.

Организуйте периодическое резервирование баз данных и активизируйте регистрацию на случай невозможности восстановления содержимого поврежденных таблиц.

Внимательнф прочитайте все разделы этой главы, прежде чем приступать к каким-либо действиям. В частности, не следует выпол-



нять описанные здесь инструкции до тех пор, пока не ознакомитесь с материалом раздела Как исключить возможность одновременного доступа к таблицам сервера MySQL и утилит . В этом разделе описываются проблемы, возникающие при попытке проверки или восстановления таблицы одновременно с доступом к ней со стороны сервера. В нем также рассказывается, как защититься от возникновения проблем такого рода, временно приостановив работу сервера.

Выполняя проверку и восстановление таблиц, следует зарегистрироваться под тем же именем пользователя, которое применяется для запуска mysqld, чтобы иметь доступ к файлам таблиц с правами чтения и записи.

Синтаксис утилит myisamchk И isamchk

Утилиты myisamchk и isamchk во многом подобны и в большинстве случаев используются в одинаковом аспекте. Основное различие между ними заключается в типе таблиц, к которым применяются эти утилиты. Для таблиц MylSAM применяется утилита myisamchk, а для таблиц ISAM - isamchk. Используемый в таблице формат хранения данных можно определить по расширению имени файла индекса таблицы. Расширение МУ1 соответствует таблице MylSAM, а расширение iSM - таблице ISAM.

Для использования любой из этих утилит укажите в строке запуска, какие таблицы необходимо проверить или восстановить, а также опции, отражающие тип выполняемой операции:

% myisamchk options tbl name ... % isamchk options tbl name ...

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

% myisamchk options *.MYI % isamchk options *.ISM

Запуск неправильной программы для проверки не приведет к повреждению таблицы, однако и не приведет к каким-либо положительным результатам, кроме вывода предупреждения. Так, например, выполнение первого из двух следующих операторов приведет к проверке всех таблиц MylSAM в текущем каталоге, в то время как при запуске второго появится сообщение об ошибке.

% myisamchk *.MYi. Правильно.

% myisamchk *. ISM. Неправильно - неверный тип файла.



1 ... 170 171 172 [ 173 ] 174 175 176 ... 264

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика