auto-import postgresql-7.3.2-3 from postgresql-7.3.2-3.src.rpm

This commit is contained in:
cvsdist 2004-09-09 10:41:55 +00:00
parent 7fe3c31010
commit 06e8d17f1d
6 changed files with 391 additions and 734 deletions

View File

@ -1,3 +1 @@
migration-scripts.tar.gz postgresql-7.3.2.tar.gz
postgresql-7.2.4.tar.gz
postgresql-dump.1.gz

View File

@ -1,18 +1,14 @@
README.rpm-dist README.rpm-dist
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
Version 4.1, for the PostgreSQL 7.2.1-2PGDG RPMset. Version 5.0, for the PostgreSQL 7.3-1PGDG RPMset.
Lamar Owen <lamar.owen@wgcr.org> Lamar Owen <lamar.owen@wgcr.org>
DISCLAIMER: the following information is provided in the hope that it helps
people install and use PostgreSQL. It is being provided without warranty of
any kind, so, use at your own risk.
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
Contents: Contents:
0.) Quick -i note. 0.) Quick -i note.
1.) Introduction, QuickStart, and credits 1.) Introduction, QuickStart, and credits
2.) PostgreSQL RPM packages and rationale 2.) PostgreSQL RPM packages and rationale
3.) Upgrading. (Deprecated. Will be removed in a future README) 3.) Starting multiple postmasters
4.) Regression Testing 4.) Regression Testing
5.) Starting postmaster automatically on startup 5.) Starting postmaster automatically on startup
6.) Grand Unified Configuration(GUC) File. 6.) Grand Unified Configuration(GUC) File.
@ -31,35 +27,47 @@ recommended way to get '-i' functionality back.
INTRODUCTION INTRODUCTION
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
This document exists to explain the layout of the RPM's for PostgreSQL, to This document exists to explain the layout of the RPM's for PostgreSQL,to
explain how to migrate from an older version, and to explain WHY it can be describe various RPM specifics, and to document special features found
so difficult to upgrade PostgreSQL. in the RPMset.
This document is written to be applicable to version 7.2.1 of PostgreSQL, This document is written to be applicable to version 7.3 of PostgreSQL,
which is the current version of the RPM's as of this writing. which is the current version of the RPM's as of this writing. More to the
point, versions prior to 7.3 are not documented here.
Official PostgreSQL Global Development Group RPM's carry a 'PGDG' after the Official PostgreSQL Global Development Group RPM's have from version 7.1.2
release number. Other RPMset's as distributed with Linux distributions may on carried a 'PGDG' after the release number. Other RPMset's as distributed
have a different release number and initials. with Linux distributions may have a different release number and initials.
It is preferable for the distribution-specific set to be the one used, as It is preferable for the distribution-specific set to be the one used, as
the PGDG set is intentionally generic. So, if your distro has a set of RPMs, the PGDG set is intentionally generic. So, if your distro has a set of RPMs,
use them in preference. If you want to stay up-to-date on the PostgreSQL use them in preference. If you want to stay up-to-date on the PostgreSQL
core itself, use the PGDG generic set -- but understand that it is a core itself, use the PGDG generic set -- but understand that it is a
GENERIC set. In particular, SuSE and RedHat users that use late-model GENERIC set.
distributions should definitely use their RPMs. Trond and Reinhard do a
good job keeping them up to date. The Polish(ed) Linux Distribution also
does an excellent job with the PLD RPM version.
These RPMs are designed to be LSB-compliant -- if you find this not to be the These RPMs are designed to be LSB-compliant -- if you find this not to be the
case, please let me know by way of the pgsql-ports@postgresql.org mailing case, please let me know by way of the pgsql-ports@postgresql.org mailing
list. list.
These RPMs no longer support any sort of upgrading process other than that
documented in the regular documentation. That is, you must dump, upgrade,
initdb, and restore your data. The 7.2 to 7.3 migration can be quite
difficult, even to the point of requiring hand-editing of the dumpfile.
Thus, the 7.3 postgresql-server RPM specifically conflicts with prior
versions. The old server subpackage must be removed first, the new package
installed, and the data restored from dump.
A new section on running multiple postmasters has replaced the old upgrade
instructions.
QUICKSTART QUICKSTART
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
If this is an upgrade, please go to section 3, UPGRADING. For a fresh installation on a recent Red Hat or similar system, a simple
If this is a fresh installation, simply start the postmaster using: service postgresql start
/etc/rc.d/init.d/postgresql start (on RedHat and TurboLinux) as root will prepare a new database (initdb), and start a postmaster that
will listen on Unix socket 5432 only. Edit /var/lib/pgsql/data/postgresql.conf
to enable TCP/IP -- see the section on '-i.'
The file /var/lib/pgsql/.bash_profile is now packaged to help with the The file /var/lib/pgsql/.bash_profile is now packaged to help with the
setting of environment variables. You may edit this file, and it won't be setting of environment variables. You may edit this file, and it won't be
@ -77,7 +85,7 @@ CREDITS
Thomas Lockhart Thomas Lockhart
Uncle George Uncle George
Ryan Kirkpatrick Ryan Kirkpatrick
Trond Eivind Glomsrød Trond Eivind Glomsrd
Mark Knox Mark Knox
Mike Mascari Mike Mascari
Nicolas Huillard Nicolas Huillard
@ -86,42 +94,38 @@ Roger Luethi
Jeff Johnson Jeff Johnson
Reinhard Max Reinhard Max
Peter Eisentraut Peter Eisentraut
Joe Conway
A big THANK YOU to Trond, particularly. He has poured an amazing amount of
work into this package, particularly in cleaning up my errors, as well as
getting the contrib package to actually be useful.
POSTGRESQL RPM PACKAGES AND RATIONALE. POSTGRESQL RPM PACKAGES AND RATIONALE.
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
[This section has been edited. See prior versions for older history] The RPMset is packaged in the following subpackages:
PostgreSQL is a large, multifaceted program, with many clients and options
that all users will not need. So, several subpackages are built. Here is
the list of the current (7.2.1) packages:
postgresql: Some clients and libraries, and documentation postgresql: Some clients and libraries, and documentation
postgresql-server: Server executables and data files postgresql-server: Server executables and data files
postgresql-devel: Client-side development libraries postgresql-devel: Client-side development libraries
postgresql-perl: PERL client module postgresql-tcl: TCL/TK client libraries and docs
postgresql-python: The PygreSQL client library postgresql-python: The PygreSQL client library
postgresql-odbc: Linux ODBC client (not required to use ODBC from Win95)
postgresql-jdbc: JAR of the JDBC client postgresql-jdbc: JAR of the JDBC client
postgresql-test: The regression tests and associated files. postgresql-test: The regression tests and associated files.
postgresql-tk: Tk client and pgaccess.
postgresql-tcl: Tcl client and PL ONLY. postgresql-tcl: Tcl client and PL ONLY.
postgresql-libs: client shared libraries. postgresql-libs: client shared libraries.
postgresql-docs: extra documentation,such as the SGML doc sources. postgresql-docs: extra documentation,such as the SGML doc sources.
postgresql-contrib: The contrib source tree, as well as selected binaries. postgresql-contrib: The contrib source tree, as well as selected binaries.
postgresql-pl: PL/Perl (if possible on this dist), PL/Python, and PL/Tcl
The postgresql-libs package is required for all installations. Otherwise, a Note that there is no postgresql-perl, postgresql-odbc, postgresql-tk, or
mix and match installation may be made. The devel package is required to postgresql-plperl package any longer. This is due to these portions being
do any compilation of a program that uses either the client libs or the removed from the PostgreSQL source tarball. The TK client package 'pgaccess'
server (SPI) interface. was the core of the -tk subpackage -- so the pgtksh client was rolled back
into the -tcl package.
PostgreSQL is split up into multiple packages so that users can 'pick and
choose' what pieces are needed, and what dependencies are required.
RPM FILE LOCATIONS. RPM FILE LOCATIONS.
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
In compliance with the LSB, the PostgreSQL RPM's install files in a manner In compliance with the Linux FHS, the PostgreSQL RPM's install files in a manner
not consistent with much of the PostgreSQL documentation. According to the not consistent with most of the PostgreSQL documentation. According to the
standard PostgreSQL documentation, PostgreSQL is installed under the directory standard PostgreSQL documentation, PostgreSQL is installed under the directory
/usr/local/pgsql, with executables, source, and data existing in various /usr/local/pgsql, with executables, source, and data existing in various
subdirectories. subdirectories.
@ -142,7 +146,6 @@ Data: /var/lib/pgsql/data
Backup area: /var/lib/pgsql/backup Backup area: /var/lib/pgsql/backup
Templates: /usr/share/pgsql Templates: /usr/share/pgsql
Procedural Languages: /usr/lib/pgsql Procedural Languages: /usr/lib/pgsql
TK client docs: /usr/share/doc/postgresql-tk-x.y.z
Development Headers: /usr/include/pgsql Development Headers: /usr/include/pgsql
Other shared data: /usr/share/pgsql Other shared data: /usr/share/pgsql
Regression tests: /usr/lib/pgsql/test/regress (in the -test package) Regression tests: /usr/lib/pgsql/test/regress (in the -test package)
@ -161,123 +164,31 @@ for you.
These RPM's are meant to be LSB-compliant. If you find errors in them that These RPM's are meant to be LSB-compliant. If you find errors in them that
cause thembe be non-compliant, please let me know. cause thembe be non-compliant, please let me know.
UPGRADING. MULTIPLE POSTMASTERS
-----------------------------------------------------------------------------
WARNING: This information is deprecated. Make sure to fully back up
your database files BEFORE upgrading the RPM. Unfortunately, even then
you may have problems -- so be ready to hand-edit dump files.
A pg_upgrade utility is found in the contrib tree -- but it is not really
production quality code. If this lack of easy upgrades bothers you, please
let the developer list (pgsql-hackers@postgresql.org) know about it -- maybe
seamless upgrades can be made a higher prioriy if enough users complain.
Use the following information at your own risk.
CAUTION: While a semi-automatic upgrade process has been implemented, it is
STRONGLY recommended that a full dump of your database (using pg_dumpall) is
performed BEFORE upgrading the RPMs! If you have already done the upgrade
with the RPM, and want to return to your previous version to do the dump,
find the old RPM's and use 'rpm -U --oldpackage' to downgrade.
I cannot overemphasize this precaution.
NOTE: moving your existing data from /var/lib/pgsql to /var/lib/pgsql/data is
not currently automatic -- you will need to do this yourself at this release!
This change occurred between 6.5.3 and 7.0, so upgrading from prior to 7.0 to
7.0 or later might be difficult. The rh-dump script is provided to ease this,
see below.
The single biggest problem with upgrading PostgreSQL RPM's has been the lack
of a reasonably automated upgrade process. PostgreSQL has the property of
the binary on-disk database format changing between major versions (like
between 6.3 and 6.4). However, a change from 6.5 to 6.5.3 does not change
the on-disk format.
This property (feature, misfeature, bug, whatever) has been a known property of
PostgreSQL since before it was called PostgreSQL -- it has always been this
way. However, the means by which an upgrade is performed is not readily
performed in a fully automated fashion, as a "dump-initdb-restore" cycle has
to be performed. This doesn't appear to be too difficult -- however, dumping
the old database requires the old executables -- and, if you've already done
an rpm -U postgresql* (or upgraded from an older version of RedHat and didn't
specifically exclude the postgresql rpms), you no longer have the older
executables to dump your data. And your data is useless (until you reinstall
the old version, that is). All RPM's prior to late releases of version 6.5.
1 have this upgrade issue.
The newest RPM's for PostgreSQL attempt to make your job in upgrading a little
easier. First, during the installation of the new RPM's, a copy is made of
all the executable files and libraries necessary to make a backup of your data.
Second, the initialization script in the new postgresql-server package detects
the version of any database found -- if the version is old, then the startup
of the new version is aborted. However, if no database is found, a new one
is made.
One thing must be remembered -- due to the restructuring of the PostgreSQL
RPM's, you will have to manually select the postgresql-server package if you
want the server -- it is not installed by default in an upgrade. You can either
select it during the upgrade/install, or you can mount your RedHat CD and
install manually with rpm -i.
To facilitate upgrading, the postgresql-dump utility has been provided. Look
at the man page for postgresql-dump to see its usage. All executables to
restore the immediately prior version of the PostgreSQL database are placed in
the directory /usr/lib/pgsql/backup, and are accessed by the postgresql-dump
script. The directory /usr/lib/pgsql/backup is owned by the postgres user --
you can use this directory to hold dump files and preserve directories.
The basic sequence is:
(as user postgres):
postgresql-dump -t /var/lib/pgsql/backup/db.bak -p /var/lib/pgsql/backup/old -d
(you can abort the ASCII dump with 'Q', as it uses more) Then, (as user root):
***** NOTE ***** ***** NOTE *****
The above script is broken. Use "rh-pgdump.sh targetfile" instead, remove the
old databases (/var/lib/pgsql/base) (or safer - move them somewhere else first),
start the database and follow the insert procedure described below.
***** NOTE ***** ***** NOTE *****
service postgresql start
(which will automatically create a new database structure) And finally,
(as user postgres):
psql -e template1 </var/lib/pgsql/backup/db.bak
Once you are satisfied that the data has been restored properly, you may remove
the dump file (/var/lib/pgsql/backup/db.bak) and the preserve directory
(/var/lib/pgsql/backup/old).
EXPLANATION OF STEPS:
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
postgresql-dump: dumps the old database structure out, using the postmaster and The postgresql-server RPM contains an 'initscript' that is used to start the
the backend saved during the rpm upgrade. This step MUST be done as user postmaster. The current version of this script has logic to be able to start
postgres. multiple postmasters, with different data areas, listening on different ports,
etc. To use this functionality requires root access.
/etc/rc.d/init.d/postgresql start: initializes the new database structure that As an example, let us create a secondary postmaster called, creatively enough,
the data from your old version will be restored into, does some sanity 'secondary'. Here are the steps:
checking, and starts the postmaster. Due to the nature of some of the tasks, 1.) create a hard link in /etc/rc.d/init.d (or equivalent location)
this step must be done as root. to postgresql named 'secondary' : ln postgresql secondary Pick
a name not already used in /etc/rc.d/init.d!
2.) create a file in /etc/sysconfig/pgsql named secondary. This file is
a shell script -- typically you would define PGDATA, PGPORT, and PGOPTS
here. Since $PGDATA/postgresql.conf will override many of these
settings, except PGDATA, you might be surprised on startup.
3.) create the target PGDATA.
4.) Initdb the targe PGDATA as documented in the main documentation.
Automatic initdb may or may not work for you, so a manual one is
preferred. This must be done as user 'postgres'
5.) Edit postgresql.conf to change the port, address, tcpip settings, etc.
6.) Start the postmaster with 'service secondary start'.
psql -e: restores the old database into the new structure created by the Note that there may be problems with the standard symlink -- consider this
previous step. support experimental at this point in time.
NOTE:
-------------------------------------------------------------------------------
If you have added tables, indices, or basically anything to the template1
database which is the default administrative database this script will NOT
upgrade your database. As a matter of fact you will lose your data included
in the template1 database. Please look at www.postgresql.org for information
on upgrading the template1 database. This is a known bug in the PostgreSQL
pg_dump and pg_dumpall utilities.
The above information is considered deprecated. The utilities it mentions
are also considered deprecated and will be removed from a future release of
the RPMset due to the difficulty involved with a dump-restore upgrade and the
hand-editing of dumpfiles that are sometimes necessary.
REGRESSION TESTING REGRESSION TESTING
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
@ -316,10 +227,10 @@ STARTING POSTMASTER AUTOMATICALLY AT SYSTEM STARTUP
RedHat Linux uses the System V Init package. A startup script for PostgreSQL RedHat Linux uses the System V Init package. A startup script for PostgreSQL
is provided in the server package, as /etc/rc.d/init.d/postgresql. To start is provided in the server package, as /etc/rc.d/init.d/postgresql. To start
the postmaster, with sanity checking, as root, run the postmaster, with sanity checking, as root, run
/etc/rc.d/init.d/postgresql start service postgresql start
to shut postmaster down, to shut postmaster down,
/etc/rc.d/init.d/postgresql stop service postgresql stop
There are other parameters to this script -- /etc/rc.d/init.d/postgresql for a There are other parameters to this script -- execute 'service postgresql' for a
listing. listing.
To get this script to run at system startup or any time the system switches into To get this script to run at system startup or any time the system switches into
@ -366,28 +277,22 @@ environment to rebuild the full RPM set.
This release of the RPMset includes the ability to conditionally build This release of the RPMset includes the ability to conditionally build
sets of packages. The parameters, their defaults, and the meanings are: sets of packages. The parameters, their defaults, and the meanings are:
build6x undef #build for RHL 6.x. Define to 1 to build for 6.x, build6x undef #don't build for Red Hat 6.x. Define it to cause
# undefined otherwise. # other options to be tailored to 6.x.
#currently, this disables the kerberos, nls, and ssl
# builds, as well as correcting dependencies for 6.x
beta 0 #build with cassert and do not strip the binaries beta 0 #build with cassert and do not strip the binaries
perl 1 #build the postgresql-perl package. perl 1 #build the postgresql-perl package.
tcl 1 #build the postgresql-tcl package. tcl 1 #build the postgresql-tcl package.
tkpkg 1 #build the postgresql-tk package. tkpkg 1 #build the postgresql-tk package.
odbc 1 #build the postgresql-odbc package.
jdbc 1 #build the postgresql-jdbc package. jdbc 1 #build the postgresql-jdbc package.
pls 1 #build the postgresql-pl package.
test 1 #build the postgresql-test package. test 1 #build the postgresql-test package.
python 1 #build the postgresql-python package. python 1 #build the postgresql-python package.
pltcl 1 #build the postgresql-pltcl package. pltcl 1 #build the pltcl portion of the postgresql-pl package.
forceplperl 0 #don't force a build of pl/perl over libperl.a plperl 1 #build the plperl portion of the postgresql-pl package.
plperl 0 #don't build the postgresql-plperl package.
ssl 1 #use OpenSSL support. ssl 1 #use OpenSSL support.
kerberos 1 #use Kerberos 5 support. kerberos 1 #use Kerberos 5 support.
nls 1 #build with national language support. nls 1 #build with national language support.
enable_mb 1 #enable multibyte encodings. pam 1 #build with PAM support.
pgaccess 1 #build the pgaccess client, part of postgresql-tk.
newintarray 0 #substitute a newer intarray contrib.
pam 1 #build --with-pam
To use these defines, invoke a rebuild like this: To use these defines, invoke a rebuild like this:
rpm --rebuild --define 'perl 0' --define 'tcl 0' --define 'tkpkg 0'\ rpm --rebuild --define 'perl 0' --define 'tcl 0' --define 'tkpkg 0'\
@ -401,9 +306,11 @@ More of these conditionals will be added in the future.
CONTRIB FILES CONTRIB FILES
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
The contents of the contrib tree are packaged into the -contrib subpackage The contents of the contrib tree are packaged into the -contrib subpackage
and are compiled and placed into /usr/lib/pgsql/contrib with no further and are processed with make and make install. There is documentation in
processing. Please see each directory under contrib for details on how to /usr/share/doc/postgresql-contrib-VERSION for these modules. Most of the
install and use. modules are in /usr/lib/pgsql for loadable modules, and binaries are in
/usr/bin. In the future these files may be split out, depending upon function
and dependencies.
LOGGING SET UP LOGGING SET UP
------------------------------------------------------------------------------- -------------------------------------------------------------------------------

3
filter-requires-perl-Pg.sh Executable file
View File

@ -0,0 +1,3 @@
#!/bin/sh
/usr/lib/rpm/perl.req $* | grep -v 'perl(Pg'

View File

@ -17,7 +17,7 @@
# Changed PGDATA. # Changed PGDATA.
# #
# Version 7.0.2 Trond Eivind Glomsrød <teg@redhat.com> # Version 7.0.2 Trond Eivind Glomsrd <teg@redhat.com>
# use functions, add conditional restart # use functions, add conditional restart
# Version 7.0.3 Lamar Owen <lamar@postgresql.org> # Version 7.0.3 Lamar Owen <lamar@postgresql.org>
@ -28,7 +28,7 @@
# Version 7.1 Release Candidate Lamar Owen <lamar@postgresql.org> # Version 7.1 Release Candidate Lamar Owen <lamar@postgresql.org>
# initdb parameters have changed. # initdb parameters have changed.
# Version 7.1.2 Trond Eivind Glomsrød <teg@redhat.com> # Version 7.1.2 Trond Eivind Glomsrd <teg@redhat.com>
# Specify shell for su # Specify shell for su
# Handle stop better - kill unwanted output, make it wait until the database is ready # Handle stop better - kill unwanted output, make it wait until the database is ready
# Handle locales slightly differently - always using "C" isn't a valid option # Handle locales slightly differently - always using "C" isn't a valid option
@ -48,8 +48,11 @@
# Tested the $? return for the stop script -- it does in fact propagate. # Tested the $? return for the stop script -- it does in fact propagate.
# TODO: multiple postmasters. # TODO: multiple postmasters.
# PGVERSION is: (note that PGVERSION is the major: 7.2.1 -> PGVERSION 7.2) # VErsion 7.3 Lamar OWen <lamar.owen@ramifordistat.net>
PGVERSION=7.2 # Multiple postmasters, courtesy Karl DeBisschop
# PGVERSION is:
PGVERSION=7.3
# Source function library. # Source function library.
INITD=/etc/rc.d/init.d INITD=/etc/rc.d/init.d
@ -61,30 +64,40 @@ TYPESET=`typeset -f|grep "declare"`
# Get config. # Get config.
. /etc/sysconfig/network . /etc/sysconfig/network
# Find the name of the script
NAME=`basename $0`
# Set defaults for port and database directory
PGPORT=5432
export PGDATA=/var/lib/pgsql
if [ -f $PGDATA/PG_VERSION ] && [ -d $PGDATA/base/template1 ]
then
echo "Using old-style directory structure"
else
export PGDATA=/var/lib/pgsql/data
fi
# Override defaults from /etc/sysconfig/pgsql if file is present
[ -f /etc/sysconfig/pgsql/${NAME} ] && . /etc/sysconfig/pgsql/${NAME}
export PGDATA
export PGPORT
export PGOPTS
# Check that networking is up. # Check that networking is up.
# Pretty much need it for postmaster. # Pretty much need it for postmaster.
[ "${NETWORKING}" = "no" ] && exit 0 [ "${NETWORKING}" = "no" ] && exit 0
[ -f /usr/bin/postmaster ] || exit 0 [ -f /usr/bin/postmaster ] || exit 0
start(){ start(){
PSQL_START=$"Starting postgresql service: " PSQL_START=$"Starting ${NAME} service: "
# Check for older PGDATA location.
if [ -f /var/lib/pgsql/PG_VERSION ] && [ -d /var/lib/pgsql/base/template1 ]
then
export PGDATA=/var/lib/pgsql
else
export PGDATA=/var/lib/pgsql/data
fi
# Check for the PGDATA structure # Check for the PGDATA structure
if [ -f $PGDATA/PG_VERSION ] && [ -d $PGDATA/base ] if [ -f $PGDATA/PG_VERSION ] && [ -d $PGDATA/base ]
then then
# Check version of existing PGDATA # Check version of existing PGDATA
if [ `cat $PGDATA/PG_VERSION` != '7.2' ] if [ `cat $PGDATA/PG_VERSION` != '7.3' ]
then then
SYSDOCDIR="(Your System's documentation directory)" SYSDOCDIR="(Your System's documentation directory)"
if [ -d /usr/doc/postgresql-$PGVERSION ] if [ -d /usr/doc/postgresql-$PGVERSION ]
@ -125,6 +138,7 @@ start(){
then then
mkdir -p $PGDATA mkdir -p $PGDATA
chown postgres.postgres $PGDATA chown postgres.postgres $PGDATA
chmod go-rwx $PGDATA
fi fi
# Make sure the locale from the initdb is preserved for later startups... # Make sure the locale from the initdb is preserved for later startups...
[ -f /etc/sysconfig/i18n ] && cp /etc/sysconfig/i18n $PGDATA/../initdb.i18n [ -f /etc/sysconfig/i18n ] && cp /etc/sysconfig/i18n $PGDATA/../initdb.i18n
@ -133,29 +147,31 @@ start(){
# Is expanded this early to be used in the command su runs # Is expanded this early to be used in the command su runs
echo "export LANG LC_ALL LC_CTYPE LC_COLLATE LC_NUMERIC LC_CTYPE LC_TIME" >> $PGDATA/../initdb.i18n echo "export LANG LC_ALL LC_CTYPE LC_COLLATE LC_NUMERIC LC_CTYPE LC_TIME" >> $PGDATA/../initdb.i18n
# Initialize the database # Initialize the database
su -l postgres -s /bin/sh -c "/usr/bin/initdb --pgdata=/var/lib/pgsql/data > /dev/null 2>&1" < /dev/null su -l postgres -s /bin/sh -c "/usr/bin/initdb --pgdata=$PGDATA > /dev/null 2>&1" < /dev/null
[ -f $PGDATA/PG_VERSION ] && echo_success [ -f $PGDATA/PG_VERSION ] && echo_success
[ ! -f $PGDATA/PG_VERSION ] && echo_failure [ ! -f $PGDATA/PG_VERSION ] && echo_failure
echo echo
fi fi
# Check for postmaster already running... # Check for postmaster already running...
pid=`pidof -s postmaster` # note that pg_ctl only looks at the data structures in PGDATA
if [ $pid ] # you really do need the pidof()
pid=`pidof -s /usr/bin/postmaster`
if [ $pid ] && /usr/bin/pg_ctl status -D $PGDATA > /dev/null 2>&1
then then
echo $"Postmaster already running." echo $"Postmaster already running."
else else
#all systems go -- remove any stale lock files #all systems go -- remove any stale lock files
rm -f /tmp/.s.PGSQL.* > /dev/null rm -f /tmp/.s.PGSQL.${PGPORT} > /dev/null
echo -n "$PSQL_START" echo -n "$PSQL_START"
su -l postgres -s /bin/sh -c "/usr/bin/pg_ctl -D $PGDATA -p /usr/bin/postmaster start > /dev/null 2>&1" < /dev/null su -l postgres -s /bin/sh -c "/usr/bin/pg_ctl -D $PGDATA -p /usr/bin/postmaster -o '-p ${PGPORT}' start > /dev/null 2>&1" < /dev/null
sleep 1 sleep 1
pid=`pidof -s postmaster` pid=`pidof -s /usr/bin/postmaster`
if [ $pid ] if [ $pid ]
then then
success "$PSQL_START" success "$PSQL_START"
touch /var/lock/subsys/postgresql touch /var/lock/subsys/${NAME}
echo $pid > /var/run/postmaster.pid echo $pid > /var/run/postmaster.${PGPORT}.pid
echo echo
else else
failure "$PSQL_START" failure "$PSQL_START"
@ -165,24 +181,18 @@ start(){
} }
stop(){ stop(){
echo -n $"Stopping postgresql service: " echo -n $"Stopping ${NAME} service: "
# Check for older PGDATA location.
if [ -f /var/lib/pgsql/PG_VERSION ] && [ -d /var/lib/pgsql/base/template1 ]
then
export PGDATA=/var/lib/pgsql
else
export PGDATA=/var/lib/pgsql/data
fi
su -l postgres -s /bin/sh -c "/usr/bin/pg_ctl stop -D $PGDATA -s -m fast" > /dev/null 2>&1 su -l postgres -s /bin/sh -c "/usr/bin/pg_ctl stop -D $PGDATA -s -m fast" > /dev/null 2>&1
ret=$? ret=$?
if [ $ret -eq 0 ]; then if [ $ret -eq 0 ]
echo_success then
else echo_success
echo_failure else
fi echo_failure
fi
echo echo
rm -f /var/run/postmaster.pid rm -f /var/run/postmaster.${PGPORT}.pid
rm -f /var/lock/subsys/postgresql rm -f /var/lock/subsys/${NAME}
} }
restart(){ restart(){
@ -191,7 +201,7 @@ restart(){
} }
condrestart(){ condrestart(){
[ -e /var/lock/subsys/postgresql ] && restart || : [ -e /var/lock/subsys/${NAME} ] && restart
} }
reload(){ reload(){

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1 @@
5e9beca9c039be1ded2e51a0edcd9fba migration-scripts.tar.gz 23d2762571e8c5bb21eee08aab968ccb postgresql-7.3.2.tar.gz
b767f204a91097f1b3a6d2b4c39eac7a postgresql-7.2.4.tar.gz
3d2e8223f6bb715659cbecedeae81ccc postgresql-dump.1.gz