Mysqldump в сжатый файл
Ситуация: 1. mysql резервируется на диск с помощью mysqldump (~250 ГБ) 2. дамп сжимается с помощью bpzip2 3. дамп перемещается на другой DC 4. использование диска снова в хорошем состоянии
Проблема: пики использования файловой системы, пример: мне нужно 1 ТБ места, чтобы вместить данные при дампе - мне нужно избавиться от этого (платить за неиспользованное дисковое пространство)
Попытался передать дамп напрямую в bpzip2, но он медленный (требуется высокая степень сжатия), я хочу избежать блокировки таблиц. Трубный буфер не может быть легко изменен с помощью bash (если это возможно), может быть, на C, Python, как я прочитал.
Вопрос: есть ли способ справиться с этими пиками? Любые идеи будут оценены.
1 ответ
- проверена одна транзакция, работает как положено (спасибо Александру Толкачеву)
/ usr / bin / mysqldump -v - одиночная транзакция --skip-add-drop-таблица -u'user' -p'password' -h 'host' ${db} 2>/var/log/dump/${db}.log | pbzip2 -p2 > "$sql"
Я слышал, что параллельный bzip может иметь проблемы с конвейером, но, возможно, в некоторых старых версиях, потому что он работает как положено, также он быстрее - он занимал всего 3/4 от первоначального времени.
Я беспокоился о том, что трубопровод ~250 ГБ, если файл будет поврежден или что-то в этом роде, но при тестировании обнаружена ошибка. (Я не пытался восстановить, больше информации о трубопроводах по следующей ссылке) https://stackoverflow.com/questions/2715324/can-a-pipe-in-linux-ever-lose-data