Tue Jul 12 04:25:24 PDT 2005
- Previous message: [Slony1-general] Adding tables to an existing set in Slony1
- Next message: 回复: Re: [Slony1-general] Adding tables to an existing set in Slony1
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
very very Thanks for answer of Christopher Browne . about merge I happen new question and error . If anybody know,Please help me. >>Sun.betty wrote: >> Q2: there have a set 1 use setCluster.sh script create. >> >> #!/bin/sh >> CLUSTERNAME=test1 >> MASTERDBNAME=test >> MASTERPORT=8432 >> SLAVEDBNAME=test >> SLAVEPORT=8432 >> MASTERHOST=10.10.10.67 >> SLAVEHOST=10.10.10.36 >> REPLICATIONUSER=master >> PGBENCHUSER=master >> export CLUSTERNAME MASTERDBNAME MASTERPORT SLAVEDBNAME SLAVEPORT >> MASTERHOST SLAVEHOST REPLICATIONUSER PGBENCHUSER >> >> slonik <<_EOF_ >> cluster name = $CLUSTERNAME; >> >> node 1 admin conninfo = 'dbname=$MASTERDBNAME host=$MASTERHOST >> user=$REPLICATIONUSER'; >> node 2 admin conninfo = 'dbname=$SLAVEDBNAME host=$SLAVEHOST >> user=$PGBENCHUSER'; >> >> init cluster ( id=1, comment = 'Master Node'); >> >> table add key (node id = 1, fully qualified name = 'public.history'); >> >> create set (id=1, origin=1, comment='All pgbench tables'); >> set add table (set id=1, origin=1, id=1, fully qualified name = >> 'public.accounts', comment='accounts table'); >> set add table (set id=1, origin=1, id=2, fully qualified name = >> 'public.branches', comment='branches table'); >> set add table (set id=1, origin=1, id=3, fully qualified name = >> 'public.tellers', comment='tellers table'); >> set add table (set id=1, origin=1, id=4, fully qualified name = >> 'public.history', comment='history table', key = serial); >> >> store node (id=2, comment = 'Slave node'); >> store path (server = 1, client = 2, conninfo='dbname=$MASTERDBNAME >> host=$MASTERHOST user=$REPLICATIONUSER'); >> store path (server = 2, client = 1, conninfo='dbname=$SLAVEDBNAME >> host=$SLAVEHOST user=$PGBENCHUSER'); >> store listen (origin=1, provider = 1, receiver =2); >> store listen (origin=2, provider = 2, receiver =1); >> _EOF_ >> >> now , want to add a new table to this cluster and set . >> >> create table tb_test3 ( >> INFO_ID NUMERIC(6) not null, >> TO_NAME VARCHAR(256) null, >> constraint PK_TB_TEST3 primary key (INFO_ID) >> ); >> >> I read the document , carry out step maybe like this: >> >> step 1 : create table at database test. (at master (node 1)) >> >> step 2 : pg_dump -U master -h 10.10.10.67 -p 8432 -t tb_test3 test | >> psql -s -U master -h 10.10.10.36 -p 8432 test >> >> (at slave (node 2) keep on master and slave table schema same.) >> >> step 3: use script : addSet.sh >> >> #!/bin/sh >> >> CLUSTERNAME=test1 >> MASTERDBNAME=test >> MASTERPORT=8432 >> SLAVEDBNAME=test >> SLAVEPORT=8432 >> MASTERHOST=10.10.10.67 >> SLAVEHOST=10.10.10.36 >> REPLICATIONUSER=master >> PGBENCHUSER=master >> export CLUSTERNAME MASTERDBNAME MASTERPORT SLAVEDBNAME SLAVEPORT >> MASTERHOST SLAVEHOST REPLICATIONUSER PGBENCHUSER >> slonik <<_EOF_ >> cluster name = $CLUSTERNAME; >> node 1 admin conninfo = 'dbname=$MASTERDBNAME host=$MASTERHOST >> user=$REPLICATIONUSER'; >> node 2 admin conninfo = 'dbname=$SLAVEDBNAME host=$SLAVEHOST >> user=$PGBENCHUSER'; >> create set (id=5, origin=1, comment='add tb_test3 tables'); >> set add table (set id=5, origin=1, id=7, fully qualified name = >> 'public.tb_test3', comment='tb_test3 table'); >> _EOF_ >> step 4: use script merge.sh merge set 1 and set 5 merge to set 1 >> >> #!/bin/sh >> >> CLUSTERNAME=test1 >> MASTERDBNAME=test >> MASTERPORT=8432 >> SLAVEDBNAME=test >> SLAVEPORT=8432 >> MASTERHOST=10.10.10.67 >> SLAVEHOST=10.10.10.36 >> REPLICATIONUSER=master >> PGBENCHUSER=master >> export CLUSTERNAME MASTERDBNAME MASTERPORT SLAVEDBNAME SLAVEPORT >> MASTERHOST SLAVEHOST REPLICATIONUSER PGBENCHUSER >> slonik <<_EOF_ >> cluster name = $CLUSTERNAME; >> node 1 admin conninfo = 'dbname=$MASTERDBNAME host=$MASTERHOST >> user=$REPLICATIONUSER'; >> node 2 admin conninfo = 'dbname=$SLAVEDBNAME host=$SLAVEHOST >> user=$PGBENCHUSER'; >> MERGE SET ( ID = 1, >> ADD ID = 5, >> ORIGIN = 1 ); >> _EOF_ >Christopher Browne answer for : > >It seems reasonably clear in the documentation. > >For MERGE SET... > >ID = ival indicates the set to contain the union of the two separate sets. > >If you plan to merge sets 1 and 2 together to get a new set 1, then "ID = 1" > >ADD ID = ival indicates the unique id of the set whose objects should be >transferred. That would be set #2. > >ORIGIN is the current origin node for both sets; that appears to be node #1. > My new quesion : I modify merge.sh MERGE SET ( ID = 1 , ADD ID = 5, ORIGIN = 1 ); purpose is : merge set 1 add set 5 to set 1 . but exex merge.sh show errors: bash-2.03$ ./merge.sh <stdin>:4: PGRES_FATAL_ERROR select "_test1".mergeSet(1, 5); - ERROR: Slony-I: subscriber lists of set 1 and 5 are different look system table : test=# select * from _test1.sl_set ; set_id | set_origin | set_locked | set_comment --------+------------+------------+--------------------- 1 | 1 | | All pgbench tables 2 | 1 | | All pgbench tables 3 | 1 | | All pgbench tables 4 | 1 | | All pgbench tables 5 | 1 | | add tb_test3 tables (5 rows) test=# select * from _test1.sl_table ; tab_id | tab_reloid | tab_relname | tab_nspname | tab_set | tab_idxname | tab_altered | tab_comment --------+------------+-------------+-------------+---------+----------------------------------+-------------+---------------- 1 | 319045 | accounts | public | 1 | accounts_pkey | t | accounts table 2 | 319037 | branches | public | 1 | branches_pkey | t | branches table 3 | 319041 | tellers | public | 1 | tellers_pkey | t | tellers table 4 | 419364 | history | public | 1 | history__Slony-I_test1_rowID_key | t | history table 5 | 547522 | tb_test1 | public | 2 | pk_tb_test1 | t | tb_test1 table 6 | 548223 | tb_test2 | public | 4 | pk_tb_test2 | t | tb_test2 table 7 | 580442 | tb_test3 | public | 5 | pk_tb_test3 | t | tb_test3 table (7 rows) what reason lead show this error ? if you know please,give some tip for me .Thanks very much ! --------------------------------- DO YOU YAHOO!? ????G??????????????????? -------------- next part -------------- An HTML attachment was scrubbed... URL: http://gborg.postgresql.org/pipermail/slony1-general/attachments/20050712/6d57e03c/attachment.html
- Previous message: [Slony1-general] Adding tables to an existing set in Slony1
- Next message: 回复: Re: [Slony1-general] Adding tables to an existing set in Slony1
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Slony1-general mailing list