Проверка таблиц crashadas в MySQL с PHP


Здесь, в компании существует структуру с, по крайней мере, 20 серверов, каждый серверов имеют, как минимум, 20 баз данных, и каждая база должна иметь от 40 до 50 таблиц. Для структуры этой, запустить команду check table 'nome_da_tabela'; для всех таблиц, даже если код занимает очень много времени.

и в Настоящее время есть код на PHP, который проходит через все серверы и колеса команду уже говорилось выше, но, как он сказал это очень, очень много времени, поэтому мне интересно, если, когда таблица Crasha в MySQL, если это создает какой-либо журнал в родном MySQL, который может быть получен, а не войти в таблице в таблице и проверить?

Спрашиваю это, потому что уже где-то читал, что в базе information_schema, в какой таблице хранится эту информацию, но не нашел ничего, что мне объяснило, ясно.

Author: Geraldão de Rívia, 2019-07-04

1 answers

Существует программа mysqlcheck для этой задачи. Например, для поиска ошибок в таблицы из всех баз (check и -c, операция по умолчанию и может быть опущен):

$ mysqlcheck -u usuario -p --all-databases

, конкретных оснований:

$ mysqlcheck -u usuario -p --databases db1 db2 ...

Замечаю, что вы не должны подвергать пользователя с правами администратора root. Любой пользователь, имеющий разрешение на выполнение SELECT и INSERT таблиц достаточно.

Если вы все еще хотите делать это вручную, без mysqlcheck, " можно использовать в сценарии параметр БЫСТРО CHANGED в строке CHECK TABLE. Согласно официальной документации, БЫСТРО и CHANGED были созданы, чтобы проверить, таблицы периодически. В большинстве случаев, БЫСТРО предпочтительнее. Это уже должно помочь вам. Теперь давайте поговорим о том, журналы для этой цели.

Способ записывать все, что происходит в сеансе с помощью команда builtin tee:

mysql> tee meus_logs.txt
mysql> //COMANDOS...
mysql> notee

, вызвать клиента из командной строки:

$ mysql --tee meus_logs.txt ...

Вы также можете использовать операторы перенаправления в системе, подобной UNIX, но в отличие от варианта выше, ошибки, заканчивают исполнение:

$ mysql ... < comandos.sql > meus_logs.txt

"Готов", затем просто обработать файл meus_logs.txt (наличие ошибок). И видели, если хотите, чтобы daemon в PHP, чтобы задачи, взгляните крон и разрешений.

 3
Author: jcbrtl, 2019-07-10 18:13:25