Skip to content

krundetz/Backup-script

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Backup для MySql

Скрипт предназначен для создания sql-dump'ов для MySql базы данных и для восстановления баз по существующим дампам. Скрипт может пользоваться дампами, созданными практически всеми программами работы с MySql. phpMyAdmin, SypexDumper, SQLYog...

Предназначен для работы в первую очередь на небольших ненагруженных проектах, так как на больших и нагруженных адиминистраторы должны и сами позаботится о создании резервных копий базы ;) Тем не менее, скрипт тестировался на sql-дампе размером 300mb и gzip'е размером 150mb.

Чем он лучше "всех остальных"

  • При создании дампа проверяется время изменения таблиц. Таким образом гарантируется корректный дамп при отсутствии блокировки базы. Тем самым, фактически, выполнение скрипта не сильно сказывается на производительности сервера.
  • Весь скрит занимает один файл и его удобнее доставить до "аварийного" места, чем более сложные утилиты
  • Скрипт может работать без права на запись в файловой системе сервера. Изготовленный дамп может быть отгружен непосредственно броузеру. Подгруженный файл будет обработан.

Скрипт работает в 2-х режимах.

###режим непосредственного исполнения операции и online.

В режиме непосредственного выполнения все управление скриптом идет через адресную строку. Параметры передаются в URI стиле, после символа ?. Включается режим указанием параметров restore и backup. При отсутствии этих параметров скрипт выведет форму online режима.

Примеры:

  • backup.php?restore&file=tmp.sql&code=cp1251 - восстановление базы из файла tmp.sql. Используется кодовая таблица cp1251
  • backup.php?backup&include=darts_*,SESSION&exclude=*_tmp - создание backup'а с использованием таблиц, с именами подходящими под маску darts_* или SESSION и не подходящих под маску *_tmp

список возможных параметров.

Параметры идут вместе со своими значениями по умолчанию.

  • host=localhost - имя хоста базы данных
  • user=root имя пользователя
  • password= пароль пользователя

эти параметры передавать через адресную строку опасно, так что более корректно будет поправить их значения в исходнике скрипта.

  • base=tmp - имя базы данных. при отсутствии базы данных сообщение об этом будет выведено в окно броузера, дальнейшая работа скрипта прекратится.
  • include=* - маска в DOS стиле со * и ? .
  • exclude= - маска в DOS стиле со * и ? .
  • compress=9 - уровень компрессии при использовании метода GZ
  • method=sql.gz -sql.gz|sql.bz2|sql - использовать gz,bz2 или plain sql
  • onthefly=0 - создаваемый дамп будет упакован GZ и выдан для непосредственного созранения броузером. Сохранения на сервере не производится.
  • file= - имя файла SQL-дампа для чтения или каталог (с / на конце) для создания базы
  • code=utf8 - инструкция для set NAMES 'code'
  • progressdelay=1 - время, между выводом сообщений о прогрессе операции создания/восстановления.
  • sql= - непосредственно выполнить sql текст. sql=select * from database;

В online режиме

появляется возможность выполнить дополнительные операции. В этом случае в броузер выводится форма, которая имеет

  • поле загрузки файла. Можно загрузить дамп и восстановить базу по нему. Реальной загрузки файла не происходит, после восстановления файл удаляется.
  • поле вставки дампа. Не стоит вставлять сюда очень большой текст. При вставке следует следить за корректностью русских букв. Если во вставленном тексте закорюки - что-то делается неправильно :) При вставке в текстовое поле параметр code игнорируется и используется utf8.
  • поле выбора уже загруженного файла. Каталог, из которого будут выбираться файлв определяется параметром file адресной строки. Каталог из этого параметра и является тем самым каталогом.

Чтобы выбрать восстановление дампа одним из этих способов нужно выбрать переключатель "restore"

Чтобы создать sql-дамп нужно выбрать переключатель "backup". Если при этом отметить флаг "не сохранять дамп на сервере" - созданный дамп будет отправлен прямо в броузер для сохранения на диске.

Тип создаваемого дампа определяется с помощью параметра method. Если параметр отсутствует - создается gzip архив.

About

PHP script to manage mysql backups

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%