User Tools

Site Tools


how_to:repairing_corrupted_database

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
how_to:repairing_corrupted_database [2016/04/06 12:15] paulhow_to:repairing_corrupted_database [2020/03/16 15:51] paul
Line 32: Line 32:
 Then type (or copy/paste) Then type (or copy/paste)
  
-  select n.nspname AS schema, c.relname AS tablename, c.reltype as type from pg_class c inner join pg_namespace n on (c.relnamespace=n.oid) where c.relfilenode=<filename>;+  select n.nspname AS schema, c.relname AS tablename, c.relkind as kind from pg_class c inner join pg_namespace n on (c.relnamespace=n.oid) where c.relfilenode=<filename>;
      
 In the above example error message <filename> would be replaced by 512312 In the above example error message <filename> would be replaced by 512312
  
-If 'type' is 'i' then the damaged relation is an index, so a database reindex should fix the problem. If it is 'r' then it is a normal table, or if it is 't' then it is a 'toast' table (see below).+If 'kind' is 'i' then the damaged relation is an index, so a database reindex should fix the problem. If it is 'r' then it is a normal table, or if it is 't' then it is a 'toast' table (see below).
  
 =====unexpected chunk number===== =====unexpected chunk number=====
Line 50: Line 50:
 Unfortunately, there is no easy way to find which record is damaged, so you need to scan the entire table.  Unfortunately, there is no easy way to find which record is damaged, so you need to scan the entire table. 
  
-Go to a command prompt in the VPOP3 directory and run 'psql' (in version 5 only). The default password is 'vpop3pass'+Go to a command prompt in the VPOP3\pgsql\bin directory and run 'psql -U postgres -p 5433 vpop3' (in version 3 or 4 omit the '-p 5433'). The default password is 'pgsqlpass'
  
 ====Finding the problem message==== ====Finding the problem message====
Line 90: Line 90:
   SELECT subject, messagetime, fromaddr, tolist FROM messages.msgdata WHERE msgdataid = <problem message id>;   SELECT subject, messagetime, fromaddr, tolist FROM messages.msgdata WHERE msgdataid = <problem message id>;
 and and
-  SELECT username, folder FROM messages.foldermessages INNER JOIN users.users ON messages.foldermessages.userid=users.users.username WHERE msgdataid= <problem message id>;+  SELECT username, folder FROM messages.foldermessages INNER JOIN messages.folders USING(folderid) INNER JOIN users.users ON messages.folders.userid=users.users.usernumber WHERE msgdataid = <problem message id>;
  
 this will tell you summary information about the message which may help know which message will been deleted this will tell you summary information about the message which may help know which message will been deleted
how_to/repairing_corrupted_database.txt · Last modified: 2024/01/15 11:35 by paul