Здравствуйте!
Подскажите, может кто-нибудь сталкивался: при попытке сделать бэкап базы получаем ошибку
База PostgreSQL 9.6 на Centos 7 (64-bit), размер - 78 Gb. Бэкап делаем командами
или
На этом же сервере есть другая база, pg_dump для которой проходит без проблем. Эта база размером примерно 10 Gb
Я предполагаю, что сервер Postgres рестартует из-за OOM killer. Но как это подтвердить или исправить не знаю (знаний в Linux не много). Подскажите, что с этим можно делать и куда посмотреть?
И ещё, старый админ сервера каким-то образом сделал перезапуск службы сервера postgresql после падения. Новый админ не знает как его остановить. Я смотрел , но там пусто. Crontab -e под пользователями тоже пустые. Из-за чего это может происходить?
Подскажите, может кто-нибудь сталкивался: при попытке сделать бэкап базы получаем ошибку
pg_basebackup: could not read COPY data: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
This probably means the server terminated abnormally
before or while processing the request.
База PostgreSQL 9.6 на Centos 7 (64-bit), размер - 78 Gb. Бэкап делаем командами
pg_basebackup -U postgres -D /var/lib/pgsql/9.6/backups/ --format=tar --compress=9 --no-passwordили
pg_dump -U postgres base > /var/lib/pgsql/9.6/backups/base.sql На этом же сервере есть другая база, pg_dump для которой проходит без проблем. Эта база размером примерно 10 Gb
Я предполагаю, что сервер Postgres рестартует из-за OOM killer. Но как это подтвердить или исправить не знаю (знаний в Linux не много). Подскажите, что с этим можно делать и куда посмотреть?
И ещё, старый админ сервера каким-то образом сделал перезапуск службы сервера postgresql после падения. Новый админ не знает как его остановить. Я смотрел
systemctl edit postgresql-9.6По теме из базы знаний
- 1C Linux PostgreSQL - инструкция по сборке сервера баз данных
- Установка PostgreSQL 9.0.1 + 1С 8.2 Server + 1C 8.2 (клиент под wine 1.2).
- Установка Postgresql на Linux систему в качестве сервера базы данных
- Настройка отказоустойчивого кластера 1C + PostgreSQL (etcd+patroni+haproxy) на Centos 8
- (Видео) Установка 1С + PostgreSQL на Linux Ubuntu за 5 минут
Найденные решения
Похоже, что
Можно попробовать развернуть последнюю 11-ю редакцию PostgresSQL, может быть есть улучшения, а также увеличить размер памяти, или свопа на ssd, хотя бы.
Можно попробовать развернуть последнюю 11-ю редакцию PostgresSQL, может быть есть улучшения, а также увеличить размер памяти, или свопа на ssd, хотя бы.
(4)
В таблице _document474 есть поле, в котором размер данных(обычно это бинарная строка типа bytea) превышает 500 МБ. Это давняя особенность pg_dump.
и есть более подробные описания данной проблемы.
Для решения можно воспользоваться утилитами pg_dumpbinary/pg_restorebinary.
Error message from server: ERROR: invalid memory alloc request size 1590249045
В таблице _document474 есть поле, в котором размер данных(обычно это бинарная строка типа bytea) превышает 500 МБ. Это давняя особенность pg_dump.
и есть более подробные описания данной проблемы.
Для решения можно воспользоваться утилитами pg_dumpbinary/pg_restorebinary.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Посмотреть в /var/log/messages что пишется по этому поводу. Возможно, процесс postgres, выполняющий выборку данных для pg_basebackup, забирает всю имеющуюся физическую память и убивается.
Похоже, что
Можно попробовать развернуть последнюю 11-ю редакцию PostgresSQL, может быть есть улучшения, а также увеличить размер памяти, или свопа на ssd, хотя бы.
Можно попробовать развернуть последнюю 11-ю редакцию PostgresSQL, может быть есть улучшения, а также увеличить размер памяти, или свопа на ssd, хотя бы.
(3)Спасибо большое за ответ, проверили, swop по htop во время бэкапа практически не задействован, используется только 4 Mb из 7,87 Gb
В /var/log/messages пишет
Как я понимаю ошибка именно в строке 'postgres' failed protocol test [PGSQL] at /var/run/postgresql/.s.PGSQL.5432 -- PGSQL: connection terminator write error -- Broken pipe
Пока пытались разобраться, обнаружили ещё одну ошибку во время pg_dump:
Error message from server: ERROR: invalid memory alloc request size 1590249045
pg_dump: The command was: COPY public._document474
но размер этой таблицы всего 140 Мб если верить запросу SELECT pg_size_pretty( pg_total_relation_size( '_document474' ) );
Самое главное, мы не можем остановить сервис postgres, что-то его постоянно перезапускает, из-за этого не можем попробовать обновить его или перенести на другой сервер
В /var/log/messages пишет
Oct 5 16:13:05 1c-server systemd: Created slice User Slice of root.
Oct 5 16:13:05 1c-server systemd: Started Session 113 of user root.
Oct 5 16:13:05 1c-server systemd-logind: New session 113 of user root.
Oct 5 16:13:06 1c-server systemd-logind: New session 114 of user root.
Oct 5 16:13:06 1c-server systemd: Started Session 114 of user root.
Oct 5 16:16:20 1c-server monit: 'postgres' failed protocol test [PGSQL] at /var/run/postgresql/.s.PGSQL.5432 -- PGSQL: connection terminator write error -- Broken pipe
Oct 5 16:16:20 1c-server monit: 'postgres' trying to restart
Oct 5 16:16:20 1c-server monit: 'postgres' stop: '/usr/sbin/service postgresql-9.6 stop'
Oct 5 16:16:20 1c-server systemd: Stopping PostgreSQL 9.6 database server...
Oct 5 16:16:21 1c-server systemd: Stopped PostgreSQL 9.6 database server.
Oct 5 16:16:21 1c-server monit: 'postgres' start: '/usr/sbin/service postgresql-9.6 start'
Oct 5 16:16:21 1c-server systemd: Starting PostgreSQL 9.6 database server...
Oct 5 16:16:21 1c-server postmaster: LOG: redirecting log output to logging collector process
Oct 5 16:16:21 1c-server postmaster: HINT: Future log output will appear in directory "pg_log".
Oct 5 16:16:21 1c-server systemd: Started PostgreSQL 9.6 database server.
Oct 5 16:16:52 1c-server monit: 'postgres' connection succeeded to /var/run/postgresql/.s.PGSQL.5432
ПоказатьOct 5 16:13:05 1c-server systemd: Started Session 113 of user root.
Oct 5 16:13:05 1c-server systemd-logind: New session 113 of user root.
Oct 5 16:13:06 1c-server systemd-logind: New session 114 of user root.
Oct 5 16:13:06 1c-server systemd: Started Session 114 of user root.
Oct 5 16:16:20 1c-server monit: 'postgres' failed protocol test [PGSQL] at /var/run/postgresql/.s.PGSQL.5432 -- PGSQL: connection terminator write error -- Broken pipe
Oct 5 16:16:20 1c-server monit: 'postgres' trying to restart
Oct 5 16:16:20 1c-server monit: 'postgres' stop: '/usr/sbin/service postgresql-9.6 stop'
Oct 5 16:16:20 1c-server systemd: Stopping PostgreSQL 9.6 database server...
Oct 5 16:16:21 1c-server systemd: Stopped PostgreSQL 9.6 database server.
Oct 5 16:16:21 1c-server monit: 'postgres' start: '/usr/sbin/service postgresql-9.6 start'
Oct 5 16:16:21 1c-server systemd: Starting PostgreSQL 9.6 database server...
Oct 5 16:16:21 1c-server postmaster: LOG: redirecting log output to logging collector process
Oct 5 16:16:21 1c-server postmaster: HINT: Future log output will appear in directory "pg_log".
Oct 5 16:16:21 1c-server systemd: Started PostgreSQL 9.6 database server.
Oct 5 16:16:52 1c-server monit: 'postgres' connection succeeded to /var/run/postgresql/.s.PGSQL.5432
Как я понимаю ошибка именно в строке 'postgres' failed protocol test [PGSQL] at /var/run/postgresql/.s.PGSQL.5432 -- PGSQL: connection terminator write error -- Broken pipe
Пока пытались разобраться, обнаружили ещё одну ошибку во время pg_dump:
Error message from server: ERROR: invalid memory alloc request size 1590249045
pg_dump: The command was: COPY public._document474
но размер этой таблицы всего 140 Мб если верить запросу SELECT pg_size_pretty( pg_total_relation_size( '_document474' ) );
Самое главное, мы не можем остановить сервис postgres, что-то его постоянно перезапускает, из-за этого не можем попробовать обновить его или перенести на другой сервер
(6) и (3) Спасибо, всё получилось.
Пришлось обновить сервер до 12 с помощью pg_upgrade и очистить 2 поля в _document474. Pg_admin показывал, что размер этих полей 45 Mb, однако, селектом не мог их показать. И в базе эти отчеты не открывались
После обновления всё заработало.
Пришлось обновить сервер до 12 с помощью pg_upgrade и очистить 2 поля в _document474. Pg_admin показывал, что размер этих полей 45 Mb, однако, селектом не мог их показать. И в базе эти отчеты не открывались
После обновления всё заработало.
(4)
В таблице _document474 есть поле, в котором размер данных(обычно это бинарная строка типа bytea) превышает 500 МБ. Это давняя особенность pg_dump.
и есть более подробные описания данной проблемы.
Для решения можно воспользоваться утилитами pg_dumpbinary/pg_restorebinary.
Error message from server: ERROR: invalid memory alloc request size 1590249045
В таблице _document474 есть поле, в котором размер данных(обычно это бинарная строка типа bytea) превышает 500 МБ. Это давняя особенность pg_dump.
и есть более подробные описания данной проблемы.
Для решения можно воспользоваться утилитами pg_dumpbinary/pg_restorebinary.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот
