Резервное копирование базы данных MySql с PHP - PullRequest
4 голосов
/ 29 августа 2010

У меня довольно большая база данных в MySql, и мне нужно делать ее резервные копии каждый день или около того.

Мне нужно иметь возможность делать резервные копии с любого компьютера, поэтому я подумал о созданииphp-скрипт, чтобы сделать это и поместить этот php-скрипт в онлайн-режим (конечно, с защитой паролем и авторизацией и т. д., чтобы только я мог получить к нему доступ).

Интересно, однако, как это делается правильно?

Какие команды мне следует использовать, и можно ли изменить настройки резервного копирования (например, Add AUTO_INCREMENT value = true)?

Буду признателен за примеры ...

Кроме того, если это плохометод (небезопасный, или, возможно, дает плохие резервные копии с плохими файлами SQL), какой другой метод будет предпочтительнее?У меня есть доступ к оболочке, и у меня есть VPS (сервер Ubuntu).

Моя версия Mysql 5.1

Спасибо

Ответы [ 2 ]

8 голосов
/ 29 августа 2010

Нет необходимости привлекать PHP к резервному копированию базы данных.Вам просто нужен сценарий, который использует mysqldump для резервного копирования базы данных и настройку задания CRON для периодического выполнения сценария:

mysqldump db_name > backup-file.sql

... выполнит резервное копированиесвою базу данных в файл, перенаправив вывод из mysqldump на указанное имя файла.

Питер хорошо заметил, что команда даст вам только один день архивирования - любой архив за два днястарый будет перезаписан.Это позволит вам иметь скользящий журнал, возвращающийся на семь дней назад:

CURRENT_DAY_OF_WEEK=`date '+%u'`
FILENAME="mysqlbackup_"$CURRENT_DAY_OF_WEEK".sql"

mysqldump db_name > $FILENAME

Также имейте в виду, что будут применяться разрешения на файлы - невозможно записать файл, если пользователь, выполняющий сценарий, не имеет разрешений напапка.

0 голосов
/ 29 августа 2010

Я согласен с OMG Ponies mysqldump + скрипт - это путь.

Единственный другой вариант, который я использую, - это настроить подчиненный сервер. Это обеспечивает практически мгновенное резервное копирование на случай сбоя оборудования и может быть расположено в другом здании с вашим основным сервером. Если у вас нет большого количества записей в базу данных, вам не обязательно нужен очень мощный сервер, поскольку он не обрабатывает запросы, а только обновляет базу данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...