I'm a bit late with my reaction but I've seen the message below on a Cobalt
system (kernel 2.0.34) with
postgresql 6.5.3.

The problem could be reproduced (the entire /var/lib/pgsql dir would be
replaced after every crash).
A PHP3 script revoking user rights on many tables and ending with a vacuum
caused the problem.
After removing the vacuum all worked fine but after using the script a few
times the database starts to get very slow.

I would like to have this vacuum in the script to keep up performance so I
wonder what precautions should be taken
to prevend it from crashing the database (half of the tabels are
unaccessable after this action).

The reason for all the revokes is that dropped users leaf there permissions
on tables somewhere in the database.
The next user that will be added will inherit these permissions. That's the
reason for the revoke.

So am I missing something here and should I never use vacuum in a script
invoked by users?

Thanks Wim.

> Bruce Momjian wrote:
>
> > > > > > > Anyone seen this message or know what it means?
> > > > > > >
> > > > > > > NOTICE:  Index pg_proc_prosrc_index: NUMBER OF INDEX' TUPLES
(1071) IS
> > > > > > > NOT THE SAME AS HEAP' (1070)
> > > > > >
> >
> > The only way to fix that is to initdb, I think.  I would recommend
> > pg_upgrade, after removing the disable from the pg_upgrade script that
> > was added in 6.5.  That will fix it.  Not sure how it got that way,
> > though.
>
> El dope primero aqui...
>
> Thanks for the tip.  Here's what I had to do to make this work, for what
it's worth
> to future travelers...
>
> Cheers,
> Ed Loehr
>
> psql -d mydb -c "select * from title;" > before
>                                              # Save for after cmp test...
> cd /usr/local/pgsql                          # my install root...
> vacuumdb mydb                                # clean up before moving...
> cp -pr data data.backup                      # make a backup...
> pg_dumpall -s > schema.sql                   # dump schema w/out data...
> killall postmaster                           # stop the server...
> sleep 3
> mv data data.old                             # set it aside...
> cd /usr/src/pgsql/src                        # to the src tree...
> gmake install                                # reinstall binaries...
> cd /usr/local/pgsql                          # back to my install root...
> initdb                                       # recreate template1, sys
stuff...
> postmaster -i -o "-F -S 4096 -s" >& log &    # restart server...
> sleep 3
> pg_upgrade -f schema.sql data >& upgrade.log # reload schema...
> cp -p data.old/base/mydb/* data/base/mydb/   # replace data...
> psql -d mydb -c "select * from title;" > after
>                                              # verify we still have
data...
> diff before after                            # quick sanity check...
>
>
>
> ************
>

Reply via email to