Greenplum连接segment实例
简介
不能直接连接segment实例,会报错,可以通过如下方法强制登陆:
1 2 3 4 5 | export PGOPTIONS='-c gp_session_role=utility' psql -p 6000 -d postgres -- 或者 PGOPTIONS='-c gp_session_role=utility' psql -p 6000 -d postgres |
直连greenplum segment节点的方法, utility模式 :
使用这种方式,不与其他节点通讯,只操作当前节点。也没有数据分布的概念。
如果使用utility模式连接的是master节点,写入数据时,数据不会分布到segment,使用正常模式连接后,写入master的数据也查不出来。
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | [gpadmin@sdw1 ~]$ psql -p 6000 -d postgres psql: FATAL: connections to primary segments are not allowed DETAIL: This database instance is running as a primary segment in a Greenplum cluster and does not permit direct connections. HINT: To force a connection anyway (dangerous!), use utility mode. [gpadmin@sdw1 ~]$ export PGOPTIONS='-c gp_session_role=utility' [gpadmin@sdw1 ~]$ psql -p 6000 -d postgres psql (9.4.26) Type "help" for help. postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+---------+----------+------------+------------+--------------------- lhrgpdb | gpadmin | UTF8 | en_US.utf8 | en_US.utf8 | postgres | gpadmin | UTF8 | en_US.utf8 | en_US.utf8 | template0 | gpadmin | UTF8 | en_US.utf8 | en_US.utf8 | =c/gpadmin + | | | | | gpadmin=CTc/gpadmin template1 | gpadmin | UTF8 | en_US.utf8 | en_US.utf8 | =c/gpadmin + | | | | | gpadmin=CTc/gpadmin (4 rows) postgres=# padmin@sdw1 ~]$ [gpadmin@sdw1 ~]$ [gpadmin@sdw1 ~]$ PGOPTIONS='-c gp_session_role=utility' psql -p 6000 -d postgres psql (9.4.26) Type "help" for help. postgres=# select * from gp_segment_configuration ; dbid | content | role | preferred_role | mode | status | port | hostname | address | datadir ------+---------+------+----------------+------+--------+------+----------+---------+--------- (0 rows) postgres=# show port; port ------ 6000 (1 row) postgres=# |