LINUX.ORG.RU

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

 ,


0

1

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

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



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

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

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 😊😊😊😊😊
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.