Оптимизация и восстановление баз данных 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. Если вам понравился этот пост, пожалуйста, поделитесь им с друзьями в социальных сетях с помощью кнопок, расположенных ниже поста или просто оставьте комментарий. Благодарю.



2016-10-21T16:17:30
Лучшие учебники по Wodpress