Раз в неделю мне нужно запустить гигантское обновление базы данных в моей локальной среды разработки, как так:Есть ли способ показать прогресс на `gunzip <database.sql.gz | mysql ... `процесс?
$ gunzip < /path/to/database1.sql.gz | mysql -uUSER -p database1 &
$ gunzip < /path/to/database2.sql.gz | mysql -uUSER -p database2 &
$ gunzip < /path/to/database3.sql.gz | mysql -uUSER -p database3 &
Я пытаюсь запустить эти ночи, так как это может занять несколько часов, чтобы закончить.
Можете ли вы помочь мне придумать способ показать прогресс в решении этих задач?
Вот некоторые предположения:
- Получить несжатый размер файла БД и сравнить с моим местным размером дб
- Выполнить
show processlist
в MySQL, чтобы увидеть, что таблица это в настоящее время вставки (мой текущий метод, но некоторые таблицы огромны, и по крайней мере один мой дБ имеет только один гигантский стол, поэтому основная часть процесса застряла в этой таблице, оставив эту опцию менее полезной)
Все файлы db.sql.gz являются стандартными gzipped mysqldumps, поэтому Я не думаю, что смогу построить что-нибудь на свалки, чтобы дать мне обновление. (Но я открыт к тому, что если я что-то отсутствует)
Баунти Правила
Ответы должны:
- Обеспечить полезный и достаточно точный ход (или визуальный как
scp
(предпочтительно!) или через простую таблицу базы данных прогресса, к которой можно легко получить доступ). - Не нарушать регулярный
mysqldump
экспорт или регулярныеgunzip ... | mysql
импорта (для других инженеров, которые не могут использовать все, что вы придумали) - не дать моему DBA сердечного приступа - так легко остаться на специальных
mysqldump
или альтернативных запросах MySQL филиалов.
Спасибо. Можете ли вы продемонстрировать, как это будет работать в контексте распаковки и импорта в MySQL для достижения значимого прогресса на протяжении всего процесса? – Ryan
# pv gunzip] 11% ETA 0:02:10 – Ali
Обновление: Это решение является фантастическим! Как можно лучше. Индикатор ETA колеблется больше, чем я хотел бы, но его следует ожидать, поскольку различные процессы замедляются или ускоряются на этом пути. @ factorde7 заслуживает крупных авансов для этого решения. Хотел бы я знать об этом много лет назад. – Ryan