Om du har en Linux-server från RedHat-familjen (inklusive CentOS och Fedora), kanske du avundas hur Debian/Ubuntu-distributioner hanterar PostgreSQL-klusterhantering.
Även om det inte är lätt att installera olika PostgreSQL-versioner på samma RedHat Linux-server med RPM, är det mycket enklare att installera flera instanser av PostgreSQL (servrar) och samtidigt dra fördel av tjänstens infrastruktur.
När du väl har ställt in RPM-installationen, genom att följa instruktionerna som du hittar i PostgreSQL YUM Repository, kommer du att märka att processen kommer att skapa två filer bland de andra:
/etc/init.d/postgresql
:init-skript för PostgreSQL-servern/etc/sysconfig/pgsql/postgresql
:systemkonfiguration för postgresql-tjänsten
Som standard är PostgreSQL-datakatalogen (PGDATA
) pekar på /var/lib/pgsql/data
katalog. Det är möjligt att ändra det genom att ändra /etc/sysconfig/pgsql/postgresql
fil.
Låt oss anta att vi vill installera två PostgreSQL-servrar på samma RedHat Linux, genom att lägga till en andra server till standardservern som kommer att användas för utvecklingsändamål. Vi kommer att kalla detta postgresql-devel
. Den kommer att installeras i /var/lib/pgsql/data-devel
katalogen och kommer att köras på 5433-porten.
Vi skapar en symbolisk länk till huvudet postgresql
init-skriptet och kalla det postgresql-devel
:
cd /etc/init.d/
ln -s postgresql postgresql-devel
Sedan börjar vi fylla i postgresql-devel
konfigurationsfilen i /etc/sysconfig/pgsql
katalog. Det är viktigt att notera att init-skriptet och systemkonfigurationsfilen har samma namn .
cat < /etc/sysconfig/pgsql/postgresql-devel
PGDATA=/var/lib/pgsql/data-devel
PGPORT=5433
PGLOG=/var/lib/pgsql/pgstartup.\${PGPORT}.log
EOF
När detta är gjort kan du initiera datakatalogen genom att köra:/etc/init.d/postgresql-devel initdb
eller helt enkelt service postgresql-devel initdb
.
På samma sätt kan du styra start och avstängning av tjänsten genom att köra – respektive:
service postgresql-devel start
service postgresql-devel stop
Du kan lägga till/ta bort skriptet från start och avstängning av systemet genom att använda chkconfig
på samma sätt som du skulle göra med andra tjänster.
PostgreSQL-wikin innehåller en detaljerad sida om detta ämne, och jag föreslår att du läser den tillsammans med denna. Men den här enkla artikeln visar dig hur du enkelt integrerar flera PostgreSQL-instanser på samma Linux-server och hanterar dem med hjälp av standard RedHat-tjänstinfrastruktur (tack vare det fantastiska jobb som gjorts av Devrim Gunduz).