• Новые темы в этом разделе публикуются автоматически при добавлении файла в менеджер ресурсов.
    Ручное создание новых тем невозможно.
Иконка ресурса

Мануал Авто бекап базы данных

  • Автор темы Автор темы kick
  • Дата начала Дата начала

kick

Предвестник
Administrator
За веру и верность форуму
Отец-основатель
Сообщения
6 972
Розыгрыши
22
Решения
1
Репутация
6 046
Реакции
6 831
Баллы
2 688
Каждый задумывался как себя обезопасить от краха базы чаров, их предметов скиллов, да и вообще, базы всего сервера, но не знал как это делать. В данном мануале рассказано как создать файлы запуска резервного копирования Базы данных.

1. Для Windows
создаем файл dump.bat в нем прописываем:
Код:
title dump

REM ###################################################################
set ctime=%TIME:~0,2%
if "%ctime:~0,1%" == " " (set ctime=0%ctime:~1,1%)
set ctime=%ctime%'%TIME:~3,2%'%TIME:~6,2%
REM ###################################################################

set HOST=localhost
set PORT=3306
set LOG=root
set PASS=root
set DB=db
set tim=%DATE%_%ctime%

mysqldump.exe --host=%HOST% --port=%PORT% --user=%LOG% --password=%PASS% %DB% > %DB%_%tim%.sql
"C:\Program Files\WinRAR\rar.exe" a -m5 -df %DB%_%tim%.rar %DB%_%tim%.sql

*файл mysqldump.exe скопируйте в папку где лежит dump.bat

теперь добавляем в авто загрузку

заходим в Панель управления > Назначенные задания > Добавить задание
жмем обзор, ищем свой файл
устанавливаем флажёк на ежедневно
время 00:10 (время лучше ставить с разбросом 5-10мин, чтоб задания не накладывались и не грузил сервер)

заходим в свойства(прав. клик на файл) > расписание (закладка) > Дополнительно (кномпа)
ставим флажек повторять задание
каждые 1 часов
выполнять в течении 24 час

переходим в закладку параметры
выполнять не дольше чем 5-15мин (если повиснет процесс, то винда процесс убьет)

2. Для Linux

создаем папку dump (/home/dump)
в ней создаем папку 2010 (/home/dump/2010)
дальше создаем папки с месяцами (/home/dump/2010/01) и т.д.

создаем файл dump.sh и проиписываем:
Код:
HOST=localhost
PORT=3306
LOG=root
PASS=root
DB=db
DATA=`date +%Y-%m-%d_%H-%M-%S`
DATAY=`date +%Y`
DATAM=`date +%m`

mysqldump --host=$HOST --port=$PORT --user=$LOG --password=$PASS $DB|gzip > /home/dump/$DATAY/$DATAM/$DB_$DATA.sql.gz

дампим и сразу запихиваем в архив

теперь файл dump.sh надо закинуть в crontab:
каждый час в 50 мин (удобно перед осадами сохранять, за 10мин)
Код:
50 */1 * * * root /home/dump/dump.sh


в 5ч в 50 мин каждый день (лучше перед ежедневным ребутом за 30 мин)
Код:
50 5 * * * root /home/dump/dump.sh

© sumka
 

Во-первых, это не fast-backup, очень рекомендуется выставить его, как это сделать: man mysqldump
Во-вторых, не рекомендовал бы ставить это в крон, иначе получим висяки сервера (а так же, вполне реально, что даже IO-ошибки обращения к базе у сервера), которые будут увеличиваться, в зависимости от заполнения базы.
В третьих, все будет очень плохо, если используются транзакции (innodb).

Правильный вариант: писать бинлоги, либо зеркалировать БД и снимать бекап с зеркала, а не с мастера.
 
  • Мне нравится
Реакции: kick
Во-первых, это не fast-backup, очень рекомендуется выставить его, как это сделать: man mysqldump
Во-вторых, не рекомендовал бы ставить это в крон, иначе получим висяки сервера (а так же, вполне реально, что даже IO-ошибки обращения к базе у сервера), которые будут увеличиваться, в зависимости от заполнения базы.
В третьих, все будет очень плохо, если используются транзакции (innodb).

Правильный вариант: писать бинлоги, либо зеркалировать БД и снимать бекап с зеркала, а не с мастера.
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Каждый задумывался как себя обезопасить от краха базы чаров, их предметов скиллов, да и вообще, базы всего сервера, но не знал как это делать. В данном мануале рассказано как создать файлы запуска резервного копирования Базы данных.

1. Для Windows
создаем файл dump.bat в нем прописываем:
Код:
title dump

REM ###################################################################
set ctime=%TIME:~0,2%
if "%ctime:~0,1%" == " " (set ctime=0%ctime:~1,1%)
set ctime=%ctime%'%TIME:~3,2%'%TIME:~6,2%
REM ###################################################################

set HOST=localhost
set PORT=3306
set LOG=root
set PASS=root
set DB=db
set tim=%DATE%_%ctime%

mysqldump.exe --host=%HOST% --port=%PORT% --user=%LOG% --password=%PASS% %DB% > %DB%_%tim%.sql
"C:\Program Files\WinRAR\rar.exe" a -m5 -df %DB%_%tim%.rar %DB%_%tim%.sql

*файл mysqldump.exe скопируйте в папку где лежит dump.bat

теперь добавляем в авто загрузку

заходим в Панель управления > Назначенные задания > Добавить задание
жмем обзор, ищем свой файл
устанавливаем флажёк на ежедневно
время 00:10 (время лучше ставить с разбросом 5-10мин, чтоб задания не накладывались и не грузил сервер)

заходим в свойства(прав. клик на файл) > расписание (закладка) > Дополнительно (кномпа)
ставим флажек повторять задание
каждые 1 часов
выполнять в течении 24 час

переходим в закладку параметры
выполнять не дольше чем 5-15мин (если повиснет процесс, то винда процесс убьет)

2. Для Linux

создаем папку dump (/home/dump)
в ней создаем папку 2010 (/home/dump/2010)
дальше создаем папки с месяцами (/home/dump/2010/01) и т.д.

создаем файл dump.sh и проиписываем:
Код:
HOST=localhost
PORT=3306
LOG=root
PASS=root
DB=db
DATA=`date +%Y-%m-%d_%H-%M-%S`
DATAY=`date +%Y`
DATAM=`date +%m`

mysqldump --host=$HOST --port=$PORT --user=$LOG --password=$PASS $DB|gzip > /home/dump/$DATAY/$DATAM/$DB_$DATA.sql.gz

дампим и сразу запихиваем в архив

теперь файл dump.sh надо закинуть в crontab:
каждый час в 50 мин (удобно перед осадами сохранять, за 10мин)
Код:
50 */1 * * * root /home/dump/dump.sh


в 5ч в 50 мин каждый день (лучше перед ежедневным ребутом за 30 мин)
Код:
50 5 * * * root /home/dump/dump.sh

© sumka

Вариант тех же действий только на яве из сборки
 
Назад
Сверху Снизу