Резервное копирование PG

Средствами ПК "Бюджет-СМАРТ" (см меню "Управление базами") создаются логические файлы резервных копий (текстовые файлы, содержат набор команд, выполнение которых восстанавливает содержимое базы данных).

Создание резервной копии

perform xp_pg_dump (v_DbName := '${dbname}', v_Path := '${backupdir}/${backupfilename}');


(PostGre развернут в ОС Linux)

do $bcp$

declare v_Result integer; v_ErrorMsg text; v_backup_info text; v_File text; v_TagName text; v_BackPath text; v_days text;

begin

-- Параметры скрипта ------------------------------------------------------------------------------------------------------------------------------------------------------

v_TagName='budjet_22'; --Имя резервируемой базы данных PostgreSQL

v_BackPath='/var/lib/pgsqlks-13.1_5434/backups/'; --Имя каталога, куда будет резервироваться база данных

v_days=14; --Количество дней, в течение которых будет храниться резервная копия базы данных

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

select p.v_Result, p.v_ErrorMsg, p.v_backup_info, p.v_File

into v_Result, v_ErrorMsg, v_backup_info, v_File

from xp_pg_dump ( v_DbName := v_TagName

,v_Path := v_BackPath||v_TagName||'/daily'

,v_File := '@dbname_id_@timestamp_id.bak'

) p;

perform xp_cmdshell_1('find '||v_BackPath||v_TagName||'/daily/ -maxdepth 1 -mount -mtime +'||v_days||' -name "'||v_TagName||'_*" -execdir echo -e $(date +"%d.%m.%Y %H:%M:%S") "Планируем удалить в текущем каталоге старые файлы: {}." \; -delete -execdir echo -e $(date +"%d.%m.%Y %H:%M:%S") "Файл удален: {}.\n" \; | tee -a '||v_BackPath||v_TagName||'/daily/log.txt', 0);

end;

$bcp$

;