Вся предоставленная на этом сервере информация собрана нами из разных источников. Если Вам кажется, что публикация каких-то документов нарушает чьи-либо авторские права, сообщите нам об этом.
For a fresh install or upgrading from previous releases of
PostgreSQL:
Create the PostgreSQL superuser account.
This is the user the server will run as. For production use you
should create a separate, unprivileged account
(postgres is commonly used).
If you do not have root access or just want to play around,
your own user account is enough.
Running PostgreSQL as
root, bin,
or any other account with special access rights is a security risk;
don't do it. The postmaster will in fact refuse
to start as root.
You need not do the building and installation itself under this account
(although you can). You will be told when you need to login as the
database superuser.
Configure the source code for your system. It is this step at which
you can specify your actual installation path for the build process
and make choices about what gets installed. Change into the
src
subdirectory and type:
> ./configure
followed by any options you might want to give it. For a first installation
you should be able to do fine without any.
For a complete list of options, type:
> ./configure --help
Some of the more commonly used ones are:
--prefix=BASEDIR
Selects a different base directory for the installation of
PostgreSQL. The default is
/usr/local/pgsql.
--enable-locale
If you want to use locales.
--enable-multibyte
Allows the use of multibyte character encodings. This is primarily for
languages like Japanese, Korean, or Chinese.
--with-perl
Builds the Perl interface and plperl extension language.
Please note that the Perl interface needs to be
installed into the usual place for Perl modules (typically under
/usr/lib/perl), so you must have root access
to perform the installation step. (It is often easiest to leave out
--with-perl initially, and then build and install the
Perl interface after completing the installation of PostgreSQL
itself.)
--with-odbc
Builds the ODBC driver package.
--with-tcl
Builds interface libraries and programs requiring
Tcl/Tk, including libpgtcl, pgtclsh, and pgtksh.
Compile the program. Type
> gmake
The compilation process can take anywhere from 10 minutes to an hour.
Your mileage will most certainly vary. Remember to use GNU make.
The last line displayed will hopefully be
All of PostgreSQL is successfully made. Ready to install.
If you want to test the newly built server before you install it,
you can run the regression tests at this point. The regression tests
are a test suite to verify that PostgreSQL
runs on your machine in the way the developers expected it to.
For detailed instructions see Regression Test.
(Be sure to use the "parallel regress test" method, since the sequential
method only works with an already-installed server.)
If you are not upgrading an existing system then skip to
step 7.
You now need to back up your existing database.
To dump your fairly recent post-6.0 database installation, type
> pg_dumpall > db.out
If you wish to preserve object id's (oids), then use the -o
option when running pg_dumpall.
However, unless you have a
special reason for doing this (such as using OIDs as keys
in tables), don't do it.
Make sure to use the pg_dumpall
command from the version you are currently running.
7.0's pg_dumpall will not work on older databases.
However, if you are still using 6.0, do not use the
pg_dumpall script from 6.0 or everything will be
owned by the PostgreSQL superuser after you
reload. In that case
you should grab pg_dumpall from a later
6.x.x release.
If you are upgrading from a version prior to
Postgres95 v1.09 then you must back
up your database,
install Postgres95 v1.09, restore your database,
then back it up again.
Caution
You must make sure that your database is not updated in the middle of
your backup. If necessary, bring down postmaster, edit the permissions
in file /usr/local/pgsql/data/pg_hba.conf
to allow only you on, then
bring postmaster back up.
If you are upgrading an existing system then kill the database
server now. Type
> ps ax | grep postmaster
or
> ps -e | grep postmaster
(It depends on your system which one of these two works. No harm can be done
by typing the wrong one.)
This should list the process numbers for a number of processes, similar
to this:
Type the following line, with pid
replaced by the process id for process postmaster
(263 in the above case). (Do not use the id for the process
"grep postmaster".)
> kill pid
Tip: On systems which have PostgreSQL
started at boot time, there
is probably a startup file that will accomplish the same
thing. For example, on a
Redhat Linux system one might find that
> /etc/rc.d/init.d/postgres.init stop
works.
Also move the old directories out of the way. Type the following:
> mv /usr/local/pgsql /usr/local/pgsql.old
(substitute your particular paths).
Install the PostgreSQL executable files and
libraries. Type
> gmake install
You should do this step as the user that you want the installed executables
to be owned by. This does not have to be the same as the database superuser;
some people prefer to have the installed files be owned by root.
If necessary, tell your system how to find the new shared libraries.
How to do this varies between platforms. The most widely usable method
is to set the environment variable
LD_LIBRARY_PATH:
The -D option specifies the location where the data will be
stored. You can use any path you want, it does not have to be under
the installation directory. Just make sure that the superuser account
can write to the directory (or create it, if it doesn't already exist)
before starting initdb.
(If you have already been doing the installation up to now as the
PostgreSQL
superuser, you may have to log in as root temporarily to create the data
directory underneath a root-owned directory.)
The previous step should have told you how to start up the database server.
Do so now. The command should look something like
This will start the server in the foreground. To make it detach to
the background, you can use the -S option, but then you won't
see any log messages the server produces. A better way to put the server
in the background is
You also might want to copy over the old pg_hba.conf
file and any other files you might have had set up for authentication, such
as password files.
This concludes the installation proper. To make your life more
productive and enjoyable
you should look at the following optional steps and suggestions.
Life will be more convenient if you set up some environment
variables. First of all
you probably want to include
/usr/local/pgsql/bin (or equivalent)
into your PATH. To do this, add the following to
your shell startup
file, such as ~/.bash_profile (or
/etc/profile,
if you want it to affect every user):
> PATH=$PATH:/usr/local/pgsql/bin
Furthermore, if you set PGDATA in the environment
of the PostgreSQL
superuser, you can omit the -D for
postmaster
and initdb.
You probably want to install the man and
HTML documentation. Type
> cd /usr/src/pgsql/postgresql-7.0/doc
> gmake install
This will install files under /usr/local/pgsql/doc
and /usr/local/pgsql/man. To enable your system
to find the man documentation, you need to
add a line like the following to a shell startup file:
> MANPATH=$MANPATH:/usr/local/pgsql/man
The documentation is also available in Postscript format. If you have
a Postscript printer, or have your machine already set up to accept
Postscript files using a print filter, then to print the User's Guide
simply type
> cd /usr/local/pgsql/doc
> gunzip -c user.ps.tz | lpr
Here is how you might do it if you have Ghostscript on your system and are
writing to a laserjet printer.
Printer setups can vary wildly from system to system.
If in doubt, consult your manuals or your local expert.
The Adminstrator's Guide should probably be your first reading if you
are completely new to PostgreSQL, as it contains
information about how to set up database users and authentication.
Usually, you will want to modify your computer so that it will automatically
start the database server whenever it boots.
This is not required; the PostgreSQL server can
be run successfully from non-privileged accounts without root intervention.
Different systems have different conventions for starting up
daemons at boot time,
so you are advised to familiarize yourself with them.
Most systems have a file /etc/rc.local or
/etc/rc.d/rc.local which is almost
certainly no bad place
to put such a command.
Whatever you do, postmaster must be run by the
PostgreSQL
superuser (postgres) and not by
root or
any other user. Therefore you probably always want to form your command lines
along the lines of su -c '...' postgres.
It might be advisable to keep a log of the server output. To
start the server that way
try:
You may put the line breaks as shown above. The shell is smart
enough to keep parsing beyond end-of-line if there is an
expression unfinished. The exec saves one layer of shell under
the postmaster process so the parent is init.
In RedHat Linux add a file
/etc/rc.d/init.d/postgres.init
which is based on the example in contrib/linux/.
Then make a softlink to this file from
/etc/rc.d/rc5.d/S98postgres.init.
Run the regression tests against the installed server (using the sequential
test method). If you didn't run the tests before installation, you should
definitely do it now.
For detailed instructions see
Regression Test.
To start experimenting with Postgres,
set up the paths as explained above
and start the server. To create a database, type
> createdb testdb
Then enter
> psql testdb
to connect to that database. At the prompt you can enter SQL commands
and start experimenting.