Ако имате Linux сървър от семейството на RedHat (включително CentOS и Fedora), може да завиждате на начина, по който дистрибуциите на Debian/Ubuntu се справят с управлението на PostgreSQL клъстери.
Въпреки че не е лесно да инсталирате различни версии на PostgreSQL на един и същ сървър на RedHat Linux, използвайки RPM, е много по-лесно да инсталирате няколко екземпляра на PostgreSQL (сървъри) и в същото време да се възползвате от инфраструктурата на услугите.
След като настроите RPM инсталацията, като следвате инструкциите, които ще намерите в PostgreSQL YUM Repository, ще забележите, че процесът ще създаде два файла между останалите:
/etc/init.d/postgresql
:инициализиращ скрипт за PostgreSQL сървъра/etc/sysconfig/pgsql/postgresql
:системна конфигурация за услугата postgresql
По подразбиране директорията с данни на PostgreSQL (PGDATA
) сочи към /var/lib/pgsql/data
директория. Възможно е да го промените чрез модифициране на /etc/sysconfig/pgsql/postgresql
файл.
Да предположим, че искаме да инсталираме два PostgreSQL сървъра на един и същ RedHat Linux, като добавим втори сървър към този по подразбиране, който ще се използва за целите на разработката. Ще наречем това postgresql-devel
. Той ще бъде инсталиран в /var/lib/pgsql/data-devel
директория и ще работи на порт 5433.
Създаваме символна връзка към главния postgresql
init скрипт и го наречете postgresql-devel
:
cd /etc/init.d/
ln -s postgresql postgresql-devel
След това започваме да попълваме postgresql-devel
конфигурационен файл в /etc/sysconfig/pgsql
директория. Важно е да се отбележи, че инициалният скрипт и системният конфигурационен файл имат едно и също име .
cat < /etc/sysconfig/pgsql/postgresql-devel
PGDATA=/var/lib/pgsql/data-devel
PGPORT=5433
PGLOG=/var/lib/pgsql/pgstartup.\${PGPORT}.log
EOF
След като това стане, можете да инициализирате директорията с данни, като изпълните:/etc/init.d/postgresql-devel initdb
или просто service postgresql-devel initdb
.
По същия начин можете да контролирате стартирането и изключването на услугата, като стартирате – съответно:
service postgresql-devel start
service postgresql-devel stop
Можете да добавите/премахнете скрипта от стартиране и изключване на системата, като използвате chkconfig
по същия начин, както бихте направили с други услуги.
Уикито на PostgreSQL съдържа подробна страница по тази тема и ви предлагам да я прочетете заедно с тази. Тази проста статия обаче ви показва как лесно да интегрирате множество екземпляри на PostgreSQL на един и същ Linux сървър и да ги управлявате с помощта на стандартната инфраструктура на услугите на RedHat (благодарение на страхотната работа, извършена от Devrim Gunduz).