Обсуждение: Excellent job!
Despite being a rather conservative DBA, I decided to move one of my
production databases to Postgres 9.0. I am delighted by the experience!
Not only did the pg_upgrade work perfectly and moved a fairly good sized
database in the matter of seconds, but the reason for the migration,
the fact that PostgreSQL 0.0 can resolve "IS NOT NULL" conditions by
using an index, proved to be as spectacular as I have expected. The UAT
was scheduled to last until 8 PM today, the users are delighted and have
already signed off. I am having a celebratory Sam Adams. Excellent job!
This is the DB that was moved:
news=> select pg_size_pretty(pg_database_size('news'));
pg_size_pretty
----------------
86 GB
(1 row)
It's nothing spectacular, but it isn't small, either! Once again, great
job done by Bruce and the gang.
--
Mladen Gogala
Sr. Oracle DBA
1500 Broadway
New York, NY 10036
(212) 329-5251
www.vmsinfo.com
Kasia Tuszynska wrote: > Mladen, > You used pg_upgrade to migrate to 9.0? > I ,perhaps mistakenly, assumed that it is for use once the db is at 9.0 to migrate in the future. > Kasia > Yes, I did use pg_uprade. The purpose of pg_upgrade is to migrate from the earlier releases to PgSQL 9.0. It works flawlessly with 8.4.4. having in mind the size of the database, I used pg_upgrade --link, which makes it impossible to re-open the database with the version 8.4.4. Basically, you define (and export, of course) the following environment variables: OLDATADIR, pointing to 8.4.4 $PGDATA, typically ~postgres/data on Red Hat systems. OLDBINDIR, the directory where the old 8.4.4 binaries are, typically /usr/bin on Red Hat systems. NEWDATADIR, located at ~postgres/9.0/data on Red Hat systems. NEWBINDIR, located at /usr/pgsql-9.0/bin on Red Hat systems. After that, pg_upgrade will copy your old database to the new $PGDATA, unless you specify "--link", in which case it will just create links. The latter is much faster but much more dangerous. They say that speed kills, but I had no problems whatsoever. Also, make sure that you have all of the same languages installed on the new postgresql 9.0 as are installed on postgres 8.x that you are migrating from. If you have plperl or plpython on the 8.4 cluster, than you have to install it on your 9.0 version or the pg_upgrade utility will refuse to cooperate and will complain about the missing library. -- Mladen Gogala Sr. Oracle DBA 1500 Broadway New York, NY 10036 (212) 329-5251 http://www.vmsinfo.com The Leader in Integrated Media Intelligence Solutions
Mladen Gogala wrote: > Kasia Tuszynska wrote: > >> Mladen, >> You used pg_upgrade to migrate to 9.0? >> I ,perhaps mistakenly, assumed that it is for use once the db is at 9.0 to migrate in the future. >> Kasia >> >> > Yes, I did use pg_uprade. The purpose of pg_upgrade is to migrate from > the earlier releases to PgSQL 9.0. It works flawlessly with 8.4.4. > having in mind the size of the database, I used pg_upgrade --link, which > makes it impossible to re-open the database with the version 8.4.4. > Basically, you define (and export, of course) the following environment > variables: > Before you do all that, you have to initialize the new 9.0 cluster with initdb. -- Mladen Gogala Sr. Oracle DBA 1500 Broadway New York, NY 10036 (212) 329-5251 http://www.vmsinfo.com The Leader in Integrated Media Intelligence Solutions