Грамотное создание копии БД

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

stasbz
Сообщения: 13

Грамотное создание копии БД

Сообщение stasbz »

Подскажите, необходимо периодически делать копию БД, для восстановления в случае проблем.
Использую комманду
mysqldump --databases --add-drop-table -ulogin -ppassword database > database_22-3-06-09.sql
Правильно ли я задаю команду или надо добавить ее какой-либо параметр? восстанавливать будут командой mysql из командой строки.

где-то прочел, что перед созданием копии БД таким способом необходимо, чтобы не осуществлялась запись в БД. как лучше поступить в данном случае: может быть можно остановить апаче (чтобы не функционировал сайт) и после уже создать БД?

Как вы относитесь к созданию копии БД с помощью phpmyadmin?
Спасибо сказали:
Аватара пользователя
oxd
Сообщения: 165

Re: Грамотное создание копии БД

Сообщение oxd »

Если база только для сайта, то лучше остановить апач. Но учтите, что в любом случае, вы не получите 100% гарантии того что целостность базы будет соблюдена, например, если апат тормознулся не выполнив какойто запрос.
Товарищ стой! Сожми покрепче маузер!
Не дай предателю мимо пройти!
Он променял консоль на браузер.
Таким не место в сфере IT!
Спасибо сказали:
neol
Сообщения: 600
ОС: Debian Stable

Re: Грамотное создание копии БД

Сообщение neol »

oxd писал(а):
28.06.2009 11:47
Если база только для сайта, то лучше остановить апач. Но учтите, что в любом случае, вы не получите 100% гарантии того что целостность базы будет соблюдена, например, если апат тормознулся не выполнив какойто запрос.

Именно поэтому лучше перевести сайт в режим обслуживания, а не тормозить апач.
Спасибо сказали:
Аватара пользователя
Ariasp
Сообщения: 254
Статус: NixLander

Re: Грамотное создание копии БД

Сообщение Ariasp »

stasbz писал(а):
27.06.2009 21:02
где-то прочел, что перед созданием копии БД таким способом необходимо, чтобы не осуществлялась запись в БД. как лучше поступить в данном случае: может быть можно остановить апаче (чтобы не функционировал сайт) и после уже создать БД?

Читать нужно внимательнее. Сценарий mysqldump сам лочит таблицы во время снятия с них дампа (кроме того, если не устраивает потабличная блокировка, имеется опция --lock-tables, блокирующая все таблицы на время создания дампа; но это, имхо, излишество). Соответсвенно, отключать ничего не нужно, просто некоторое время залоченная таблица - в зависимости от её размера - будет не доступна на запись.
Если же база данных большая и даже небольшие паузы в доступности к её данным нежелательны - настраивай репликацию и делай дамп с реплики.
Спасибо сказали:
pelmen
Сообщения: 1268
ОС: debian

Re: Грамотное создание копии БД

Сообщение pelmen »

Ariasp писал(а):
28.06.2009 14:48
Если же база данных большая и даже небольшие паузы в доступности к её данным нежелательны - настраивай репликацию и делай дамп с реплики.
ой, а ткни носом про реплики почитать или команду какую (типа скл-запрос, который реплику делает)
Спасибо сказали:
alfss
Сообщения: 262

Re: Грамотное создание копии БД

Сообщение alfss »

google.ru

!Предупреждение от модератора Ленивая Бестолочь
из правил форума:
Цитата
3.3. Создание сообщений ..... единственной целью которых является "накрутка счетчиков".


пожалуйста, воздерживайтесь от бессмысленных сообщений.
если вы считаете, что вопрос не достоин ответа - не отвечайте на него.
вам предупреждение на этот счет.
Спасибо сказали:
pelmen
Сообщения: 1268
ОС: debian

Re: Грамотное создание копии БД

Сообщение pelmen »

ух ты, там не только про репликацию, но еще много чего есть. нашел вот это
http://www.webnext.ru/blog/2007/08/21/repl...ster-slave.html
нормальная статья? а то иногда попадаются плохие.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Грамотное создание копии БД

Сообщение drBatty »

я вот так бекаплюсь:

Код: Выделить всё

mysqldump -e --opt --default-character-set=cp1251 \
-uroot -ppassword base_name > backup.sql

я даже уже восстанавливался...
и база лочится на время бекапа.
репликация имхо излишество, если база как у меня - ~100Mb в архиве. ну подождёт кто-то 1 лишнюю секунду, 1 раз в 12 часов... подумаешь...
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
Ariasp
Сообщения: 254
Статус: NixLander

Re: Грамотное создание копии БД

Сообщение Ariasp »

pelmen писал(а):
28.06.2009 15:33
про реплики почитать или команду какую (типа скл-запрос, который реплику делает)

универсально: http://dev.mysql.com/doc/refman/5.1/en/replication.html
Спасибо сказали:
stasbz
Сообщения: 13

Re: Грамотное создание копии БД

Сообщение stasbz »

drBatty писал(а):
28.06.2009 17:25
я вот так бекаплюсь:

Код: Выделить всё

mysqldump -e --opt --default-character-set=cp1251 \
-uroot -ppassword base_name > backup.sql

я даже уже восстанавливался...
и база лочится на время бекапа.
репликация имхо излишество, если база как у меня - ~100Mb в архиве. ну подождёт кто-то 1 лишнюю секунду, 1 раз в 12 часов... подумаешь...

а на сколько важно устанавливать данную опцию --default-character-set=cp1251, если бд и так в cp1251?
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Грамотное создание копии БД

Сообщение drBatty »

stasbz писал(а):
28.06.2009 20:50
а на сколько важно устанавливать данную опцию --default-character-set=cp1251, если бд и так в cp1251?

я не помню, на самом деле это сильно зависит от настроек сервера. что-то у меня не получалось, а с этой стало нормально работать. попробуйте без неё сделать бекап, а потом восстановите, если всё ОК - то не надо.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
oxd
Сообщения: 165

Re: Грамотное создание копии БД

Сообщение oxd »

Ariasp писал(а):
28.06.2009 14:48
stasbz писал(а):
27.06.2009 21:02
где-то прочел, что перед созданием копии БД таким способом необходимо, чтобы не осуществлялась запись в БД. как лучше поступить в данном случае: может быть можно остановить апаче (чтобы не функционировал сайт) и после уже создать БД?

Читать нужно внимательнее. Сценарий mysqldump сам лочит таблицы во время снятия с них дампа (кроме того, если не устраивает потабличная блокировка, имеется опция --lock-tables, блокирующая все таблицы на время создания дампа; но это, имхо, излишество). Соответсвенно, отключать ничего не нужно, просто некоторое время залоченная таблица - в зависимости от её размера - будет не доступна на запись.
Если же база данных большая и даже небольшие паузы в доступности к её данным нежелательны - настраивай репликацию и делай дамп с реплики.


При этом стоит учитиывать, что запись в другие таблицы разрешена, что опять же может нарушить целостность базы внутри дампа.
Про опцию -l, действительно, забыл :)
Репликации спасут отца русской демократии, согласен.
Товарищ стой! Сожми покрепче маузер!
Не дай предателю мимо пройти!
Он променял консоль на браузер.
Таким не место в сфере IT!
Спасибо сказали: