diff --git a/pgpool-II-1.1.1.tar.gz b/pgpool-II-1.1.1.tar.gz new file mode 100644 index 0000000..80d8d3b Binary files /dev/null and b/pgpool-II-1.1.1.tar.gz differ diff --git a/pgpool.conf.sample b/pgpool.conf.sample new file mode 100644 index 0000000..a460d5d --- /dev/null +++ b/pgpool.conf.sample @@ -0,0 +1,148 @@ +# +# pgpool-II configuration file sample + +# Host name or IP address to listen on: '*' for all, '' for no TCP/IP +# connections +listen_addresses = 'localhost' + +# Port number for pgpool +port = 9999 + +# Port number for pgpool communication manager +pcp_port = 9898 + +# Unix domain socket path. +socket_dir = '/var/run' + +# Unix domain socket path for pgpool communication manager. +pcp_socket_dir = '/var/run' + +# Unix domain socket path for the backend. +backend_socket_dir = '/var/run' + +# pgpool communication manager timeout. 0 means no timeout, but strongly not recommended! +pcp_timeout = 10 + +# number of pre-forked child process +num_init_children = 32 + +# Number of connection pools allowed for a child process +max_pool = 4 + +# If idle for this many seconds, child exits. 0 means no timeout. +child_life_time = 300 + +# If idle for this many seconds, connection to PostgreSQL closes. +# 0 means no timeout. +connection_life_time = 0 + +# If child_max_connections connections were received, child exits. +# 0 means no exit. +child_max_connections = 0 + +# Logging directory +logdir = '/var/run' + +# Replication mode +replication_mode = false + +# Set this to true if you want to avoid deadlock situations when +# replication is enabled. There will, however, be a noticable performance +# degradation. A workaround is to set this to false and insert a /*STRICT*/ +# comment at the beginning of the SQL command. +replication_strict = true + +# When replication_strict is set to false, there will be a chance for +# deadlocks. Set this to nonzero (in milliseconds) to detect this +# situation and resolve the deadlock by aborting current session. +replication_timeout = 5000 + +# Load balancing mode, i.e., all SELECTs except in a transaction block +# are load balanced. This is ignored if replication_mode is false. +load_balance_mode = false + +# if there's a data mismatch between master and secondary +# start degeneration to stop replication mode +replication_stop_on_mismatch = false + +# If true, replicate SELECT statement when load balancing is disabled. +# If false, it is only sended to the master node. +replicate_select = false + +# Semicolon separated list of queries to be issued at the end of a session +reset_query_list = 'ABORT; RESET ALL; SET SESSION AUTHORIZATION DEFAULT' + +# If true print timestamp on each log line. +print_timestamp = true + +# If true, operate in master/slave mode. +master_slave_mode = false + +# If true, cache connection pool. +connection_cache = true + +# Health check timeout. 0 means no timeout. +health_check_timeout = 20 + +# Health check period. 0 means no health check. +health_check_period = 0 + +# Health check user +health_check_user = 'nobody' + +# If true, automatically lock table with INSERT statements to keep SERIAL +# data consistency. An /*INSERT LOCK*/ comment has the same effect. A +# /NO INSERT LOCK*/ comment disables the effect. +insert_lock = false + +# If true, ignore leading white spaces of each query while pgpool judges +# whether the query is a SELECT so that it can be load balanced. This +# is useful for certain APIs such as DBI/DBD which is known to adding an +# extra leading white space. +ignore_leading_white_space = false + +# If true, print all statements to the log. Like the log_statement option +# to PostgreSQL, this allows for observing queries without engaging in full +# debugging. +log_statement = false + +# If true, incoming connections will be printed to the log. +log_connections = false + +# If true, hostname will be shown in ps status. Also shown in +# connection log if log_connections = true. +# Be warned that this feature will add overhead to look up hostname. +log_hostname = false + +# if non 0, run in parallel query mode +parallel_mode = false + +# if non 0, use query cache +enable_query_cache = false + +#set pgpool2 hostname +pgpool2_hostname = '' + +# system DB info +system_db_hostname = 'localhost' +system_db_port = 5432 +system_db_dbname = 'pgpool' +system_db_schema = 'pgpool_catalog' +system_db_user = 'pgpool' +system_db_password = '' + +# backend_hostname, backend_port, backend_weight +# here are examples +#backend_hostname0 = 'host1' +#backend_port0 = 5432 +#backend_weight0 = 1 +#backend_hostname1 = 'host2' +#backend_port1 = 5433 +#backend_weight1 = 1 + +# - HBA - + +# If true, use pool_hba.conf for client authentication. In pgpool-II +# 1.1, the default value is false. The default value will be true in +# 1.2. +enable_pool_hba = false diff --git a/pgpool.conf.sample.patch b/pgpool.conf.sample.patch new file mode 100644 index 0000000..a5a9baa --- /dev/null +++ b/pgpool.conf.sample.patch @@ -0,0 +1,40 @@ +--- pgpool.conf.sample.old 2007-08-05 05:27:53.000000000 +0300 ++++ pgpool.conf.sample 2007-08-05 05:29:01.000000000 +0300 +@@ -1,6 +1,5 @@ + # + # pgpool-II configuration file sample +-# $Header: /home/fedora/jkeating/pkgs/rpms/postgresql-pgpool-II/EL-5/pgpool.conf.sample.patch,v 1.1 2007/08/16 09:22:43 devrim Exp $ + + # Host name or IP address to listen on: '*' for all, '' for no TCP/IP + # connections +@@ -12,16 +11,14 @@ + # Port number for pgpool communication manager + pcp_port = 9898 + +-# Unix domain socket path. (The Debian package defaults to +-# /var/run/postgresql.) +-socket_dir = '/tmp' ++# Unix domain socket path. ++socket_dir = '/var/run' + + # Unix domain socket path for pgpool communication manager. +-# (Debian package defaults to /var/run/postgresql) +-pcp_socket_dir = '/tmp' ++pcp_socket_dir = '/var/run' + +-# Unix domain socket path for the backend. Debian package defaults to /var/run/postgresql! +-backend_socket_dir = '/tmp' ++# Unix domain socket path for the backend. ++backend_socket_dir = '/var/run' + + # pgpool communication manager timeout. 0 means no timeout, but strongly not recommended! + pcp_timeout = 10 +@@ -44,7 +41,7 @@ + child_max_connections = 0 + + # Logging directory +-logdir = '/tmp' ++logdir = '/var/run' + + # Replication mode + replication_mode = false diff --git a/pgpool.init b/pgpool.init new file mode 100755 index 0000000..8c96220 --- /dev/null +++ b/pgpool.init @@ -0,0 +1,163 @@ +#!/bin/sh +# pgpool This is the init script for starting up pgpool-II +# +# chkconfig: - 64 36 +# description: Starts and stops the pgpool daemon +# processname: pgpool +# pidfile: /var/run/pgpool.pid +# +# v1.0.0 Devrim GUNDUZ +# - Initial version of Red Hat / Fedora init script + +if [ -r /etc/sysconfig/pgpool ]; then + . /etc/sysconfig/pgpool +fi + +# Source function library. +INITD=/etc/rc.d/init.d +. $INITD/functions + +# Get function listing for cross-distribution logic. +TYPESET=`typeset -f|grep "declare"` + +# Get config. +. /etc/sysconfig/network + +# Check that networking is up. +# We need it for pgpool +[ "${NETWORKING}" = "no" ] && exit 0 + +# Find the name of the script +NAME=pgpool + +# Set defaults for configuration variables +PGPOOLENGINE=/usr/bin +PGPOOLDAEMON=$PGPOOLENGINE/pgpool +PGPOOLCONF=/etc/pgpool.conf +PGPOOLPID=/var/run/pgpool.pid +PGPOOLLOG=/var/log/pgpool.log + +test -x $PGPOOLDAEMON || exit 5 + +# Create the log file if it does not exist +if [ ! -r $PGPOOLLOG ] +then + touch $PGPOOLLOG +fi + +# Check whether the config file exists or not +if [ ! -r /etc/pgpool.conf ] +then + echo "$PGPOOLCONF not found" + RETVAL=1 + failure + exit +fi + +script_result=0 + +start(){ + PGPOOL_START=$"Starting ${NAME} service: " + + echo -n "$PGPOOL_START" + $PGPOOLDAEMON -f $PGPOOLCONF $OPTS & >> "$PGPOOLLOG" 2>&1 < /dev/null + sleep 2 + + pid=`pidof -s "$PGPOOLDAEMON"` + if [ $pid ] + then + success "$PGPOOL_START" + touch /var/lock/subsys/${NAME} + echo + else + failure "$PSQL_START" + echo + script_result=1 + fi +} + +stop(){ + echo -n $"Stopping ${NAME} service: " + if [ $UID -ne 0 ]; then + RETVAL=1 + failure + else + killproc /usr/bin/pgpool + RETVAL=$? + [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/${NAME} + fi; + echo + return $RETVAL +} + +switch() { + echo -n $"Sending switchover request to $NAME " + $PGPOOLDAEMON switch >> "$PGPOOLLOG" 2>&1 < /dev/null + RETVAL=$? + echo + if [ $RETVAL -eq 0 ] + then + echo_success + else + echo_failure + fi + echo +} + +restart(){ + stop + start +} + +reload(){ +echo -n $"Reloading ${NAME}: " + if [ -n "`pidfileofproc $PGPOOLDAEMON`" ] ; then + killproc $PGPOOLDAEMON -HUP + else + failure $"Reloading ${NAME}" + fi + RETVAL=$? + echo +} + +condrestart(){ + [ -e /var/lock/subsys/${NAME} ] && restart +} + +condstop(){ + [ -e /var/lock/subsys/${NAME} ] && stop +} + +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop + ;; + switch) + switch + ;; + status) + status pgpool + script_result=$? + ;; + restart) + restart + ;; + reload|force-reload) + reload + ;; + condrestart) + condrestart + ;; + condstop) + condstop + ;; + *) + echo $"Usage: $0 {start|stop|switch|status|restart|condrestart|condstop|reload|force-reload}" + exit 1 +esac + +exit $script_result diff --git a/pgpool.sysconfig b/pgpool.sysconfig new file mode 100644 index 0000000..ef8e2e1 --- /dev/null +++ b/pgpool.sysconfig @@ -0,0 +1,6 @@ +# Options for pgpool + +# -n: don't run in daemon mode. does not detatch control tty +# -d: debug mode. lots of debug information will be printed + +#OPTS=" -d -n"