Re: loading pg_description ... FATAL: duplicate key violates unique constraint "pg_description_o_c_o_index" - Mailing list pgsql-general

From surabhi.ahuja
Subject Re: loading pg_description ... FATAL: duplicate key violates unique constraint "pg_description_o_c_o_index"
Date
Msg-id 967CFC4343BF2A4DAFACD026D33DC85118ECBB@jal.iiitb.ac.in
Whole thread Raw
In response to loading pg_description ... FATAL: duplicate key violates unique constraint "pg_description_o_c_o_index"  ("surabhi.ahuja" <surabhi.ahuja@iiitb.ac.in>)
Responses Re: loading pg_description ... FATAL: duplicate key violates unique constraint "pg_description_o_c_o_index"
List pgsql-general
thank u so much for the help.
ok i ll tell u how i arrived at this problem.
 
this i was using just for testing purpose on my local m/c
 
i had deleted rows in a table, and had searched  and found the following:
 
Index: src/backend/utils/time/tqual.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/utils/time/tqual.c,v
retrieving revision 1.81
diff -c -c -r1.81 tqual.c
*** src/backend/utils/time/tqual.c	31 Dec 2004 22:02:56 -0000	1.81
--- src/backend/utils/time/tqual.c	20 Feb 2005 04:52:13 -0000
***************
*** 776,781 ****
--- 776,786 ---- HeapTupleSatisfiesSnapshot(HeapTupleHeader tuple, Snapshot snapshot, 						   Buffer buffer) {
+ /* This is to be used only for disaster recovery and requires serious analysis. */
+ #ifdef MAKE_ALL_TUPLES_VISIBLE
+ 	return true;
+ #endif
+  	if (!(tuple->t_infomask & HEAP_XMIN_COMMITTED)) 	{ 		if (tuple->t_infomask & HEAP_XMIN_INVALID)
 
so i went ahead and added these lines
+ #ifdef MAKE_ALL_TUPLES_VISIBLE
+ 	return true;
+ #endif
within the function(at the beginning)
 
Then i removed the existing installed version. i had unistalled the rpms
( i searched for it in google and managed to find how to do it)
 
now ther was no postgres installed
 
then i did ./configure CFLAGS="-D MAKE_ALL_TUPLES_VISIBLE"
 
and gmake
 
and the logged in as root
 
and did gmake install
 
it got installed properly
 
but when i did /usr/local/pgsql/bin/initdb -D /homes/surabi/data
 
it gave me this error:
loading pg_description ... FATAL:  duplicate key violates unique constraint "pg_description_o_c_o_index"
child process exited with exit code 1
initdb: removing contents of data directory "/homes/surabi/data"
please tell me how to proceed. I just want to try this experiment for knowledge sake.
 
thanks,
reagrds
Surabhi
 


From: Richard Huxton [mailto:dev@archonet.com]
Sent: Wed 2/8/2006 4:48 PM
To: surabhi.ahuja
Cc: pgsql-general@postgresql.org
Subject: Re: [GENERAL] loading pg_description ... FATAL: duplicate key violates unique constraint "pg_description_o_c_o_index"

***********************
Your mail has been scanned by iiitb VirusWall.
***********-***********


surabhi.ahuja wrote:
> actually

> i had a version existing earlier. guess it was installed from an rpm..
> so ther are binaries like postmaster inside /usr/bin itself

> and after i installed /8.0.1, ther are binaries even in /usr/local/pgsql/bin.

> how should i uninstall the whole thing and begin a fresh instaallation of 8.0.6.

> i ll delete the directory postgresql-8.0.1

> and i shall also remove usr/local/pgsql

> now how shd i uninstall that rpm so that the binaries in /usr/bin also get removed

Surabhi - can I suggest you just stick to the RPMs? If you're not sure
how to remove RPMs then you'll want to move slowly until you have more
experience of Linux system administration.

You almost certainly have some sort of graphical package-manager if
you're running a recent redhat/suse and that will give you the most
recent packaged version for your distribution.

If you want something not provided by your distribution though...

1. pg_dump all your existing databases (just to be safe) and check that
you know how to restore them and that they contain data.
2. Go to http://www.postgresql.org/ and look for "Latest Releases"
    Click the "binary" link next to "8.0.6"
3. Click linux, rpms, and work down to your version of redhat/fedora.
4. You'll want these:
       postgresql-8.0.6-1PGDG.i686.rpm
       postgresql-server-8.0.6-1PGDG.i686.rpm
       postgresql-docs-8.0.6-1PGDG.i686.rpm
       postgresql-libs-8.0.6-1PGDG.i686.rpm
     and possibly one or more of:
       postgresql-contrib-8.0.6-1PGDG.i686.rpm
       postgresql-jdbc-8.0.6-1PGDG.i686.rpm
       postgresql-pl-8.0.6-1PGDG.i686.rpm      
    Download them all to a suitable directory and then
5. rpm -Uvh postgresql*rpm
    This should upgrade your existing installation and then you can
restore your databases.
6. Get a good book on linux administration - plenty out there and you
can check reviews online. Set aside a few days to spend making sure you
understand how to manage RPMs, backups, the root user, admin tools like
ps/top/lsof etc.

HTH
  --
   Richard Huxton
   Archonet Ltd


pgsql-general by date:

Previous
From: "Karl O. Pinc"
Date:
Subject: Re: Request to have VACUUM ignore cost based limits
Next
From: Tom Lane
Date:
Subject: Re: Request to have VACUUM ignore cost based limits