|
Программирование >> Программный интерфейс приложений
Поддержка и восстановление баз данных в идеале сервер 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. Неправильно - неверный тип файла.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |