LINUX.ORG.RU

mysqldump при отсутствии дискового пространства

 ,


0

1

Здравствуйте! Возник вопрос насчёт выполнения mysqldump в потоковом режиме без записи на диск (через пайпы). Делается дамп и тут же отправляется по FTP. Теоретически он должен выполняться даже в случае, когда закончилось дисковое пространство полностью (но только если сервер остался работоспособен, конечно же). Но возник вопрос насчёт некоторых аргументов:
--single-transaction
--lock-tables

Первый из них позволяет (насколько я понял) применить механизм транзакций InnoDB, чтобы получить согласованные данные. А второй рассчитан на нетранзакционные таблицы, выполняя их блокировку на момент дампа. Но ведь данные о транзакциях/блокировках пишутся на диск? Выполнится ли вообще mysqldump с одной из таких опций при отсутствии свободного места вообще? Заранее спасибо за ответ!

В отсутствии места на диске у вас все ляжет в любом случае, так как пишут все сервисы.

ism ★★★ ()

Неужто совсем нечего удалить, чтобы место очистить? Еще mysql не любит, когда заканчивается место, ваша база уже может быть повреждена. Лучше не перезагружайте, возможно в оперативной памяти еще все ок, но не на диске.

goingUp ★★★★★ ()
Последнее исправление: goingUp (всего исправлений: 1 )

Сдампить базу можно и снаружи (только сжатие не забудь включить).

А теперь рассказывай кулстори, как дошёл до жизни без места такой?

anonymous ()

ftp в 2017 году используют только идиоты, а так пользуются пацаны

mysqldump -u user -p db | gzip -c | ssh vasy@host.ru 'cat > ~/dump.gz'

vtVitus ★★★★★ ()
Последнее исправление: vtVitus (всего исправлений: 1 )
Ответ на: комментарий от goingUp

Не, проблема не в том, что это случилось сейчас и нужно задампить базу. Сейчас всё хорошо.
Но я пишу скрипт, который установлю на большое количество серверов, где он будет делать резервные копии. На том или ином сервере регулярно заканчивается дисковое пространство, и не хотелось бы, чтобы из-за этого не сделалась резервная копия. И далеко не всегда сайт перестаёт работать, когда пространство кончилось. Просто в некоторых случаях выдаёт ошибки, а в некоторых какое-то время всё ещё более-менее (только на чтение, конечно).

Распространена также ситуация, когда место ещё не кончилось, но его осталось критически мало. И пока ещё всё работает. А потом запускается этот мой скрипт дампа, допустим, с опцией
--single-transaction
ну или с
--lock-tables
...и mysqldump из-за них благополучно выжирает остаток места и сервер падает. Очень хотелось бы этого избежать. Отсюда и вопрос про эти опции. По идее, их использовать в таком случае нельзя?

Novascriptum ()
Ответ на: комментарий от vtVitus

Да речь же не именно об FTP. Будет и ssh, и webdav и шифрование. В этом плане всё хорошо. Мой вопрос в том, с какими параметрами запустить mysqldump, чтобы он отработал в экстремальных условиях в плане дискового пространства.

Novascriptum ()
Ответ на: комментарий от Novascriptum

А мониторить место всякими nagios нельзя?

Кстати почему заканчивается место? Базы распухают или что-то другое?

anonymous ()
Ответ на: комментарий от Novascriptum

Не нужно делать так, чтобы заканчивалось место на диске. Ни к чему хорошему это не приведёт вообще. Ну а если места нет, и вообще вот надо так, и точка - заливать через ssh, или постом на какой-нибудь веб-сервак. Вариантов куча.

mahalaka ★★ ()
Ответ на: комментарий от Novascriptum

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

goingUp ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.