Greenplum数据库端口和协议

列出Greenplum集群内使用的网络端口和协议。

Greenplum数据库客户端用TCP在客户端连接端口(默认为5432)上连接到Greenplum的Master实例。这个监听端口可以在 postgresql.conf配置文件中重新配置。客户端连接使用PostgreSQL的libpq API。 psql命令行接口、一些Greenplum工具以及特定语言的编程API也将直接使用libpq库或者在内部实现libpq协议。

每一个Segment实例也有一个客户端连接端口,它被Master实例单独用来与Segment协调数据库操作。在Greenplum的Master上执行的gpstate -p命令,会列出Greenplum的Master以及主Segment和镜像Segment的端口分配。例如:

  1. [gpadmin@mdw ~]$ gpstate -p
  2. 20190403:02:57:04:011030 gpstate:mdw:gpadmin-[INFO]:-Starting gpstate with args: -p
  3. 20190403:02:57:05:011030 gpstate:mdw:gpadmin-[INFO]:-local Greenplum Version: 'postgres (Greenplum Database) 5.17.0 build commit:fc9a9d4cad8dd4037b9bc07bf837c0b958726103'
  4. 20190403:02:57:05:011030 gpstate:mdw:gpadmin-[INFO]:-master Greenplum Version: 'PostgreSQL 8.3.23 (Greenplum Database 5.17.0 build commit:fc9a9d4cad8dd4037b9bc07bf837c0b958726103) on x86_64-pc-linux-gnu, compiled by GCC gcc (GCC) 6.2.0, 64-bit compiled on Feb 13 2019 15:26:34'
  5. 20190403:02:57:05:011030 gpstate:mdw:gpadmin-[INFO]:-Obtaining Segment details from master...
  6. 20190403:02:57:05:011030 gpstate:mdw:gpadmin-[INFO]:--Master segment instance /data/master/gpseg-1 port = 5432
  7. 20190403:02:57:05:011030 gpstate:mdw:gpadmin-[INFO]:--Segment instance port assignments
  8. 20190403:02:57:05:011030 gpstate:mdw:gpadmin-[INFO]:-----------------------------------
  9. 20190403:02:57:05:011030 gpstate:mdw:gpadmin-[INFO]:- Host Datadir Port
  10. 20190403:02:57:05:011030 gpstate:mdw:gpadmin-[INFO]:- sdw1 /data/primary/gpseg0 20000
  11. 20190403:02:57:05:011030 gpstate:mdw:gpadmin-[INFO]:- sdw2 /data/mirror/gpseg0 21000
  12. 20190403:02:57:05:011030 gpstate:mdw:gpadmin-[INFO]:- sdw1 /data/primary/gpseg1 20001
  13. 20190403:02:57:05:011030 gpstate:mdw:gpadmin-[INFO]:- sdw2 /data/mirror/gpseg1 21001
  14. 20190403:02:57:05:011030 gpstate:mdw:gpadmin-[INFO]:- sdw1 /data/primary/gpseg2 20002
  15. 20190403:02:57:05:011030 gpstate:mdw:gpadmin-[INFO]:- sdw2 /data/mirror/gpseg2 21002
  16. 20190403:02:57:05:011030 gpstate:mdw:gpadmin-[INFO]:- sdw2 /data/primary/gpseg3 20000
  17. 20190403:02:57:05:011030 gpstate:mdw:gpadmin-[INFO]:- sdw3 /data/mirror/gpseg3 21000
  18. 20190403:02:57:05:011030 gpstate:mdw:gpadmin-[INFO]:- sdw2 /data/primary/gpseg4 20001
  19. 20190403:02:57:05:011030 gpstate:mdw:gpadmin-[INFO]:- sdw3 /data/mirror/gpseg4 21001
  20. 20190403:02:57:05:011030 gpstate:mdw:gpadmin-[INFO]:- sdw2 /data/primary/gpseg5 20002
  21. 20190403:02:57:05:011030 gpstate:mdw:gpadmin-[INFO]:- sdw3 /data/mirror/gpseg5 21002
  22. 20190403:02:57:05:011030 gpstate:mdw:gpadmin-[INFO]:- sdw3 /data/primary/gpseg6 20000
  23. 20190403:02:57:05:011030 gpstate:mdw:gpadmin-[INFO]:- sdw1 /data/mirror/gpseg6 21000
  24. 20190403:02:57:05:011030 gpstate:mdw:gpadmin-[INFO]:- sdw3 /data/primary/gpseg7 20001
  25. 20190403:02:57:05:011030 gpstate:mdw:gpadmin-[INFO]:- sdw1 /data/mirror/gpseg7 21001
  26. 20190403:02:57:05:011030 gpstate:mdw:gpadmin-[INFO]:- sdw3 /data/primary/gpseg8 20002
  27. 20190403:02:57:05:011030 gpstate:mdw:gpadmin-[INFO]:- sdw1 /data/mirror/gpseg8 21002

诸如后备复制、Segment镜像、统计信息收集以及Segment之间的数据交换等特性也会创建额外的Greenplum数据库网络连接。 数据库启动时会创建一些持久连接而在查询执行之类的操作期间会创建临时连接。用于查询执行处理、数据移动以及统计信息收集的临时连接使用TCP和UDP协议在1025到65535范围内的可用端口。

Note: 为避免在初始化Greenplum数据库时Greenplum数据库与其他应用程序之间的端口冲突,请不要在操作系统参数net.ipv4.ip_local_port_range指定的范围内指定Greenplum数据库端口。 例如,如果 net.ipv4.ip_local_port_range = 10000 65535, 用户可以将Greenplum数据库基本端口号设置为该值以外的 范围:

  1. PORT_BASE = 6000
  2. MIRROR_PORT_BASE = 7000
  3. REPLICATION_PORT_BASE = 8000
  4. MIRROR_REPLICATION_PORT_BASE = 9000

用于Greenplum数据库的某些附加产品和服务有额外的网络需求。下面的表格列出了在Greenplum集群内使用的端口和协议, 并且包括与Greenplum数据库集成的服务和应用。

Table 1. Greenplum数据库端口和协议
服务协议/端口描述
Master的SQL客户端连接TCP 5432, libpqGreenplum的Master主机上的SQL客户端连接端口。使用PostgreSQL的libpq API支持客户端。可配置。
Segment的SQL客户端连接可变,libpqSegment实例的SQL客户端连接端口。主机上的每一个主Segment和镜像Segment都必须有唯一的端口。 端口在Greenplum系统初始化或者扩展时分配。gp_segment_configuration系统目录在port 列中为每个Segment记录端口号。运行gpstate -p可以查看使用中的端口。
Segment镜像端口可变,libpqSegment从其主Segment接收镜像块的端口。该端口在镜像被设置时分配。端口号存储在gp_segment_configuration 系统目录的mirror_port列中。
Greenplum数据库的InterconnectUDP 1025-65535,动态分配在查询执行期间,Interconnect在Greenplum的Segment之间传输数据库元组。
后备Master的客户端监听器TCP 5432, libpq后备Master主机上的SQL客户端连接端口。通常和Master的客户端连接端口相同。可以用gpinitstandby工具的-P选项配置。
后备Master复制器TCP 1025-65535, gpsyncmasterMaster主机上的gpsyncmaster进程会建立一个到第二Master主机的连接来把Master的日志复制到后备Master上。
Greenplum数据库文件装载和传输工具:gpfdist、gpload、gptransferTCP 8080, HTTP

TCP 9000, HTTPS

gpfdist文件服务工具能够在Greenplum主机或者外部主机上运行。在启动该服务器时用-p选项指定连接端口。

gpload和gptransfer工具会用一个配置文件中指定的端口或者端口范围运行一个或者更多gpfdist。

Gpperfmon代理TCP 8888执行在每一台Greenplum主机上的gpperfmon代理(gpmmongpsmon)的连接端口。通过Master和Segment主机上postgresql.conf中的配置变量gpperfmon_port设置。
备份完成通知TCP 25, TCP 587, SMTPgpbackup备份工具可以选择在备份完成时向一个email地址列表发送邮件。SMTP服务必须在Greenplum的Master主机上被启用。
Greenplum数据库的安全shell(SSH):gpssh、gpscp、gpssh-exkeys、gppkg、gpseginstallTCP 22, SSH很多Greenplum的工具使用scp和ssh在主机之间传输文件并且管理集群中的Greenplum系统。
Greenplum平台扩展框架(PXF)TCP 5888PXF Java服务运行在每个Greenplum数据库segment主机上的5888端口。
Pgbouncer连接池TCP, libpqpgbouncer连接池运行在libpq客户端和Greenplum(或者PostgreSQL)数据库之间。它可以运行在Greenplum的Master主机上,但推荐将它运行在Greenplum集群之外的一台主机上。当它运行在一台单独的主机上时,pgbouncer可以当作Greenplum的Master主机的温备机制,切换到Greenplum后备主机不要求重新配置客户端。在pgbouncer.ini配置文件中设置客户端连接端口和Greenplum的Master主机地址。

Parent topic: 安全性配置指南