Skip Navigation Links | |
Exit Print View | |
![]() |
Oracle Solaris Cluster Data Service for PostgreSQL Guide Oracle Solaris Cluster 4.1 |
1. Installing and Configuring HA for PostgreSQL
A. Files for Configuring Oracle Solaris Cluster HA for PostgreSQL Resources
B. Deployment Example: Installing PostgreSQL in the Global Zone or a Zone Cluster
C. Deployment Example: Installing PostgreSQL in a Non-Global Zone With HA for Solaris Zones
D. Deployment Example: Installing PostgreSQL in the Global Zone Using WAL File Shipping
Installing and Configuring PostgreSQL on Shared Storage in the Global Zone
Example: Preparing the Cluster for PostgreSQL
Example: Configuring Cluster Resources for PostgreSQL
Example: Modifying the PostgreSQL Configuration File
Example: Building and Installing the PostgreSQL Software on Shared Storage
Note - Perform the following steps in your target environment either in the global zone or in the zone-cluster node unless it is specified otherwise.
phys-schost-1$ mkdir /postgres/data
phys-schost-1$ mkdir /postgres/logs
phys-schost-1$ mkdir /postgres/83_walarchives
phys-schost-2$ mkdir /postgres/data
phys-schost-2$ mkdir /postgres/utilities
phys-schost-2$ mkdir /postgres/log
phys-schost-2$ mkdir /postgres/83_walarchives
phys-schost-1$ cd /postgres/postgresql-8.3.1
phys-schost-1$ ./bin/initdb -D /postgres/data
phys-schost-2$ cd /postgres/postgresql-8.3.1
phys-schost-2$ ./bin/initdb -D /postgres/data
phys-schost-1$ ./bin/postmaster -D /postgres/postgresql-8.3.1
Note - If you are in a zone-cluster node, ensure that you have access to a copy of your configuration file.
phys-schost-1$ ksh /opt/SUNWscPostgreSQL/util/pgs_db_prep -f \/postgres/pgs_config_pri -e
phys-schost-1$ ./bin/pg_ctl -D /postgres/data stop
phys-schost-1$ cd /postgres
phys-schost-1$ /usr/local/bin/rysync -arv ./data phys-schost-2:/postgres
Note - The PostgreSQL configuration files are overwritten during resilvering. You need to move the configuration files to prevent them from being overwritten.
phys-schost-1$ cd /postgres
phys-schost-1$ mkdir config
phys-schost-1$ cd data
phys-schost-1$ mv postgresql.conf ../config
phys-schost-1$ ln -s ../config/postgresql.conf ./postgresql.conf
phys-schost-1$ touch ../config/recovery.conf
phys-schost-1$ ln -s ../config/recovery.conf ./recovery.done
phys-schost-2$ cd /postgres
phys-schost-2$ mkdir config
phys-schost-2$ cd data
phys-schost-2$ mv postgresql.conf ../config
phys-schost-2$ ln -s ../config/postgresql.conf ./postgresql.conf
phys-schost-2$ touch ../config/recovery.conf
phys-schost-2$ ln -s ../config/recovery.conf ./recovery.conf
phys-schost-1$ echo restore_command = 'cp /pgs/83_walarchives/%f %p' \ > /postgresql/data/recovery.done
phys-schost-2$ echo restore_command = '/postgres/postgres-8.3.1/bin \ /pg_standby -k 10 -t /postgres/data/failover /postgres/83_walarchives %f %p' \ /postgresql/data/recovery.conf
archive_command = '/usr/local/bin/rsync -arv %p \ phys-schost-2:/postgres/83_walarchives/%f </dev/null'
archive_command = '/usr/local/bin/rsync -arv %p \ phys-schost-1:/postgres/83_walarchives/%f </dev/null'
phys-schost-1# exit
phys-schost-1# ksh /opt/SUNWscPostgreSQL/util/pgs_register -f /postgres/pgs_config_pri -e
phys-schost-2# ksh /opt/SUNWscPostgreSQL/util/pgs_register -f /postgres/pgs_config_sta -e
phys-schost-1# ksh /opt/SUNWscPostgreSQL/util/pgs_register -f /postgres/pgs_config_pri
phys-schost-2# ksh /opt/SUNWscPostgreSQL/util/pgs_register -f /postgres/pgs_config_sta
phys-schost-1# ksh /opt/SUNWscPostgreSQL/rolechg/util/rolechg-register -f /postgres/rolechg_config
listen_addresses = 'localhost, ha-host1'
host all all 0.0.0.0/0 password
phys-schost-1# clresource enable STA-RS
phys-schost-1# clresource enable PRIM-RS
phys-schost-1# clresource enable ROLECHG-RS
phys-schost-2# cp /opt//SUNWscPostgreSQL/rolechg/util/resilver-step1 /postgres/utilities
phys-schost-2# cp /opt//SUNWscPostgreSQL/rolechg/util/resilver-step2 /postgres/utilities
phys-schost-2# chown -R postgres:postgres /postgres/utilities
##### Customize the following variables########## SOURCE_DATA=/postgres/data TARGET_DATA=/postgres/data TARGET=phys-schost-1 PGS_BASE=/postgres/postgresql-8.3.1 PRI_GRP=POSTGRES-PRI-RG STDBY_GRP=POSTGRES-STA-RG STDBY_RS=STA-RS PGPORT=5432 ROLECHG_GRP=ROLECHG-RG RESYNC=/usr/local/bin/rsync -rav SSH_PASSPHRASE=false ##### End of customizations ##########
##### Customize the following variables########## SOURCE=phys-schost-2 SOURCE_DATA=/postgres/data TARGET_DATA=/postgres/data TARGET=phys-schost-1 PGS_BASE=/postgres/postgresql-8.3.1 PRI_GRP=POSTGRES-PRI-RG STDBY_GRP=POSTGRES-STA-RG STDBY_RS=STA-RS PGPORT=5432 ROLECHG_GRP=ROLECHG-RG PRI_NODE=phys-schost-1 RESYNC=/usr/local/bin/rsync -rav SSH_PASSPHRASE=false ##### End of customizations ##########