On Monday 17 October 2005 09:25, James B. Byrne wrote: > Does anyone here know of a repository that has PostgreSQL v.8 for > CentOS-4? If so, where is it? No repository, but the canonical location for downloading PostgreSQL is from ftp.postgresql.org's mirrors. Let's see: ftp://ftp.us.postgresql.org/pub/mirrors/postgresql/binary/v8.0.4/linux/rpms/redhat/rhel-es-4/ has what you want, I believe. No, it's not yummified. Due to the upgrade issues referenced below, this is, IMO, a Good Thing. > Are there caveats that I should know > about? Yes, several. PostgreSQL major version upgrades require a specific procedure to be followed, that, if you don't follow it exactly, might render your database unusable until you downgrade (it will never destroy data, but you just won't be able to get to it until to reinstall the older version). Now, if you don't have any data stored on the existing version, you can upgrade to your heart's content (but you might have to rebuild some things from source RPM, like php's PostgreSQL support, due to a different client library version). The upgrade procedure is fully documented in the main PostgreSQL documentation, but, in a nutshell: Dump your old database while the old version is running (see the man page for pg_dumpall); Save that dumpfile somewhere the RPM's don't touch (that is, move it out of /var/lib/pgsql) Stop postmaster (service postgresql stop is standard; some Red Hat versions have used service rhdb or service rhpostgresql) Blow away the contents of /var/lib/pgsql/data, saving a copy of postgresql.conf and pg_hba.conf first. Upgrade the postgresql packages. Start the postmaster with 'service postgresql start' as root. This also initializes the database tree under /var/lib/pgsql; you don't have to separately initdb. However, if I remember correctly, there are some odd SELinux issues; hmm... see https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=152591 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=143208 and, for a high-level view: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=149237 (also read https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=159503 for some really interesting discussion and input from Tom Lane. Tom is one of the core PostgreSQL hackers, to put it into perspective). In a nutshell, setenforce 0 then start postmaster, then stop postmaster, then setenforce 1 again. Now, back to the upgrade: Once the database is initialized and postmaster is running, restore your dump from the earlier step (see the pg_restore manpage for options). For most databases this should work; there are exceptions, particularly if you've developed custom server-side functions in C (they have to be recompiled and re-created with the new version). As mentioned previously, you are putting in a new version of libpq.so; this breaks many things if you aren't prepared for it. ANYTHING linked to the older libpq.so will fail dependencies, and will need to be rebuilt from source RPM and installed. You will then have to do this everytime a security update is issued for that package. This impacts things like php's pgsql support and perl's DBI postgresql support, for starters. I think, but am not sure, that there is a workaround in the 8.0.x RPM's; since I passed the baton of maintainership to Devrim, I'm not as up on it as I used to be when I did all the packaging. -- Lamar Owen Director of Information Technology Pisgah Astronomical Research Institute 1 PARI Drive Rosman, NC 28772 (828)862-5554 www.pari.edu