Test Environment - Virtual Machine description » History » Version 2
« Previous -
Version 2/10
(diff) -
Next » -
Current version
Herve Ballans, 23/06/2015 10:11
- Table of contents
- Test Environment
Test Environment¶
Virtual Machine description¶
Test machine is a virtual machine on a ProxMox environment.
Physically stored on inf-proxmox2
VM Name : sdo3
VM id : 801
memory : 32.00GB
CPU : 16 CPUs (4 X 4 cores)
Hard Disk 1 : 64 GB (OS + NetDRMS software) - stored on NFS-HA
Hard Disk 2 : 1 TB (Databases) - Stored localy
Not in HA configuration. VM Backup each day (for OS).
Guest OS : Debian 8.1
Guest kernel : Linux sdo3 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) x86_64 GNU/Linux
Manual install of postgresql¶
Prerequisites¶
# apt-get --purge remove postgresql* # wget https://ftp.postgresql.org/pub/source/v9.4.4/postgresql-9.4.4.tar.gz # tar -xzvf postgresql-9.4.4.tar.gz
Before compiling, I verify that patch required by NetDRMS (voir http://vso.stanford.edu/netdrms/pginst.html) was really present in source files :
src/backend/utils/misc/guc.c and src/bin/pg_dump/pg_dump.c
# apt-get update # apt-get upgrade # apt-get install gcc make libreadline-dev minizip
Installation¶
# ./configure # make # su # make install # adduser postgres
Test database¶
# mkdir /usr/local/pgsql/data # chown postgres /usr/local/pgsql/data # su - postgres # /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data # /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 & # /usr/local/pgsql/bin/createdb test # /usr/local/pgsql/bin/psql test
Shared postgresql library¶
# vi /etc/ld.so.conf/libc.conf
add :
/usr/local/pgsql/lib
Boot start-up¶
We create an init script in order to start postgresql on boot
# vi /etc/init.d/postgresql
Content :
#! /bin/sh # chkconfig: 2345 98 02 # description: PostgreSQL RDBMS # This is an example of a start/stop script for SysV-style init, such # as is used on Linux systems. You should edit some of the variables # and maybe the 'echo' commands. # # Place this file at /etc/init.d/postgresql (or # /etc/rc.d/init.d/postgresql) and make symlinks to # /etc/rc.d/rc0.d/K02postgresql # /etc/rc.d/rc1.d/K02postgresql # /etc/rc.d/rc2.d/K02postgresql # /etc/rc.d/rc3.d/S98postgresql # /etc/rc.d/rc4.d/S98postgresql # /etc/rc.d/rc5.d/S98postgresql # Or, if you have chkconfig, simply: # chkconfig --add postgresql # # Proper init scripts on Linux systems normally require setting lock # and pid files under /var/run as well as reacting to network # settings, so you should treat this with care. # Original author: Ryan Kirkpatrick <pgsql@rkirkpat.net> # $PostgreSQL: pgsql/contrib/start-scripts/linux,v 1.8 2006/07/13 14:44:33 petere Exp $ ## EDIT FROM HERE # Installation prefix prefix=/usr/local/pgsql # Data directory PGDATA="/usr/local/pgsql/data" # Who to run the postmaster as, usually "postgres". (NOT "root") PGUSER=postgres # Where to keep a log file PGLOG="$PGDATA/serverlog" ## STOP EDITING HERE # The path that is to be used for the script PATH=/usr/local/sbin:/usr/local/bin:/usr/local/pgsql/bin:/sbin:/bin:/usr/sbin:/usr/bin # What to use to start up the postmaster (we do NOT use pg_ctl for this, # as it adds no value and can cause the postmaster to misrecognize a stale # lock file) DAEMON="$prefix/bin/postmaster" # What to use to shut down the postmaster PGCTL="$prefix/bin/pg_ctl" set -e # Only start if we can find the postmaster. test -x $DAEMON || exit 0 # Parse command line parameters. case $1 in start) echo -n "Starting PostgreSQL: " su - $PGUSER -c "$DAEMON -D '$PGDATA' &" >>$PGLOG 2>&1 echo "ok" ;; stop) echo -n "Stopping PostgreSQL: " su - $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast" echo "ok" ;; restart) echo -n "Restarting PostgreSQL: " su - $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast -w" su - $PGUSER -c "$DAEMON -D '$PGDATA' &" >>$PGLOG 2>&1 echo "ok" ;; reload) echo -n "Reload PostgreSQL: " su - $PGUSER -c "$PGCTL reload -D '$PGDATA' -s" echo "ok" ;; status) su - $PGUSER -c "$PGCTL status -D '$PGDATA'" ;; *) # Print help echo "Usage: $0 {start|stop|restart|reload|status}" 1>&2 exit 1 ;; esac exit 0