RHV 운영중 engine-vacuum
또는 dwh-vacuum
명령어 수행시 아래와 같은 오류가 발생하는 경우가 있다.
[root@rhvm ~]# dwh-vacuum /usr/bin/dwh-vacuum: line 47: vacuumdb: command not found
이것은 해당 시스템에 postgresql tools
위치를 인식하지 못해 생기는 문제이다.
왜냐하면 레드햇은 특정 솔루션의 경우 SCL(Software Collections)
이라는 구성을 만들어놓았는데 여기에 해당하는 패키지는 일반적인 경로가 아니라 레드햇 특유의 디렉토리 경로를 가지게 된다.
위 문제가 발생한 시스템의 경우
postgresql
이 설치된 내용을 확인해보면
[root@rhvm ~]# rpm -qa |grep postgresql rh-postgresql95-postgresql-libs-9.5.14-1.el7.x86_64 rh-postgresql95-postgresql-contrib-9.5.14-1.el7.x86_64 rh-postgresql95-postgresql-server-9.5.14-1.el7.x86_64 rh-postgresql95-postgresql-9.5.14-1.el7.x86_64 postgresql-jdbc-9.2.1002-8.el7_8.noarch postgresql-libs-9.2.24-7.el7_9.x86_64 rh-postgresql95-runtime-2.2-2.el7.x86_64 collectd-postgresql-5.8.0-3.el7.x86_64 [root@rhvm ~]# yum provides */vacuumdb rh-postgresql95-postgresql-9.5.14-1.el7.x86_64 : PostgreSQL client programs Repo : @rhel-7-server-rhv-4.2-manager-rpms Matched from: Filename : /opt/rh/rh-postgresql95/root/usr/bin/vacuumdb
위와같이 해당 명령어의 경로가 /opt/rh/rh-postgresql95/root/usr/bin/vacuumdb
와 같이 되어있어 기본 PATH에 포함되어있지 않아 찾지 못하게 된다.
원래는 dwh_vacuum 스크립트 내에 아래와 같은 부분이 있어야 한다. 해당 부분은 레드햇 자체 SCL설정을 enable 해주는 부분이다.
...생략... if ! [ -z "$sclenv" ]; then . scl_source enable ${sclenv} fi ...생략...
해결방법은 간단하다.
해당 스크립트를 수정하던지 아니면 명령어를 입력하기 전에 아래 명령을 한번 수행해주면 된다.
[root@rhvm ~]# scl enable rh-postgresql95 bash