[Postgres 7.0.3, SuSE Linux 7.1, kernel 2.2.14, dual pentium 3]
450 user tables, db directory ~ 90MB.
I'm desperate! I need to dump my db so I can set it up on another machine.
I have a lot of important data here and haven't been able to dump it! I can't even pg_dump
a single table. The db is up and running, but pg_dump crashes!
pg_dump -v pig5 gives:
-- reading user-defined types
-- reading user-defined functions
-- reading user-defined aggregates
-- reading user-defined operators
-- reading user-defined tables
-- finding Triggers for relation: 'runs_tmp'
PQgetvalue: ERROR! tuple number 0 is out of range 0..-1
Segmentation fault (core dumped)
The last stuff in the log file is: query: SELECT tgname, tgfoid, tgtype, tgnargs, tgargs, tgisconstraint, tgconstrname,
tgdeferrable,tginitdeferred, oid from pg_trigger where tgrelid = '1131188'::oid ProcessQuery CommitTransactionCommand
StartTransactionCommandquery: SELECT proname from pg_proc where pg_proc.oid = '1132416'::oid
In fact there is no row in pg_proc with oid=1132416.
select * from pg_trigger;tgrelid | tgname | tgfoid | tgtype | tgenabled | tgisconstraint | tgconstrname |
tgconstrrelid| tgdeferrable | tginitdeferred | tgnargs | tgattr | tgargs
---------+----------------+---------+--------+-----------+----------------+--------------+---------------+--------------+----------------+---------+--------+--------
1260 | pg_sync_pg_pwd | 12 | 29 | t | f | | 0 | f |
f | 0 | |1131188 | run_changed_tr | 1132416 | 17 | t | f |
| 0 | f | f | 0 | |
(2 rows)
I'm hoping there is some safe way to manually delete the inconsistant rows and then pg_dump.
Does anyone have a suggestion how to recover from this situation?
Thanks,George
--
George Young, Rm. L-204 gry@ll.mit.edu
MIT Lincoln Laboratory
244 Wood St.
Lexington, Massachusetts 02420-9108 (781) 981-2756