Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Программы Обои   Экспорт RSS E-Books
 
 

  Раздел: Компьютерная документация -> Базы данных -> MySQL

 

Резервное копирование баз MySQL без прерывания службы MySQL

В данной статье описывается, как можно осуществлять резервное копирование баз данных MySQL, не прерывая работы MySQL службы. Обычно, когда вы хотите создать резервную копию MySQL, вы должны остановить MySQL или решить проблему блокировки таблиц MySQL, чтобы создать корректную резервную копию; если вы так не делаете, вы можете получить некорректную резервную копию. Чтобы получить корректную резервную копию без прерывания MySQL, я использую следующий трюк: Я реплицирую мою базу MySQL на второй MySQL сервер, и на втором сервере MySQL я использую задание cron чтобы создать регулярную резервную копию реплицированной базы данных.

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

Предварительные примечания

Чтобы следовать этому решению, вам нужен второй сервер MySQL (ведомый), и вы должны установить репликацию MySQL от вашего первого MySQL сервера (система, с которой вы хотите воспользоваться копий, мастер) на ведомую, например как описано в этой статье: http://www.howtoforge.com/mysql_database_replication. Установка репликации MySQL выходит за рамки этого документа.
Все настройки, которые я описываю здесь, должны быть сделаны на ведомом MySQL сервере!

Я испытал это на Debian системы; этом должен работать на другие дистрибутивы, но вполне возможно, что некоторые пути будут отличаться (в скрипте  /usr/local/sbin/mysqlbackup.sh).

Выполнение автоматизированного резервного копирования реплицируемой базы данных на ведомом сервере

После того как вы создали рабочую репликации MySQL с основного сервера на ведомый, я предполагаю, что вы хотите сделать автоматическое резервное копирование ведомой базы данных в директорию /home/sqlbackup. Во-первых, вы должны создать эту директорию:

mkdir /home/sqlbackup

Далее мы создадим скрипт командного интерпретатора /usr/local/sbin/mysqlbackup.sh который остановит ведомую базу данных, сделает SQL дамп всей базы данных MySQL в /home/sqlbackup (имя файла дампа SQL будет выглядеть следующим образом: backup-20070423-18.sql; этот дамп получен 23 Апреля 2007 года, в 18.00ч), после чего перезапустит ведомую БД  (ведомая БД наверстает все, что случилось на основной БД так, чтобы никакие данные не были потеряны), и удалит все SQL дампы в /home/sqlbackup которые старше, чем два дня:

vi /usr/local/sbin/mysqlbackup.sh

#--------mysqlbackup.sh-----------------------------------------

#!/bin/sh

datum=`/bin/date +%Y%m%d-%H`

/usr/bin/mysqladmin --user=root --password=yourrootsqlpassword stop-slave

/usr/bin/mysqldump --user=root --password=yourrootsqlpassword --lock-all-tables \
--all-databases > /home/sqlbackup/backup-${datum}.sql

/usr/bin/mysqladmin --user=root --password=yourrootsqlpassword start-slave

for file in "$( /usr/bin/find /home/sqlbackup -type f -mtime +2 )"
do
/bin/rm -f $file
done

exit 0

#------------------------------------------------------------------

(Пожалуйста, убедитесь, что вы заменили «yourrootsqlpassword» на пароль root MySQL, используемый на ведомой базе данных!)

Теперь мы должны сделать скрипт исполняемым:

chmod 755 /usr/local/sbin/mysqlbackup.sh

Конечно, мы не хотим запустить /usr/local/sbin/mysqlbackup.sh вручную; вместо этого мы создадим задание cron которое запускает скрипт автоматически каждые три часа:

crontab -e

0 */3 * * * /usr/local/sbin/mysqlbackup.sh &> /dev/null

Конечно, вы можете свободно изменять задание cron для запуска с такой частотой, которая вам нужна.

Автор: Amber
Источник: www.sbsi.ru



  Добавить закладку на материал: 


Ссылки по теме
Конкурентные преимущества MySQL. Интервью Сергея Кузнецова с Мартином Микосом, CEO компании MySQL AB
Резервное копирование баз MySQL
MySQL Essential – установить сервер?
Лабораторная работа: MySQL
Все, что нужно - phpMyAdmin!
Работа с базами данных. Начало.

Вся документация MySQL

 

Компьютерная документация от А до Я - Главная

 

 
Интересное в сети
 
10 новых программ
CodeLobster PHP Edition 3.7.2
WinToFlash 0.7.0008
Free Video to Flash Converter 4.7.24
Total Commander v7.55
aTunes 2.0.1
Process Explorer v12.04
Backup42 v3.0
Predator 2.0.1
FastStone Image Viewer 4.1
Process Lasso 3.70.4
FastStone Image Viewer 4.0
Xion Audio Player 1.0.125
Notepad GNU v.2.2.8.7.7
K-Lite Codec Pack 5.3.0 Full


Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
Реклама на сайте. Размещая рекламу у нас, вы получите новых посетителей, которые могут стать вашими клиентами.
 
Это интересно
 

Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.