powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Публикации участников [закрыт для гостей] / Скрипты: резервное копирование баз данных PostgreSQL посредством pg_basebackup
1 сообщений из 1, страница 1 из 1
Скрипты: резервное копирование баз данных PostgreSQL посредством pg_basebackup
    #39
basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Документация https://postgrespro.ru/docs/postgresql/16/app-pgbasebackup

Пример скрипта
Код: BASH
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
#!/bin/bash
#

BACKUPDIR="/var/lib/pgsql/16/_backup"
ARCHIVEDIR="/var/lib/pgsql/16/_backup/wal_archive"

DATE=`/bin/date +%Y%m%d%H%M%S`
DESTINATION="${BACKUPDIR}/${DATE}"

#If this node is slave, don't do backup, exit.
#psql -t -c 'select pg_is_in_recovery();' | grep -sqw t && {
#  echo "$0: This node is slave, exiting."
#  exit 0
#}

find ${BACKUPDIR} -maxdepth 1 -mindepth 1 -type d -mmin +2880 -exec rm -rf {} \;

pg_basebackup -D ${DESTINATION} --checkpoint=fast -Ft -z -Xs -P

LAST_BACKUP=$(ls -1t ${ARCHIVEDIR}/*.backup | head -1 | awk -F/ '{print $NF}')
pg_archivecleanup ${ARCHIVEDIR} ${LAST_BACKUP}
В данном примере:
- удаляются бэкапы старше двух суток
- делается бинарный бэкап всех БД
- производится очистка директории с журналами WAL

ВАЖНО! При выводе директорий через find для удаления - указывать -maxdepth 1 -mindepth 1. Иначе в случае пустого каталога понаудаляет то, что выше на уровень.

Выполнять надо от пользоввателя postgres

В случае заданий по расписанию - тоже.
Код: BASH
1.
2.
# Backup
0 7 * * * /srv/scripts/backup/backup_pg_basebackup.sh > /dev/null 2>&1
...
Изменено: 20.10.2025, 14:54 - basename
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Публикации участников [закрыт для гостей] / Скрипты: резервное копирование баз данных PostgreSQL посредством pg_basebackup
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]