Автоматический бекап БД на PHP
Наверняка многие из вас сталкивались с проблемой потери данных на сайте, в частности потери данных из базы данных(далее БД) mysql. Случиться это может по ряду различного рода причин, например: случайное удаление данных администратором БД(как правило вами же), проблемами связанными с хостингом(потеря данных по вине хостера), откат состояния БД на некоторый период назад — опять же по тех.причинам на хостинге, повреждение файлов БД, повреждение или потеря данных в следствии не правомерных действия пользователей, злоумышленников и т.д. (наводнения, пожары, конец света).
Обезопасить себя можно различными способами, такими как — автоматическое резервирование данных средствами хостинга, но за частую эта опция не доступна или предлагается за дополнительную ежемесячную плату. Или же как вариант организовать автоматическое резервирование(бекап,backup) базы данных mySQL(любой другой базы данных) средствами PHP.
В примере ниже рассмотрим скрипт на PHP, работающий с БД mySQL:
<?php // backup the db function function backup_database_tables($host,$user,$pass,$name,$tables) { $link = mysql_connect($host,$user,$pass); mysql_select_db($name,$link); //get all of the tables if($tables == '*') { $tables = array(); $result = mysql_query('SHOW TABLES'); while($row = mysql_fetch_row($result)) { $tables[] = $row[0]; } } else { $tables = is_array($tables) ? $tables : explode(',',$tables); } //cycle through each table and format the data foreach($tables as $table) { $result = mysql_query('SELECT * FROM '.$table); $num_fields = mysql_num_fields($result); $return.= 'DROP TABLE '.$table.';'; $row2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$table)); $return.= "\n\n".$row2[1].";\n\n"; for ($i = 0; $i < $num_fields; $i++) { while($row = mysql_fetch_row($result)) { $return.= 'INSERT INTO '.$table.' VALUES('; for($j=0; $j<$num_fields; $j++) { $row[$j] = addslashes($row[$j]); $row[$j] = ereg_replace("\n","\\n",$row[$j]); if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; } if ($j<($num_fields-1)) { $return.= ','; } } $return.= ");\n"; } } $return.="\n\n\n"; } //save the file $handle = fopen('db-backup-'.time().'-'.(md5(implode(',',$tables))).'.sql','w+'); fwrite($handle,$return); fclose($handle); } |
Для работы скрипта и для его автоматического вызова каждые сутки, следует настроить планировщик заданий(Cron) на вашем хостинге. При каждом вызове скрипт делает резервную копию базы данных в файл с названием db-backup-ВРЕМЕННАЯ_МЕТКА-ХЕШ_СУММА.sql
Также заинтересованным готов предложить отдельное решение, автоматического резервного копирования БД, с поддержкой следующих опций:
— Архивация данных в .zip архив
— Выгрузка БД на сторонний FTP сервер, для надежности и гарантии сохранности файлов (FTP сервер и 1\3\5ГБ места могу предоставить)
— Настраиваемая периодичность вызова скрипта
Похожие записи
Оставить комментарий
- Исполнитель пропал, почему такое случается и понять с кем работать? спросил (а) Артем
- Можно ли WordPress считать универсальным движком? спросил (а) Андрей
- Что такое самописный скрипт или CMS? спросил (а) Антон
- Как при поиске в linux используя grep, добавить исключения? спросил (а) Алексей
- Как создать публичный ключ в RSA? спросил (а) Сергей
- Подтверждение номера телефона при регистрации на сайте к записи
- Дополнение «кошелек» для CMS совместных покупок к записи
- Дополнение «кошелек» для CMS совместных покупок к записи
- Подтверждение номера телефона при регистрации на сайте к записи
- 5 вариантов добавления watermark (водяной знак) на изображение, средствами PHP к записи
- 5 вариантов добавления watermark (водяной знак) на изображение, средствами PHP к записи
- 5 вариантов добавления watermark (водяной знак) на изображение, средствами PHP к записи
Archive
- +2022 (9)
- Май 2022 (2)
- Апрель 2022 (2)
- Март 2022 (3)
- Февраль 2022 (1)
- Январь 2022 (1)
- +2021 (17)
- Декабрь 2021 (5)
- Ноябрь 2021 (2)
- Июль 2021 (1)
- Июнь 2021 (2)
- Май 2021 (5)
- Апрель 2021 (1)
- Март 2021 (1)
- +2020 (20)
- Декабрь 2020 (6)
- Сентябрь 2020 (2)
- Август 2020 (1)
- Июль 2020 (2)
- Май 2020 (2)
- Апрель 2020 (2)
- Март 2020 (2)
- Февраль 2020 (1)
- Январь 2020 (2)
- +2019 (18)
- Декабрь 2019 (3)
- Ноябрь 2019 (2)
- Октябрь 2019 (2)
- Сентябрь 2019 (1)
- Август 2019 (2)
- Июль 2019 (1)
- Июнь 2019 (1)
- Апрель 2019 (2)
- Март 2019 (1)
- Февраль 2019 (3)
- +2018 (44)
- Декабрь 2018 (4)
- Ноябрь 2018 (7)
- Октябрь 2018 (8)
- Сентябрь 2018 (1)
- Август 2018 (4)
- Июль 2018 (5)
- Май 2018 (3)
- Апрель 2018 (7)
- Март 2018 (1)
- Февраль 2018 (2)
- Январь 2018 (2)
- +2017 (19)
- Декабрь 2017 (2)
- Ноябрь 2017 (1)
- Октябрь 2017 (1)
- Сентябрь 2017 (2)
- Июль 2017 (1)
- Июнь 2017 (1)
- Май 2017 (2)
- Апрель 2017 (3)
- Март 2017 (2)
- Февраль 2017 (1)
- Январь 2017 (3)
- +2016 (37)
- Декабрь 2016 (3)
- Ноябрь 2016 (3)
- Октябрь 2016 (2)
- Сентябрь 2016 (3)
- Август 2016 (7)
- Июнь 2016 (3)
- Май 2016 (3)
- Апрель 2016 (3)
- Март 2016 (1)
- Февраль 2016 (1)
- Январь 2016 (8)
- +2015 (36)
- Ноябрь 2015 (5)
- Октябрь 2015 (4)
- Сентябрь 2015 (1)
- Август 2015 (8)
- Июнь 2015 (1)
- Май 2015 (4)
- Апрель 2015 (8)
- Март 2015 (3)
- Февраль 2015 (2)
- +2014 (26)
- Ноябрь 2014 (2)
- Октябрь 2014 (5)
- Сентябрь 2014 (6)
- Июль 2014 (1)
- Июнь 2014 (2)
- Май 2014 (3)
- Апрель 2014 (6)
- Февраль 2014 (1)
- +2013 (27)
- Декабрь 2013 (2)
- Ноябрь 2013 (1)
- Октябрь 2013 (1)
- Август 2013 (1)
- Июль 2013 (3)
- Июнь 2013 (10)
- Май 2013 (1)
- Апрель 2013 (2)
- Февраль 2013 (3)
- Январь 2013 (3)
- +2012 (42)
- Декабрь 2012 (2)
- Ноябрь 2012 (3)
- Октябрь 2012 (7)
- Сентябрь 2012 (2)
- Август 2012 (1)
- Июль 2012 (3)
- Июнь 2012 (2)
- Май 2012 (6)
- Апрель 2012 (2)
- Март 2012 (8)
- Февраль 2012 (5)
- Январь 2012 (1)
- +2011 (57)
- Декабрь 2011 (6)
- Ноябрь 2011 (2)
- Октябрь 2011 (3)
- Сентябрь 2011 (5)
- Август 2011 (4)
- Июль 2011 (3)
- Июнь 2011 (3)
- Май 2011 (3)
- Апрель 2011 (4)
- Март 2011 (10)
- Февраль 2011 (5)
- Январь 2011 (9)
- +2010 (43)
- Декабрь 2010 (7)
- Ноябрь 2010 (21)
- Октябрь 2010 (14)
- Сентябрь 2010 (1)
Свежие записи
- Услуга системного администратора веб-серверов 05.05.2022
- CMS для сайта Маркетплейса 05.05.2022
- 101 команда Linux на все случаи жизни 28.04.2022
- Правда про домашний высокоскоростной интернет 22.04.2022
- RC-Images CMS для публикации и обмена и фотографиями 15.03.2022





