peter fd69a6d25a Upgrade to postgresql 7.1. ok'd espie@
* The package is now called `postgresql' and not `pgsql'.

* The default user that is suggested for the admin account is also
  `postgresql'. This will work with OpenBSD-current with long username
  support. If anything breaks please report to the maintainers.

* pgwrap is no longer shipped or supported

* Please note, you will HAVE TO BACKUP your old data if you are
  upgrading from a previous release of postgresql. Do this before
  removing the old pgsql package.

From the announcement last weekend:

Key New Features and Capabilities of Version 7.1 Include:

* Write-ahead Log (WAL) increases data integrity and processing
speed. To maintain database consistency in case of an operating
system crash, previous releases of PostgreSQL have forced all all
data modifications to disk before each transaction commit. With
WAL, only one log file must be flushed to disk, greatly improving
performance. (Tech note: can eliminate use of -F in to disable disk
flushes)

* TOAST (The Oversized-Attribute Storage Technique) Past releases
had compiled-in row length limit typically between 8Kb & 32Kb. This
restriction made storage of long text fields difficult, cumbersome
and slow. TOAST enables rows of any length while maintaing the high
performance PostgreSQL users have come to expect.

* SQL92 Outer Joins are now supported. (Tech note: eliminates the
UNION/NOT IN workaround)

* 64-bit C Language Function Manager support The previous C function
manager did not handle support 64-bit CPU's (e.g. Alpha, Sun,
Itanium). (Tech note: This change should not impact existing custom
functions developed for past versions, but performance will be
improved through rewriting to use the new call interface.)

* Complex Queries that are better, stronger and faster Many complex
queries were unsupported in previous releases. With v7.1 combinations
of views, aggregates, UNION, LIMIT, cursors, subqueries, and inherited
tables are enabled. Inherited tables are now accessed by default,
and subqueries in FROM are now supported.
2001-04-21 18:25:42 +00:00
..
md5
2001-04-21 18:25:42 +00:00

Using PostgreSQL package in OpenBSD environment:
------------------------------------------------

If you are installing PostgreSQL for the first time, the following
steps required:

1. Create PostgreSQL user and group:

	# useradd -c "PostgreSQL Admin User" -g =uid -m -d /var/postgresql \
		-s /bin/sh postgresql

2. su to the postgresql account and initialize the database:

       # su - postgresql
       $ mkdir /var/postgresql/data
       $ initdb -D /var/postgresql/data

If you are upgrading PostgreSQL then you may have a `pgsql' user.
It is suggested that you follow the steps in

	!!PREFIX!!/share/doc/postgresql/INSTALL

for more information on how to upgrade your existing databases. See
also `Special notes for OpenBSD port' below. Replace references to
the `postgresql' user below with `pgsql' or whatever other user you
have selected to be the database administration account.

Auto Start and Stop
-------------------

If you wish to start PostgreSQL automatically during system startup,
add the following lines to /etc/rc.local:

if [ -x !!PREFIX!!/bin/pg_ctl ]; then
	su -l postgresql -c "!!PREFIX!!/bin/pg_ctl start \
		-D /var/postgresql/data -l /var/postgresql/logfile"
	echo -n ' postgresql'
fi

To automatically shutdown the database as part of the system shutdown, 
add the following lines to /etc/rc.shutdown:

if [ -f /var/postgresql/data/postmaster.pid ]; then
	su -l postgresql -c "!!PREFIX!!/bin/pg_ctl stop \
		-D /var/postgresql/data"
	rm -f /var/portgresql/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.

Please note that OpenBSD port of PostgreSQL requires a kernel
compiled with SYSVSEM and SYSVSHM options for proper operation.
The GENERIC kernel has these settings but the default sizes are not
really large enough for a database with more than a handful of
connections and should have at least the following:

option          SEMMNI=256
option          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:

option		SHMMAXPGS=4096		# default on i386 is 2048 = 8Mb
					# other archs may vary

These numbers should be tweaked depending on system use.

The ulimit settings can also be a problem.  The following can be
added for the postgresql user in the /etc/login.conf file:

	postgresql:\
		:maxproc-max=256:\
		:maxproc-cur=256:\
		:openfiles-cur=768:\
		:datasize-max=256M:\
		:datasize-cur=64M:\
		:stacksize-cur=4M:

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.