Назад | Перейти на главную страницу

MySQL: поиск неиспользуемых баз данных

Есть ли какие-нибудь команды для поиска в базах данных, в которых не было активности в течение месяца или около того?

Просто возьмите дампы SQL на месяц и запустите diff, а если нет различий, удалите эту БД?

Это зависит от того, что вы подразумеваете под деятельностью? Вы не увидите обновлений в базе данных или изменений в резервной копии для базы данных, которая была разработана для хранения данных только для чтения. Но возможно, что к базе данных часто обращаются.

Вы можете включить mysql журнал запросов и видеть все, к чему осуществляется доступ, но это будет происходить за счет производительности.

Вы могли бы что-нибудь сделать Прокси MySQL. Вы можете настроить его, немного поработав, чтобы регистрировать все базы данных, к которым был осуществлен доступ. Это может иметь меньшее влияние на производительность, чем включение записи всего.

Простой просмотр дат файлов * .myd будет работать для баз данных myisam при условии, что active означает, что кто-то их тоже записывает.

Дифференциальные дампы SQL покажут вам только то, была ли база данных изменена, а не запрос.

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

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

Очень удобный запрос для отображения времени последнего обновления БД:

SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(MAX(UPDATE_TIME))) as last_update FROM information_schema.tables WHERE TABLE_SCHEMA='YourDatabaseNameHere' GROUP BY TABLE_SCHEMA;

Благодаря http://james-berger.blogspot.fr/2013/04/find-unused-mysql-databases.html

Дампы не показывают активности, они показывают отсутствие обновлений, что НЕ одно и то же.

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