Время последнего изменения данных в MySQL DB

pachanga

Новичок
Время последнего изменения данных в MySQL DB

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

По идее, MySQL как-то должен отражать такую информацию где-то в системных переменных или логах, вопрос только где?... Пусть даже это не напрямую относится к БД, а к таблицам в ней, зная время последнего изменения данных в таблицах, легко узнать и сабж...
 

Фанат

oncle terrible
Команда форума
MySQL никому ничего не должен.
Именно по идее.
База хранит ТОЛЬКО твои данные. А всеми атрибутами ты должен озаботиться сам.
 

pachanga

Новичок
Вопрос спорный, т.к. зачем же тогда ОС хранят такие данные?

По-моему, правилом хорошего тона является ведение системного лога в более менее серьезном приложении.
 

Фанат

oncle terrible
Команда форума
А при чем здесь ОС?
Ты бы еще архивы КГБ вспомнил!
Ты спросил про базу - тебе про нее ответили.

А вопрос, дейтсвительно, спорный.
На нормальном сайте такоф вопрос не возникает никогда.
Дата последнего обращения? Минуту назад!
Хорошая цмс опять же, дату обновления тебе скажет. Основывасяь на ДАННЫХ из базы, конечно же
 

Bred Vilchec

Новичок
это наверное жуткая редкость, но все же иногда есть возможность напрямую обратиться к файлам самой БД, через стандартные функции и можно узнать дату последнего изменения/чтения файла.
Но это лишь вариант, причем далеко не универсальный.
 

pachanga

Новичок
to Фанат: CMS тут вообще ни при чем, просто надо сделать инкрементный backup базы данных, причем любой.

to Bred Vilchec: с InnoDB такой фокус не пройдет :( там все в одном файле хранится
 

Bred Vilchec

Новичок
насчет InnoDB не знаю, топик был про MySQL я и ответил о ней, потому что точно знаю как там лежат файлы БД.
Если есть доступ к ним - можешь подумать насчет предложенного способа, если нет - ничего не могу посоветовать кроме хранения дат в самой БД:)
 

pachanga

Новичок
Нет, не поможет, т.к. хотелось бы не трогать никаким образом ДБ..
 

Bred Vilchec

Новичок
Автор оригинала: icechel
А завести поле типа TIMESTAMP не поможет ?
ИМХО самый лучший способ, например анализ логов куда геморней будет. Если честно не вижу абсолютно никаких причин (кроме простой программерской лени:) чтобы не завести дополнительное поле в таблице, притом еще и полностью "автоматическое" и простое в плане добавления/чтения.
 

predator2

Guest
Проще выполнить "show table status" и сверить время последнего изменения таблиц но не подходит для InnoDB

2pasha
Для innodb есть опция которая позволяет хранить данные не в одном файле а разитыми по базам
 

Фанат

oncle terrible
Команда форума
Непонятно.
Непонятно, зачем ему для инкрементного бэкапа время доступа
Непонятно, как ему для инкрементного бэкапа поможет время изменения таблицы.
 

pachanga

Новичок
Автор оригинала: Фанат
Непонятно.
Непонятно, зачем ему для инкрементного бэкапа время доступа
Непонятно, как ему для инкрементного бэкапа поможет время изменения таблицы.
Может, я просто называю вещи не своими именами, исправьте - буду благодарен. Итак, все по порядку.

Идея заключается в том, чтобы, допустим, каждый понедельник, делать полный backup всех баз данных. Причем, backup - это sql dump(чтобы не было заморочек с разными типами баз). Потом все дампы tar'яться в архив типа monday.tgz и куда-нибудь дублируются с помощью rsync.

Затем, каждый последующий день недели делать только backup тех баз, которые изменились.

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

Просто у нас уже больше 100 баз, причем, некоторые редко меняются - процедура backup'а долгая да и трафика бесполезного гоняется много.

Кстати, для subversion у нас такое получилось...
 

Yurik

/dev/null
База хранит ТОЛЬКО твои данные. А всеми атрибутами ты должен озаботиться сам.
SHOW TABLE STATUS FROM your_baza

выдаст кучу атрибутов, в т.ч.
* Create_time
* Update_time
* Check_time

Для разных сисадминиских функций это как раз то.
 

pachanga

Новичок
Автор оригинала: Yurik
SHOW TABLE STATUS FROM your_baza

выдаст кучу атрибутов, в т.ч.
* Create_time
* Update_time
* Check_time

Для разных сисадминиских функций это как раз то.
К сожалению, в случае InnoDB, это не работает :(
 
Сверху