Код для команд vacuum и analize
%PGBINPATH%\vacuumdb.exe --dbname %%i --host %mhost% --port %mport% --username %musername% --no-password --echo --full --analyze
Код для команды reindex
%PGBINPATH%\reindexdb.exe --dbname %%i --host %mhost% --port %mport% --username %musername% --no-password --echo
Код скрипта для списка баз
Ниже код скрипта для запуска сжатия баз (vacuum) и реиндексации.
@echo off
call params.bat
@echo on
for %%i IN %PGBASES% DO (
echo start vacuum %%i >>%logfile%
%PGBINPATH%\vacuumdb.exe --dbname %%i --host %mhost% --port %mport% --username %musername% --no-password --echo --full --analyze >>%logfile%
echo end vacuum %%i >>%logfile%
echo start reindex %%i >>%logfile%
%PGBINPATH%\reindexdb.exe --dbname %%i --host %mhost% --port %mport% --username %musername% --no-password --echo >>%logfile%
echo end reindex %%i >>%logfile%
)
close;
В отдельном bat-файле, который лежит в том же каталоге, что и текущий файл скрипта, необходимо проинициализировать следующие параметры:
- PGBASES - перечисление со списком баз (в круглых скобках через пробег). Пример скрипта инициализации переменной:
set PGBASES=(moscowsoft msksoft base3)
- PGBINPATH - каталог bin установленного на сервере СУБД PostgreSQL
- logfile - имя файла для сохранения логов. Можно включить текущую дату, чтобы новые логи не перезаписывали предыдущие логи.
- mhost - обычно 127.0.0.1
- mport - обычно 5432
- musername - обычно “postgres”
Запуск обслуживания по расписанию
Обычно рекомендуют vacuum без analize запускать раз в сутки. Реиндексацию и analize рекомендуют выполнять раз в неделю.
bat-файл со скриптом из пункта выше можно настроить на запуск, например, на 5 утра с помощью планировщика Windows.
Если хотите настроить обслуживание баз PostgreSQL по расписанию, но по инструкции выше не получается это сделать, позвоните +7 499 67-333-75 и закажите услугу по настройке обслуживания специалистами компании MoscowSoft.