Received: from makus.postgresql.org ([98.129.198.125]) by malur.postgresql.org with esmtp (Exim 4.72) (envelope-from ) id 1TDITd-000216-Ii for pgsql-hackers@postgreSQL.org; Sun, 16 Sep 2012 17:17:49 +0000 Received: from momjian.us ([72.94.173.45]) by makus.postgresql.org with esmtp (Exim 4.72) (envelope-from ) id 1TDITb-00064B-PU for pgsql-hackers@postgreSQL.org; Sun, 16 Sep 2012 17:17:48 +0000 Received: from bruce by momjian.us with local (Exim 4.72) (envelope-from ) id 1TDITa-0001om-B4; Sun, 16 Sep 2012 13:17:46 -0400 Date: Sun, 16 Sep 2012 13:17:46 -0400 From: Bruce Momjian To: Rural Hunter Cc: PostgreSQL-development Subject: Re: [ADMIN] pg_upgrade from 9.1.3 to 9.2 failed Message-ID: <20120916171746.GA24907@momjian.us> References: <5052C402.8020003@gmail.com> <20120914142616.GA11265@momjian.us> <50535302.8080000@gmail.com> <20120914183915.GA5933@momjian.us> <5053F896.60005@gmail.com> <20120915180603.GA20907@momjian.us> <505557CD.8090304@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <505557CD.8090304@gmail.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Pg-Spam-Score: -2.4 (--) X-Archive-Number: 201209/610 X-Sequence-Number: 213638 On Sun, Sep 16, 2012 at 12:38:37PM +0800, Rural Hunter wrote: > >OK, I see many new ALTER TABLE commands, but nothing that would cause a > >difference in relation count. > > > >Attached is a patch that will return the OID of the old/new mismatched > >entries. Please research the pg_class objects on the old/new clusters > >that have the mismatch and let me know. It might be something that > >isn't in the old cluster, or not in the new cluster. > > > I ran the pg_upgrade with the patch and found the problematic object > is a toast object. > Copying user relation files > /raid/pgsql/base/6087920/6088238 > Mismatch of relation OID in database "forummon": old OID 16439148, > new OID 16439322 > > In old cluster: > # select * from pg_class WHERE oid=16439148; > relname | relnamespace | reltype | reloftype | relowner | relam | > relfilenode | reltablespace | relpages | reltuples | reltoastrelid | > reltoastidxid | relhasindex | relisshared | relpersistence | relkind > | relnatts | relchecks | relhasoids | relhaspkey | relhasrules | > relhastriggers | relhassubclass | relfrozenxid | relacl | reloptions > -------------------+--------------+----------+-----------+----------+-------+-------------+---------------+----------+-----------+---------------+---------------+-------------+-------------+----------------+---------+----------+-----------+------------+------------+-------------+----------------+----------------+--------------+--------+------------ > pg_toast_16439145 | 99 | 16439149 | 0 | 10 | 0 | 16439148 | 0 | 0 | > 0 | 0 | 16439150 | t | f | p | t | 3 | 0 | f | t | f | f | f | > 630449585 | | > (1 row) > > But it doesn't exist in new cluster: > select * from pg_class WHERE oid=16439148; > relname | relnamespace | reltype | reloftype | relowner | relam | > relfilenode | reltablespace | relpages | reltuples | relallvisible | > reltoastrelid | reltoastidxid | relhasindex | relisshared | > relpersistence | relkind | relnatts | relchecks | relhasoids | > relhaspkey | relhasrules | relhastriggers | relhassubclass | > relfrozenxid | relacl | reloptions > ---------+--------------+---------+-----------+----------+-------+-------------+---------------+----------+-----------+---------------+---------------+---------------+-------------+-------------+----------------+---------+----------+-----------+------------+------------+-------------+----------------+----------------+--------------+--------+------------ > (0 rows) [ Thread moved to hackers list.] OK, this is exactly what I wanted to see, and it explains why pg_dump didn't show it. Can you find out what table references this toast table? Try this query on the old cluster: select oid, * from pg_class WHERE reltoastrelid = 16439148; I believe it will have an oid of 16439145, or it might not exist. -- Bruce Momjian http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. +