Главная » DLE » Статьи DLE » MySQL — Восстановление данных
Распечатать статью

MySQL — Восстановление данных

Самое важное для владельца сайта — это то, что есть на сайте, тоесть его содержимое. Чтобы небыло беды, например в случае «падения» сервера, нужно сохранять содержимое сайта, а потом, в случае необходимости восстанавливать данные.

Есть два способа сохранения данных:
1. Сделать дамп через shell (ssh (для Windows — клиент Putty));
2. Сгененировать CSV-файл с помощью PHP;
3. Сделать дамп *.sql через phpMyAdmin или Sypex Dumper.

Не будем заострять внимание на всех способах сохранения данных, а остановимся лишь на восстановлении данных из CSV-файлов.

Итак, чтобы что-то восстанавливать, нужно чтобы было что восстанавливать. Для этого необходимо сделать дамп:
<!—code1—>

<!—ecode1—>

<?
mysql_query(«SELECT поля INTO OUTFILE файл FIELDS TERMINATED BY ‘,’ OPTIONALLY ENCLOSED BY ‘\’ LINES TERMINATED BY ‘\n’ FROM таблица»);
?>

<!—code2—>

Для использования такого запроса необходимы привилегии FILE. Файл, в который вы делаете дамп создается на сервере и до этого не должен существовать. Это важный момент! Данная особенность записи в файл предотвращаетизменение уже существующих файлов, в том числе таких важных как “/etc/passwd”.

В описаном примере поля из таблицы выгружаются в файл, поля разделяются запятыми.Если поля имеют текстовый формат, их значения заключаются в апострофы, а каждая строказавершается символом \n, тобишь символом перевода каретки на ковую строку.
Итак, дамп у нас есть. Допустим, что-то произошло с базой и теперь необходимо восстановить утеряные данные.

Приступим:
<!—code1—>

<!—ecode1—>

<?
mysql_query(«LOAD DATA INFILE файл INTO TABLE таблица ‘,’ OPTIONALLY ENCLOSED BY ‘\’ LINES TERMINATED BY ‘\n’»);
?>

<!—code2—>

Ну вот и всё. Таблица снова заполнена данными.

Разумеется это лишь ядро скрипта для дампа. Как его использовать — ваше личное дело и ваша фантазия. Можно, например, получить список таблиц, в цикле обойти их сделав дамп. Затем, опять же в цикле, пройтись по уже созданым файлам, создавая единый файл с дампом, и удаляя индивидуальные. Неплохо было бы дописать в еджиный файл также структуру самих таблиц. Возможно, вы найдёте и более разумный способ. Может быть вы даже найдёте другой способ сделать дамп. На данный момент мне кажется это достойный способ получить дамп с помощью PHP, если нет доступа к shell.

Источник:  datalife-club.ru

Вы можете оставить комментарий, или обратную ссылку на Ваш сайт.

Оставить комментарий

Похожие статьи