понедельник, 9 ноября 2020 г.

VMware: /storage/seat disk занят на 100% для vCenter Server Appliance 6.x/7.x

При возникновении данной проблемы рекомендуется запустить скрипт для очистки таблиц базы данных Postgres, а еще будет лучше выполнять его ежемесячно с помощью планировщика "cron".

Ниже приведены шаги для настройки vCenter Server:

1. Подключитесь к вашему vCenter по протоколу SSH или выполните все действия с консоли KVM.

2. Создайте скрипт для очистки базы данных:

vim /root/cleanup.sql

и добавьте следующий текст:

DO
$$
DECLARE
    rec   record;
BEGIN
   FOR rec IN
      SELECT *
      FROM   pg_tables
      WHERE tablename ~ '^vpx_event_[0-9].*'
      ORDER  BY tablename
   LOOP
      EXECUTE 'TRUNCATE TABLE '
       || quote_ident(rec.schemaname) || '.'
       || quote_ident(rec.tablename) || ' CASCADE';
   END LOOP;
END$$;

DO
$$
DECLARE
    rec   record;
BEGIN
   FOR rec IN
      SELECT *
      FROM   pg_tables
      WHERE tablename ~ '^vpx_event_arg_[0-9].*'
      ORDER  BY tablename
   LOOP
      EXECUTE 'TRUNCATE TABLE '
        || quote_ident(rec.schemaname) || '.'
        || quote_ident(rec.tablename) || ' CASCADE';
   END LOOP;
END$$;

3. Создайте скрипт для ежемесячного запуска очистки:

vim /etc/cron.monthly/dbcleanup

и добавьте следующий текст:

#!/bin/bash
/opt/vmware/vpostgres/current/bin/psql -d VCDB postgres -f /root/cleanup.sql -h /var/run/vpostgres

4. Измените права, чтобы "cron" мог корректно запускать вашу процедуру:

chmod 700 /etc/cron.monthly/dbcleanup

5. При необходимости инициируйте очистку, выполнив скрипт руками:

/etc/cron.monthly/dbcleanup

Также проследите за тем, чтобы пользователь "root" не был с истекшим паролем. Лучше всего будет подключиться на vCenter по 5480 порту веб-браузером и установить настройку "Password expires" в значение "No".

Комментариев нет:

Отправить комментарий