Есть ли сценарий, выполняющий обслуживание mysql?
или
как я могу сделать это вручную, используя вкладку cron?
и
какие шаги следует выполнить при хорошем обслуживании mysql?
(MyISAM)
Безусловно, лучший код с открытым исходным кодом и используемый код - это для простых резервных копий. automysqlbackup
Он может делать простые полные резервные копии и автоматически чередовать их за вас.
Вместо этого вы также можете рассмотреть возможность использования LVM в вашем каталоге mysql и создания резервных копий на лету без необходимости блокировки таблиц.
Таблицы MyISAM - это блокировка таблиц, а не блокировка строк, поэтому во время резервного копирования mysql некоторые таблицы недоступны для записи.
Если у вас не очень высокая пропускная способность, просто перейдите по ссылке, которую я вам дал: D
mysqlcheck
в crontab работает хорошо. Периодически просматривайте журналы.
В документации есть важное предостережение:
Каждая таблица заблокирована и, следовательно, недоступна для других сеансов, пока она обрабатывается, хотя для операций проверки таблица заблокирована только блокировкой READ Блокировка только READ
Вот как я это использовал:
mysqlcheck -u $DB_USER -p"$DB_PASS" --all-databases > /root/mysql_backups/check_errors-${DATESTAMP}.log
Если вы не используете индексы FULLTEXT, вам действительно следует преобразовать в InnoDB. MyISAM старый и воля испортить ваши данные при малейшем предлоге, не говоря уже о том, что это медленно. Преобразование так же просто, как:
ALTER TABLE (tablename) ENGINE=InnoDB
для каждой таблицы.Если вы настаиваете на использовании MyISAM, простой "mysqlcheck -A --optimize" или аналогичный должен сделать то, что вам кажется.