Wed Apr 19 08:50:38 PDT 2006
- Previous message: [Slony1-general] Best process for promoting a Slave to a Master Server
- Next message: [Slony1-general] Is a high tab_reloid worrying?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Aaron Randall wrote: > Thanks for the helpful replies everyone. > > I attempted to use the "select _my_replication.uninstallnode();" and > this is what I saw... > > ipt=# select _my_replication.uninstallnode(); > ERROR: Slony-I: Table with id 1 not found > CONTEXT: SQL statement "SELECT > "_my_replication".alterTableRestore( $1 )" > PL/pgSQL function "uninstallnode" line 14 at perform > > So I had a look in "_my_replication.sl_table ;"... > > ipt=# SELECT * from _my_replication.sl_table ; > > and table with ID 1 was atypes. To check that the table did exists, I > did a simple select... > > > ipt=# SELECT * from atypes ; > atype | tag | description | mydata | > dateadded......... > > > I'm confused! :D > Are you *sure* that they match? Here's the code that returns that error... -- ---- -- Get the sl_table row and the current origin of the table. -- Verify that the table currently is NOT in altered state. -- ---- select T.tab_reloid, T.tab_set, T.tab_idxname, 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: Table with id % not found'', p_tab_id; end if; In your case, the query could be transformed to the following, to search for the relevant table: select T.tab_reloid, T.tab_set, T.tab_idxname, T.tab_altered, S.set_origin, PGX.indexrelid, "_my_replication".slon_quote_brute(PGN.nspname) || ''.'' || "_my_replication".slon_quote_brute(PGC.relname) as tab_fqname into v_tab_row from "_my_replication".sl_table T, "_my_replication".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 = 1 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; Apparently some part of the linkages there *isn't* there; it may take several queries to figure out which bit is missing. - You might check to see if there's a table in pg_class where the oid matches the "tab_reloid" value in sl_table - Similarly, you can do queries against pg_class looking for the index name - And against pg_index, looking for the linkage between the table (one pg_class entry) and the index (another pg_class entry). Some part of that is missing. Perhaps you dropped the primary key index?
- Previous message: [Slony1-general] Best process for promoting a Slave to a Master Server
- Next message: [Slony1-general] Is a high tab_reloid worrying?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Slony1-general mailing list