Re: Cannot upgrade to 8.4.1 on Windows - Mailing list pgsql-general

From Massa, Harald Armin
Subject Re: Cannot upgrade to 8.4.1 on Windows
Date
Msg-id e3e180dc0910110136o56a61fe9x76ce88a4eba1259e@mail.gmail.com
Whole thread Raw
In response to Cannot upgrade to 8.4.1 on Windows  (Bill Todd <pg@dbginc.com>)
List pgsql-general
Hello Bill,

some words to the installation of PostgreSQL on Windows:

There are 3 user accounts involved:

a) the Administrator account (or user with Administration privilege)
- This user is running the installer. It should have Administrator privileges, because only Admins are allowed to register Services and enter the necessary registry keys.

b) the windows user account, under which PostgreSQL service will run. The default name for this account is "postgres". This is a windows user account with very limited privileges; BUT it must have the "logon as service" privilege. The PostgreSQL installers do create this account for you.
The installers also change the ownership of the PostgreSQL data folder, so that the windows user postgres can access those data files. You should never need to logon as this user.

c) the PostgreSQL superuser WITHIN the database (that's nothing with windows). Unfortunately its default name is also postgres

Your problems circle around a) and b).

First: the installer should be run as an user with Admin privs.
Second: it is not a good idea to give admin privs to the postgresql user. pg_ctl start now actively drops admin privs within its code, but it is not in good taste (and a potential source of trouble) to give admin to postgres(windows user)

To "clean up" your system I recommend the following steps (note: that is NOT the normal path of upgrade, but since you did some things you should not do...)

a) pg_dump all your databases from PostgreSQL 8.3  (or use pg_dumpall)

a1) perhaps check if those dumps are loadable, i.e. that you called pg_dump with the correct parameters to do what you want it to do, and that you dumped the databases are the ones you wanted to dump

b) store those dumpfiles well

c) make a backup-copy of the data-directory of PostgreSQL 8.3 (not necessary, just a double security measure)

d) uninstall PostgreSQL 8.3 [as admin user]

e) remove the windows user postgres (net user postgres /delete or via useradmin)

f) reboot [not strictly necessary, but I learned it helps with windows]

g) make sure that there is not postgres service running [it cannot be, as of d) and e), this is just a check that d) and e) worked]

h) install PostgreSQL 8.4.x, while logged on as a user with admin privileges

i) make sure the <programms>/postgresql/8.4/bin is added to your path

j) load your dumps from step a)

k) enjoy PostgreSQL

Again: this is not the normal way, it is advised to install PostgreSQL 8.4 "in parallel" and use the 8.4 pg_dump to export the 8.3 databases; but as there are some misinstallations on the windows level on your system, this receipt has a higher likelyhood to work.

best wishes,

Harald



--
GHUM Harald Massa
persuadere et programmare
Harald Armin Massa
Spielberger Straße 49
70435 Stuttgart
0173/9409607
no fx, no carrier pigeon
-
%s is too gigantic of an industry to bend to the whims of reality

pgsql-general by date:

Previous
From: Devrim GÜNDÜZ
Date:
Subject: Re: Building PG 8.4.1 with ossp-uuid on Centos 5.3
Next
From: Andre Lopes
Date:
Subject: Convert DECIMAL MySql field to PostGre. How?