Дамп БД при внесении изменений

Discussion in 'PHP' started by OSW, 6 Oct 2010.

  1. OSW

    OSW Elder - Старейшина

    Joined:
    12 Jul 2007
    Messages:
    325
    Likes Received:
    56
    Reputations:
    7
    Сабж: Есть БД mysql. Она прикручена к сайту. Требуется: когда запись в бд обновилась (кто-то что-то написал на сайте), запускался дамп именно измененных данных и сохранял все дело в %рандомное_название%.sql
     
  2. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    OSW http://dev.mysql.com/tech-resources/articles/point_in_time_recovery.html
     
    _________________________
    1 person likes this.
  3. OSW

    OSW Elder - Старейшина

    Joined:
    12 Jul 2007
    Messages:
    325
    Likes Received:
    56
    Reputations:
    7
    Благодарю, буду изучать.
     
  4. OSW

    OSW Elder - Старейшина

    Joined:
    12 Jul 2007
    Messages:
    325
    Likes Received:
    56
    Reputations:
    7
    Point in Time Recovery подходит чем-то, но, как я понял, эта функция помогает делать дамп просто по времени, а мне нужно, чтобы дамп совершался при внесении любых изменений в бд. Причем дамп именно тех записей, которые были изменены.

    Или я не правильно перевел?
     
  5. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    OSW mysql будет создавать бинарный лог, в котором будут храниться все транзакции (оно же все изменения в БД). Потом можно будет просмотреть эти логи с помощью программы mysqlbinlog, в том числе можно выбирать запросы по времени.

    Если нужны извращения, прочитайте тут: http://habrahabr.ru/blogs/mysql/37693/

    Если нужен костыль: запоминайте ID последней записи, и делайте дамп записей с большим ID по крону

    И вообще - с какой целью вы интересуетесь?
     
    _________________________
  6. OSW

    OSW Elder - Старейшина

    Joined:
    12 Jul 2007
    Messages:
    325
    Likes Received:
    56
    Reputations:
    7
    Вкратце: есть локальный сервер, к которому имеют доступ все пользователи локалки. Этот же сервер должен делать бекапы записей, сделанные пользователями. Скажем так, для сохранности данных) Чтобы в случае внезапного краха системы можно было бы взять дампы и залить их в базу без потери данных.
     
  7. OdaN

    OdaN Elder - Старейшина

    Joined:
    4 Mar 2006
    Messages:
    192
    Likes Received:
    17
    Reputations:
    1
    как уже писал Gifts - бинарный лог самое то... грубо-говоря в специальный файл записываются все запросы, которые совершались к базе, по которым данные потом достаточно просто восстановить... единственный минус: места они занимают МНОГО
     
  8. OSW

    OSW Elder - Старейшина

    Joined:
    12 Jul 2007
    Messages:
    325
    Likes Received:
    56
    Reputations:
    7
    Следовательно, легче поднять резервные бд и настроить репликацию?
     
  9. OdaN

    OdaN Elder - Старейшина

    Joined:
    4 Mar 2006
    Messages:
    192
    Likes Received:
    17
    Reputations:
    1
    По затратам времени бинарный лог определенно легче\быстрее настраивается, но с репликациями будет легче\быстрее работать после проблем... ну и соответственно нужен второй серв, и более менее стабильный канал между ними, там уж сами решайте как вам проще...