ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Оптимизация и восстановление баз данных MySQL с помощью mysqlcheck

Оптимизация и восстановление баз данных MySQL с помощью mysqlcheck

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

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

Следующая команда будет проверять сообщения таблицы в блоге базы данных:

$ mysqlcheck -c blog posts
blog.posts                         OK

 

Если база данных защищена паролем , добавьте -u root -p в конце команды:

$ mysqlcheck -c blog posts -u root -p
Enter password:
blog.posts                         OK

 

Анализ всех таблиц в базе данных

Следующая команда будет проверять сообщения таблицы в блоге базы данных:

$ mysqlcheck -a blog posts
blog.posts                         OK

 

Если сервер MySQL / MariaDB работает на удаленном хосте,  добавьте -h в конце команды:

$ mysqlcheck -a blog posts -h remotehost.com
blog.posts                         OK

 

Оптимизировать все таблицы во всех баз данных

$ mysqlcheck -o --all-databases
blog.users
note     : Table does not support optimize, doing recreate + analyze instead
status   : OK
mysql.time_zone_transition_type                    Table is already up to date

 

Table does not support optimize, doing recreate + analyze instead - означает, что мы делаем OPTIMIZE в таблицах InnoDB, который не поддерживает эту опцию. При выполнении OPTIMIZE в таблицах, InnoDB создает пустую таблицу, копирует все строки из существующей таблицы в новую, удаляет старую и переименовывает новую таблицу, а затем запускает ANALYZE в таблицах.
Table is already up to date - Означает, что таблица актуальна, и нет никакой необходимости проверять её.

Восстановление нескольких баз данных

Следующая команда восстановит все таблицы в обоих базах данных:

$ mysqlcheck -r --databases blog blog2

 

Если вы видите: note : The storage engine for the table doesn't support repair, то это означает, что вы делаете REPAIR на InnoDB.

Оптимизация и ремонт всех таблиц во всех базах данных

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

$ mysqlcheck --auto-repair -o --all-databases

 

Большинство аргументов, используемых mysqlcheck

-c, --check Проверить таблицу на наличие ошибок.
-a, --analyze Анализировать данные таблицы.
-o --optimize Оптимизация таблиц.
-r, --repair Выполнение работ по ремонту, которые можно исправить почти все, за исключением уникальных ключей, которые не являются уникальными.
--auto-repair Если проверенная таблица повреждена, автоматически восстановить ее. Ремонт будет сделан после того, как все таблицы были проверены.
-A, --all-databases Проверьте все базы данных. Это то же самое, как -databases со всеми выбранными базами данных.
-B, --databases Процесс все таблицы в названных баз данных. С помощью этой опции, все имена аргументов рассматриваются как имена баз данных, а не как имена таблиц.
--tables Заменяет -databases или -B вариант таким образом, что все аргументы имени следующей опции рассматриваются как имена таблиц.
-g, --check-upgrade Проверка таблицы для версии зависящих от изменений. Может использоваться с опцией -auto-repair  для исправления таблиц, требующих версии зависящих от обновления.

Оптимизация и восстановление баз данных MySQL с помощью mysqlcheck

PS. Если вам понравился этот пост, пожалуйста, поделитесь им с друзьями в социальных сетях с помощью кнопок, расположенных ниже поста или просто оставьте комментарий. Благодарю.

Exit mobile version