From: Lin W. <lin...@gm...> - 2014-03-03 16:17:23
|
Thank you very much,Koichi Suzuki. From postgres-xc 1.1 Documentation "Chapter 30. Adding a New Node", I learn it how to add a new node to the cluster. I find it: when I create node 'node100' in the session of A, the node100 is not efficient for the cluster untile execute 'select pgxc_pool_reload()' or I open a new session B, in the session B the node100 is efficient. as the reason of this, when I create node node100, then use'\c postgres' ,the session shows"psql (9.3beta2, server 9.2.4)" , so I know it open a new session, the node100 is efficient, but I don't initdb the node of node100, so it gets wrong. just like as below: [wln@localhost pgxc]$ psql -d postgres -p 5300 psql (9.3beta2, server 9.2.4) Type "help" for help. postgres=# select * from pgxc_node; node_name | node_type | node_port | node_host | nodeis_primary | nodeis_preferred | node_id --------------+-----------+-----------+-----------+----------------+------------------+------------ datanode1 | D | 5302 | localhost | f | f | 888802358 datanode2 | D | 5304 | localhost | f | f | -905831925 coordinator1 | C | 5300 | localhost | f | f | 1938253334 (3 rows) postgres=# create node node100 with(type='datanode',host=localhost,port=7809); CREATE NODE postgres=# create table t1(id int); CREATE TABLE postgres=# insert into t1 values(1); INSERT 0 1 postgres=# explain select * from t1; QUERY PLAN ---------------------------------------------------------------------------- Data Node Scan on "__REMOTE_FQS_QUERY__" (cost=0.00..0.00 rows=0 width=0) Node/s: datanode1, datanode2 (2 rows) postgres=# create user user1 with SUPERUSER; CREATE ROLE postgres=# set role user1; SET postgres=# \c postgres psql (9.3beta2, server 9.2.4) You are now connected to database "postgres" as user "wln". postgres=# create table t2 (id int); ERROR: Failed to get pooled connections > 2014-03-03 12:27 GMT+08:00 Koichi Suzuki <koi...@gm...>: > > Did you run initdb for node100 before you run CREATE NODE node100? > > Because you already have created database, you need to run initdb and > > copy catalog from other datanode to node100. > > > If you're adding new datanode to the cluster, you should do the > following: > > 1. Run initdb to initialize new datanode resources, > > 2. Prepare at least postgresql.conf and pg_hba.conf for the new datanode. > > 3. Fun pg_dumpall on an existing datanode to dump all the catalog > > info. You should specify --include-nodes and --dump-nodes option to > > dump everything in the catalog. > > 4. Start the new datanode using pg_ctl with -Z restoremode option. > > 5. Restore the backed up catalog you build at the step 3 by running > > psql against the new datanode. > > 6. Stop the new datanode and restart it with -Z datanode option > > (without -Z restoremode option). > > 7. Issue CREATE NODE statement at all the coordinators. > > > You seem to do only the step 7. > > > If you're not sure what to do, plase take a look at the function > > add_datanodeMaster() in datanode_cmd.c at contrib/pgxc_ctl directory. > > Of course, the simplest way is to configure your cluster with > > pgxc_ctl. Documentation will be available at > > http://postgres-xc.sourceforge.net/docs/1_1/pgxc-ctl.html > > > Pgxc_ctl also locks the entire cluster while you're adding new node to > > maintain cluster consistent. > > > Good Luck; > > --- > > Koichi Suzuki > > > > 2014-03-02 14:19 GMT+09:00 Lin Wang <lin...@gm...>: > > Hi, > > first I create user1 then use user1 create a node; seceond, I use > > 'set role wln' to return the user of the superuser of cluster; last , I > > want to use 'drop user user1;' to drop the user1, but it shows "Failed to > > get pooled connections". (use postgres-xc1.1). > > the detailed content as below: > > [wln@localhost pgxc]$ psql -d postgres -p 5300 > > psql (9.3beta2, server 9.2.4) > > Type "help" for help. > > > > postgres=# create user user1 with SUPERUSER; > > CREATE ROLE > > postgres=# set role user1; > > SET > > postgres=# create node node100 > > with(type='datanode',host=localhost,port=7809); > > CREATE NODE > > postgres=# set role wln; > > SET > > postgres=# drop user user1; > > DROP ROLE > > postgres=# create user user1 with SUPERUSER; > > CREATE ROLE > > postgres=# set role user1; > > SET > > postgres=# \c postgres > > psql (9.3beta2, server 9.2.4) > > You are now connected to database "postgres" as user "wln". > > postgres=# drop user user1; > > ERROR: Failed to get pooled connections > > postgres=# select oid, * from pgxc_node; > > oid | node_name | node_type | node_port | node_host | > nodeis_primary | > > nodeis_preferred | node_id > > > -------+--------------+-----------+-----------+-----------+----------------+------------------+------------ > > 16384 | datanode1 | D | 5302 | localhost | f > | > > f | 888802358 > > 16385 | datanode2 | D | 5304 | localhost | f > | > > f | -905831925 > > 16386 | coordinator1 | C | 5300 | localhost | f > | > > f | 1938253334 > > 16388 | node100 | D | 7809 | localhost | f > | > > f | 1668042070 > > (4 rows) > > > > log: > > 2014-03-01 06:39:18.543 CST 53111016.6fe0 postgres 28640 psql 0 > 00000DEBUG: > > [re]setting xid = 0, old_value = 0 > > 2014-03-01 06:39:18.545 CST 53110fe1.6fd1 postgres 28625 psql 0 > 00000DEBUG: > > Postmaster child: connection to GTM closed > > 2014-03-01 06:39:25.370 CST 53111016.6fe0 postgres 28640 psql 0 > 00000DEBUG: > > Postmaster child: connection established to GTM with string > host=localhost > > port=5307 node_name=coordinator1 > > 2014-03-01 06:39:25.371 CST 53111016.6fe0 postgres 28640 psql 0 > 00000DEBUG: > > Assigned new transaction ID from GTM = 10014 > > 2014-03-01 06:39:25.371 CST 53111016.6fe0 postgres 28640 psql 10014 > > 00000DEBUG: Getting snapshot. Current XID = 10014 > > 2014-03-01 06:39:25.372 CST 53111016.6fe0 postgres 28640 psql 10014 > > 00000DEBUG: from GTM: xmin = 10014, xmax = 10014, xcnt = 0, RecGlobXmin > = > > 10014 > > 2014-03-01 06:39:25.394 CST 53110fd8.6fac 28588 0 08006LOG: failed to > > connect to Datanode > > 2014-03-01 06:39:25.394 CST 53110fd8.6fac 28588 0 01000WARNING: can > not > > connect to node 16388 > > 2014-03-01 06:39:25.394 CST 53111016.6fe0 postgres 28640 psql 10014 > > 53000LOG: failed to acquire connections > > 2014-03-01 06:39:25.394 CST 53111016.6fe0 postgres 28640 psql 10014 > > 53000STATEMENT: drop user user1; > > 2014-03-01 06:39:25.394 CST 53111016.6fe0 postgres 28640 psql 10014 > > 53000ERROR: Failed to get pooled connections > > 2014-03-01 06:39:25.394 CST 53111016.6fe0 postgres 28640 psql 10014 > > 53000STATEMENT: drop user user1; > > 2014-03-01 06:39:25.394 CST 53111016.6fe0 postgres 28640 psql 10014 > > 00000DEBUG: Record transaction abort 10014 > > 2014-03-01 06:39:25.395 CST 53111016.6fe0 postgres 28640 psql 10014 > > 00000DEBUG: [re]setting xid = 0, old_value = 0 > > 2014-03-01 06:40:16.315 CST 53110fd8.6fba 28602 0 00000DEBUG: > Autovacuum > > launcher: connection established to GTM with string host=localhost > port=5307 > > node_name=coordinator1 > > > > > > Thanks > > waln > > > > > ------------------------------------------------------------------------------ > > Flow-based real-time traffic analytics software. Cisco certified tool. > > Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer > > Customize your own dashboards, set traffic alerts and generate reports. > > Network behavioral analysis & security monitoring. All-in-one tool. > > > http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk > > _______________________________________________ > > Postgres-xc-general mailing list > > Pos...@li... > > https://lists.sourceforge.net/lists/listinfo/postgres-xc-general > > |