Skip to content

Конфигурация

greenplum.smart_vacuum

Настройка параметров vacuum

Для изменения параметров vacuum необходимо использовать опции следующего скрипта:

Usage: ./start_maintenance.sh -d <GreenPlum DB name> [options]
Опции (options) скрипта:

Опция Значение / Тип данных значения Описание
-h string GreenPlum active master hostname/IP
-u string GreenPlum cluster valid admin account
-p string GreenPlum cluster admin password
-t integer Job execution time limit (seconds)
-s integer Min table vacuum age, when vacuum will be performed, considering dead tuples count (hours)
-r integer Min table vacuum age, when vacuum will be performed obligatorily (hours)
-c integer Min dead tuples count, when vacuum will be performed
-f yes|no Full vacuum is allowed
-z yes|no Do analyze for every table immediately after its vacuum. Don't analyze whole database after vacuum cycle is complete
-a yes|no Do analyzedb with --full option. (Only available, if -z set to "no")
-g yes|no Show debug messages

Настройка crontab

Примеры настроек crontab-файла для автоматизации процессов vacuum и analyze:

  • Ежедневный vacuum и analyze:

    0 3 * * 1-5,7     /home/gpadmin/do_awh_toolkit/smart_vacuum/smart_vacuum.sh -d gpdb >> /home/gpadmin/do_awh_toolkit/logs/maintenance.starter_`date +\%F`.log
    

  • Еженедельный vacuum и analyze с полным обновлением статистики:

    0 3 * * 6     /home/gpadmin/do_awh_toolkit/smart_vacuum/smart_vacuum.sh -d gpdb -f yes >> /home/gpadmin/do_awh_toolkit/logs/maintenance.starter_`date +\%F`.log
    

  • Еженедельный vacuum каталога:

    0 3 * * 7     /home/gpadmin/do_awh_toolkit/smart_vacuum/vacuum_catalog.sh gpdb >> /home/gpadmin/do_awh_toolkit/logs/maintenance.catalog_`date +\%F`.log
    

  • Ежемесячный полный vacuum каталога с простоем:

    0 3 1 * *     /home/gpadmin/do_awh_toolkit/smart_vacuum/vacuum_catalog.sh gpdb full >> /home/gpadmin/do_awh_toolkit/logs/maintenance.catalog_`date +\%F`.log
    

Добавление исключений

Для исключения определенных таблиц или целых схем из процесса вакуумирования использовать таблицу исключений do_awh_toolkit.smart_vacuum_exclusions.

Если в поле schema_exclusion указано значение, отличное от null, а в поле relation_exclusion указано значение null, то все таблицы схемы будут пропущены.

Примеры добавления исключений:

  • Добавление исключения для одной таблицы:
    insert into do_awh_toolkit.smart_vacuum_exclusions (schema_exclusion,relation_exclusion) values ('s1','t1');
    
  • Добавление исключения для целой схемы с соответствующими таблицами:
    insert into do_awh_toolkit.smart_vacuum_exclusions (schema_exclusion) values ('s1');
    
  • Добавление исключения с использованием подстановочных знаков:
    insert into do_awh_toolkit.smart_vacuum_exclusions (schema_exclusion,relation_exclusion) values ('s%','tab%');
    
    В данном примере все таблицы, начинающиеся с префикса s и tab, будут исключены из процесса вакуумирования.

greenplum.sessions_management

  • Настройка профиля по умолчанию:

    update do_awh_toolkit.sessions_mgmt_user_profiles
        set spill_size_gb = 300, spill_file_num  = 1000
        where profile_id = 0
    ;
    

  • Добавление профилей пользователей и расписаний:

    insert into table do_awh_toolkit.sessions_mgmt_user_profiles ...
    insert into table do_awh_toolkit.sessions_mgmt_schedules ...
    

  • Добавление исключений:

    insert into table do_awh_toolkit.sessions_mgmt_user_exclusions ...
    

Настройка crontab

Примеры настроек crontab-файла для управления сессиями:

  • Завершение проблемных сессий каждые 5 минут:
    */5 * * * *     /home/gpadmin/do_awh_toolkit/sessions_mangement/terminator.sh gpdb >/dev/null
    
  • Логирование сессий каждые 5 минут без их завершения:
    */5 * * * *     /home/gpadmin/do_awh_toolkit/sessions_mangement/terminator.sh gpdb --drypass >/dev/null
    

greenplum.partition_management

Добавление партицированных таблиц для обслуживания:

insert into do_awh_toolkit.partitions_mgmt_control (nspname, tabname, prt_length, prt_lifetime, prt_options) 
    values('s1', 't1', '1 day', '1 mon', 'appendonly=''true'', compresstype=''zstd''')
;

Настройка crontab

Пример настройки crontab-файла для обслуживания партиций:

Еженедельное обслуживание партиций:

0 3 * * 6     /home/gpadmin/do_awh_toolkit/partition_mgmt/partition_maintenance.sh <dbname> >> /home/gpadmin/do_awh_toolkit/logs/partitions_maintenance_`date +\%F`.log 2>&1

greenplum.purge_gp_logs

Редактирование конфигурационного файла в директории установки:

cd ~/do_awh_toolkit/purge_gp_logs/
vi purge_gp_logs.conf

Настройка crontab

Пример настройки crontab-файла для очистки логов:

Ежедневная ротация логов:

0 3 * * *     /home/gpadmin/do_awh_toolkit/purge_gp_logs/purge_gp_logs.sh >> /home/gpadmin/do_awh_toolkit/logs/purge_gp_logs_`date +\%F`.log
Возможно использование опции -f для переопределения конфигурационного файла по умолчанию.