The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Восстановление данных с поврежденной или случайно удаленной MySQL таблицы
Для восстановления случайно удаленной таблицы можно использовать для резервного копирования пакет 
Zmanda Recovery Manager (http://mysqlbackup.zmanda.com/), имеющий поддержку восстановления 
недостающей в бэкапе информации из бинарного лога изменений (MySQL binary log).
Ведение лога транзакций включается в секции "[mysqld]" файла конфигурации:

   log-bin = /var/log/mysql/bin.log

Определяем время удаления (DROP TABLE):
   mysql-zrm --action parse-binlogs --source-directory=/var/lib/mysql /sugarcrm/20060915101613
      /var/lib/mysql/my-bin.000015 | 11013        | 06-09-12 06:20:03 | Xid = 4413 | COMMIT;
      /var/lib/mysql/my-bin.000015 | 11159        | 06-09-12 06:20:03 | Query      | DROP TABLE IF EXISTS `accounts`;

Имея инкрементальный бэкап binary log от 15 сентября, восстанавливаем из него
данные, пропуская удаление таблицы:

   # mysql-zrm --action restore  --backup-set sugarcrm \
      --source-directory=/var/lib/mysql/ sugarcrm/20060915101613/ \
      --stop-position 11014
   # mysql-zrm --action restore   --backup-set sugarcrm \
      --source-directory=/var/lib/mysql/ sugarcrm/20060915101613/ \
      --start-position 11160

Для получения данных из binary log также можно использовать стандартную программу mysqlbinlog.
Предположим, что у нас есть бэкап от 5 мая.
Переводим сервер в изолированный режим работы:

   mysqld --socket=/tmp/mysql_restore.sock --skip-networking

Восстанавливаем данные из бэкапа:

   cat /backup/20080505.sql | mysql --socket=/tmp/mysql_restore.sock

Делаем дамп данных из бинарного лога:

   mysqlbinlog /var/log/mysql/bin.123456 > /tmp/mysql_restore.sql

Можно использовать выборку по дате или номеру позиции:

   mysqlbinlog --stop-date="2008-05-06 9:59:59" --start-date="2008-05-05 10:01:00" \
      /var/log/mysql/bin.123456  > /tmp/mysql_restore.sql
 mysqlbinlog  --stop-position="5647324" --start-position="5634521" \
      /var/log/mysql/bin.123456  > /tmp/mysql_restore.sql

Вручную удаляем лишнее и загружаем недостающие данные:

   cat /tmp/mysql_restore.sql| mysql --socket=/tmp/mysql_restore.sock
 
Раздел:    Корень / Программисту и web-разработчику / SQL и базы данных / MySQL специфика / Оптимизация и администрирование MySQL

Ваш комментарий
Имя:         
E-Mail:      
Заголовок:
Текст:

 Добавить заметку
 Версия для печати
 
 Поиск заметки:
 

Последние заметки
- 12.05 Организация шифрованного бэкапа с помощью rdiff-backup, encfs и Dropbox
- 11.05 Настройка беспроводного соединения в Debian GNU/Linux
- 07.05 Использование Google Drive в Linux
- 18.04 Использование нескольких сетевых стеков в Linux
- 15.04 Восстановление стандартного KDE меню после его удаления (например, wine)
- 11.04 Настройка gmirror при использовании GPT во FreeBSD 9
- 09.04 Маршрутизатор на базе FreeBSD с приоритизация трафика средствами PF и ALTQ
- 02.04 Частичное восстановление данных MySQL из бэкапа, созданного с использованием LVM
- 21.03 Настройка DNSSEC в BIND 9.9
- 17.03 Набор номера на Cisco IP Phone 7960/7940 из скрипта
RSS | Следующие 15 записей >>


ПОДПИШИСЬ НА ЖУРНАЛ Linux Format 2012!

Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

Каждый, кто оформит подписку, получает бонусы и подарки- объёмные наклейки на системный блок, диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

Оформить подписку на год


  Закладки на сайте
  Проследить за страницей
Created 1996-2012 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
RUNNet TopList