Mon Jul 14 15:02:56 PDT 2008
- Previous message: [Slony1-general] ERROR: Slony-I: alterTableRestore(): Table with id 54 not found
- Next message: [Slony1-general] ERROR: Slony-I: alterTableRestore(): Table with id 54 not found
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi Chris, Thanks for your prompt reply. I think, I found where is the problem. It seems that someone has been changed the index name for this table (from pk_mytable to mytable_pkey), so second query returns no result. mydb=# select * from pg_catalog.pg_index I, pg_catalog.pg_class IC where indrelid = 143265 and IC.oid = I.indexrelid and IC.relname = 'pk_mytable'; indexrelid | indrelid | indnatts | indisunique | indisprimary | indisclustered | indisvalid | indkey | indclass | indexprs | indpred | relname | relnamespace | reltype | relowner | relam | relfilenode | reltablespace | relpages | reltuples | reltoastrelid | reltoastidxid | relhasindex | relisshared | relkind | relnatts | relchecks | reltriggers | relukeys | relfkeys | relrefs | relhasoids | relhaspkey | relhasrules | relhassubclass | relfrozenxid | relacl | reloptions ------------+----------+----------+-------------+--------------+----------------+------------+--------+----------+----------+---------+---------+--------------+---------+----------+-------+-------------+---------------+----------+-----------+---------------+---------------+-------------+-------------+---------+----------+-----------+-------------+----------+----------+---------+------------+------------+-------------+----------------+--------------+--------+------------ (0 rows) # \d mytable; Tabe "mydb.mytable" --------+-----------+----------- dt | date | not null firmid | integer | not null Indexes "mytable_pkey" PRIMARY KEY, btree (dt, firmid) "fki_" btree (firmid) # SELECT tab_idxname FROM _mycluster.sl_table where tab_id=54; tab_idxname -------------- pk_mytable It seems that the primary key names on the master are also changed! How can I fix this changed primary keys? It seems that everything has been messed up! I would like to drop slave node totally also the master if it is necessary? Thanks On Tue, Jul 15, 2008 at 12:35 AM, chris <cbbrowne at ca.afilias.info> wrote: > "Ibrahim Harrani" <ibrahim.harrani at gmail.com> writes: >> Hi Chris, >> >> I repaired the oid with REPAIR CONFIG on the master db(pg_dump was >> issued on master) >> >> I dropped the slave node with DROP NODE (ID =2); >> But I can't UNINSTALL slave NODE (UNINSTALL NODE (ID =2) >> >> When I issue the commands (UNINSTALL NODE (ID =2) or the following sql >> statements, >> I always get "Table with id 54 not found"; But I believe that the >> table is exist in the system and sl_table. What could be wrong in my >> setup? >> >> Thanks. >> >> # SELECT _mycluster.uninstallNode(); >> Slony-I: alterTableRestore(): Table with id 54 not found >> # SELECT _mycluster.setdroptable_int(54); >> ERROR: Slony-I: alterTableRestore(): Table with id 54 not found >> # SELECT _mycluster.alterTableRestore(54); >> ERROR: Slony-I: alterTableRestore(): Table with id 54 not found >> >> mydb=# SELECT * from _myusercluster.sl_table where tab_id=54; >> tab_id | tab_reloid | tab_relname | tab_nspname | tab_set | >> tab_idxname | tab_altered | tab_comment >> --------+------------+-------------+-------------+---------+--------------+-------------+------------------------- >> 54 | 143265 | mytable | myuser | 2 | pk_mytable | >> t | Table myuser.mytable >> (1 row) >> >> >> mydb=# SELECT * from pg_catalog.pg_tables where tablename='mytable' >> and tableowner='myuser'; >> schemaname | tablename | tableowner | tablespace | hasindexes | >> hasrules | hastriggers >> ------------+-----------+------------+------------+------------+----------+------------- >> myuser | mytable | myuser | | t | f | t >> (1 row) > > Well, here's the code fragment that is complaining: > -- ---- > -- Get the sl_table row and the current tables origin. Check > -- that the table currently IS in altered state. > -- ---- > select T.tab_reloid, T.tab_set, T.tab_altered, > S.set_origin, PGX.indexrelid, > @NAMESPACE at .slon_quote_brute(PGN.nspname) || ''.'' || > @NAMESPACE at .slon_quote_brute(PGC.relname) as tab_fqname > into v_tab_row > from @NAMESPACE at .sl_table T, @NAMESPACE at .sl_set S, > "pg_catalog".pg_class PGC, "pg_catalog".pg_namespace PGN, > "pg_catalog".pg_index PGX, "pg_catalog".pg_class PGXC > where T.tab_id = p_tab_id > and T.tab_set = S.set_id > and T.tab_reloid = PGC.oid > and PGC.relnamespace = PGN.oid > and PGX.indrelid = T.tab_reloid > and PGX.indexrelid = PGXC.oid > and PGXC.relname = T.tab_idxname > for update; > if not found then > raise exception ''Slony-I: alterTableRestore(): Table with id % not found'', p_tab_id; > end if; > > You can compare results via running the following query: > > select T.tab_reloid, T.tab_set, T.tab_altered, > S.set_origin, PGX.indexrelid, > from _myusercluster.sl_table T, _myusercluster.sl_set S, > "pg_catalog".pg_class PGC, "pg_catalog".pg_namespace PGN, > "pg_catalog".pg_index PGX, "pg_catalog".pg_class PGXC > where T.tab_id = 54 > and T.tab_set = S.set_id > and T.tab_reloid = PGC.oid > and PGC.relnamespace = PGN.oid > and PGX.indrelid = T.tab_reloid > and PGX.indexrelid = PGXC.oid > and PGXC.relname = T.tab_idxname; > > Breaking that down into individual queries agaisnt individual tables: > > We already have the query against sl_table: > >> mydb=# SELECT * from _myusercluster.sl_table where tab_id=54; >> tab_id | tab_reloid | tab_relname | tab_nspname | tab_set | >> tab_idxname | tab_altered | tab_comment >> --------+------------+-------------+-------------+---------+--------------+-------------+------------------------- >> 54 | 143265 | mytable | myuser | 2 | pk_mytable | >> t | Table myuser.mytable >> (1 row) > > Find the table: > > select * from pg_catalog.pg_class where oid = 143265; > > Find the index: > > select * from pg_catalog.pg_index I, pg_catalog.pg_class IC > where indrelid = 143265 and IC.oid = I.indexrelid and > IC.relname = 'pk_mytable'; > > Part of the query has to do with namespace matching; I wouldn't expect > that to be at issue. > > I expect you'll find that one or another of those queries doesn't find > any tuples, and that should indicate something about why table 54 > wasn't found. > -- > select 'cbbrowne' || '@' || 'linuxfinances.info'; > http://cbbrowne.com/info/lsf.html > Rules of the Evil Overlord #145. "My dungeon cell decor will not > feature exposed pipes. While they add to the gloomy atmosphere, they > are good conductors of vibrations and a lot of prisoners know Morse > code." <http://www.eviloverlord.com/> >
- Previous message: [Slony1-general] ERROR: Slony-I: alterTableRestore(): Table with id 54 not found
- Next message: [Slony1-general] ERROR: Slony-I: alterTableRestore(): Table with id 54 not found
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Slony1-general mailing list