У нас вдруг, то есть неожиданно, приболел VMware vCenter. Cимптомы были самые разнообразные:
- бесконечные вылеты vCenter(300+);
- вылеты update manager;
- невозможность удалить ВМ – они становились orphaned;
- невозможность удалить снапшоты/сделать консолидацию/клонировать ВМ.
Попытки обновить vCenter до последнего билда, откатиться на недельный бэкап не принесли успеха.
Зацепились за вылет VMware vCenter с ошибкой:
1 2 |
An unrecoverable problem has occurred, stopping the VMware VirtualCenter service. Error: Error[VdbODBCError] (-1) "ODBC error: (58P01) - ERROR: could not open file "base/16384/26436": No such file or directory; Error while executing the query" is returned when executing SQL statement "DELETE FROM VPX_SDRS_STATS_VM WHERE VM_ID = ?" |
Решили отработать по старой схеме – подключиться в СУБД vPostgres:
- Из файла C:\ProgramData\VMware\vCenterServer\cfg\vmware-vpx\vcdb.properties берем адрес и порт, которые слушает СУБД (localhost:5432), имя пользователя (vc) и копируем в буфер обмена пароль.
- Скачиваем и ставим PGAdmin.
- Запускаем PGAdmin, вводим полученные ранее данные.
Раскрываем дерево: Servers->vCenter->Databases->VCDB->Schemas->vc->Tables->VPX_SDRS_STATS_VM и получаем:
1 |
ERROR: could not open file "base/16384/26436" |
По правой кнопке мыши на таблице VPX_SDRS_STATS_VM->Scripts->CREATE Script.
Раскомментировать удаление таблицы и выполнить скрипт:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
DROP TABLE vc.vpx_sdrs_stats_vm; CREATE TABLE vc.vpx_sdrs_stats_vm ( vm_id integer NOT NULL, quantiles text COLLATE pg_catalog."default", history text COLLATE pg_catalog."default", space_stats text COLLATE pg_catalog."default", CONSTRAINT pk_vpx_sdrs_stats_vm PRIMARY KEY (vm_id) ) WITH ( OIDS = FALSE ) TABLESPACE pg_default; ALTER TABLE vc.vpx_sdrs_stats_vm OWNER to vc; |
Таблица будет удалена и создана заново с пустыми данными.
Обращаю внимание, что если в таблицах находятся критические данные, то это может и не помочь. Данная же таблица это статистика SDRS по ВМ, что у меня не востребовано, да и vCenter сам периодически заполняет данные.