Edit

IABSD.fr/ports/databases/postgresql/files

Branch :

  • Show log

    Commit

  • Author : mbalmer
    Date : 2007-06-07 20:39:51
    Hash : a02d1385
    Message : Fix a typo in the server README.OpenBSD file. Noticed by Ingo Schwarze <schwarze@usta.de>.

  • README.OpenBSD
  • Using PostgreSQL in an OpenBSD environment
    
    At least two different accounts are involved when working with PostgreSQL:
    One is an OpenBSD userid, '_postgresql', which is used as the userid of files
    that are part of PostgreSQL.  The other, usually named 'postgres', is not an
    OpenBSD userid, i.e. you will not find it in /etc/passwd, but an account
    internal to the database system.  The 'postgres' account is called the dba
    account (database administrator) and is created when a new database is
    initialized using the initdb command.
    
    If you are installing PostgreSQL for the first time, you have to create
    a default database first.  In the following example we install a database
    in /var/postgresql/data with a dba account 'postgres' and md5 authentication.
    We will be prompted for a password to protect the dba account:
    
           # su - _postgresql
           $ mkdir /var/postgresql/data
           $ initdb -D /var/postgresql/data -U postgres -A md5 -W
    
    It is strongly advised that you do not work with the postgres dba account
    other than creating more users and/or databases or for administrative task.
    Use the PostgreSQL permission system to make sure that a database is only
    accessed by programs/users that have the right to do so.
    
    Please consult the PostgreSQL website for more information, especially when
    you are upgrading an existing database installation.
    
    Auto Start and Stop
    
    To start PostgreSQL at boot and shut it down when the system shuts down,
    add the following lines to /etc/rc.local and /etc/rc.shutdown, respectively:
    
    /etc/rc.local:
    
    if [ -x !!PREFIX!!/bin/pg_ctl ]; then
    	echo -n ' postgresql'
    	su -l _postgresql -c "nohup !!PREFIX!!/bin/pg_ctl start \
    	    -D /var/postgresql/data -l /var/postgresql/logfile \
    	    -o '-D /var/postgresql/data' >/dev/null"
    fi
    
    /etc/rc.shutdown:
    
    if [ -f /var/postgresql/data/postmaster.pid ]; then
    	su -l _postgresql -c "!!PREFIX!!/bin/pg_ctl stop -m fast \
    	     -D /var/postgresql/data"
    	rm -f /var/postgresql/data/postmaster.pid
    fi
    
    Network Connections and Tuning
    
    To allow connections over TCP (and other options) edit the file:
    
    	/var/postgresql/data/postgresql.conf
    
    and also edit the pg_hba.conf (in the same directory) making the
    appropriate changes to allow connection from your network.
    
    The default sizes in the GENERIC kernel for SysV semaphores
    are not really large enough for a database with more than a
    handful of connections. A server running such a database should
    have at least the following in /etc/sysctl.conf:
    
    	kern.seminfo.semmni=256
    	kern.seminfo.semmns=2048
    
    To serve a large number of connections (>250), you may also need
    to increase the maximum shared memory segment size, on the i386
    try:
    
    	kern.shminfo.shmmax=50331648	# this is 48MB.
    					# default on i386 is 32MB
    					# other archs will vary
    
    These numbers should be tuned depending on system use. You will also
    need to tune the values in the postgresql.conf file to increase the
    number of connections to the backend.
    
    By default, the _postgresql user, and so the postmaster and backend
    processes run in the login(1) class of "daemon". On a busy server,
    it may be advisable to put the _postgresql user and processes in
    their own login(1) class with tuned resources, such as more open
    file descriptors etc.
    
    For example, add this to the login.conf(5) file:
    
    	postgresql:\
    		:openfiles-cur=768:\
    		:tc=daemon:
    
    Rebuild the login.conf.db file if necessary:
    
    	# cap_mkdb /etc/login.conf
    
    Change the login class with either vipw(8) or chsh(8).
    
    For more than about 250 connections, these numbers should be
    increased. Please report any changes and experiences to the package
    maintainers so that we can update this file for future versions.
    
    Kerberos authentication
    
    By default the postgresql server requires it's own krb5.keytab file.  It
    should be readable only by the _postgresql user.  The default location of
    the file is '/etc/postgresql/krb5.keytab' but is tunable by setting the
    krb_server_keyfile line in postgresql.conf.
    
    To generate the keytab:
    
    	# mkdir /etc/postgresql
    	# ktutil -k /etc/postgresql/krb5.keytab get postgres/server.domain
    	# chown _postgresql:_postgresql /etc/postgresql/krb5.keytab
    
    Clients/Frontends
    
    Many applications can use the PostgreSQL database right away.  To faciliate
    administration of a PostgreSQL database, two clients are notable:
    
    www/phppgadmin		A web based user interface that uses PHP5
    databases/pgadmin3	A graphical user interface that uses wxWidgets