#linux #postgresql
#linux #postgresql
Вопрос:
При резервном копировании моей базы данных Postrgres объемом 1,5 ГБ с помощью следующей команды:
pg_dump -U база данных имени пользователя -f MM-DD-YY-backup.sql
Он работает около 10 минут или около того, а затем я получаю сообщение о ожидании записи / прерывании канала (тайм-аут). После повторного входа на сервер я проверяю файлы в каталоге резервных копий, и резервная копия на сегодняшний день имеет меньший размер файла, чем вчерашняя резервная копия.
Становится действительно интересно, когда я перезагружаю сервер, а затем сразу запускаю команду резервного копирования. Резервная копия создается примерно за 30 секунд.
Я действительно хочу автоматизировать процесс резервного копирования, и разница во времени до и после перезагрузки вызывает большую озабоченность. В моих исследованиях я не нашел никого с подобным опытом, что наводит меня на мысль, что это может быть локальная настройка на моем компьютере, из-за которой pg_dump занимает больше времени для одной и той же операции после интенсивного использования. После перезагрузки все ресурсы, которые освобождаются при перезагрузке, снова становятся доступными, и он работает, как ожидалось.
С чего мне начать отладку этого?
Использование Ubuntu 16.04.01, Postgres 9.5.4, 16 ГБ памяти на сервере.
Комментарии:
1. Это просто ваша оболочка, которая отключается (из-за бездействия) Попробуйте запустить резервное копирование в фоновом режиме, например
pg_dump -U username database -f MM-DD-YY-backup.sql amp;
, илиnohup pg_dump -U username database -f MM-DD-YY-backup.sql
2. Это может быть одновременная активность. Существуют ли какие-либо сеансы, обновляющие материализованные представления, изменяющие таблицы или другие вещи, которые могут создать более длительную блокировку ДОСТУПА? Активируйте
log_lock_waits
и посмотрите, регистрируется ли что-нибудь.