本章主要介绍可用于连接到Greenplum的数据库,以及如何建立一个数据库会话的各种客户端工具。
用户可使用PostgreSQL的兼容的客户端程序,比如psql的连接到Greenplum数据库。用户和管理员始终连接到通过主节点来连接到Greenplum数据库;段无法接受的客户端连接。
为了建立与Greenplum的数据库主节点的连接,你需要知道以下连接信息,并相应地配置您的客户端程序。
Table 6: Connection Parameters
Connection Parameter |
Description |
Environment Variable |
Application name |
是连接到数据库的应用程序名称。默认值,在应用程序名称连接参数举行的PSQL。 |
$PGAPPNAME |
Database name |
你要连接的数据库的名称。对于一个新初始化系统,请使用模板数据库连接的第一次。 |
$PGDATABASE |
Host name |
Greenplum数据库的主节点,默认的主机是localhost |
$PGHOST |
Port |
该数据库Greenplum的主实例上运行的端口号。默认值是5432。 |
$PGPORT |
User name |
数据库用户(角色)的名称进行联接。这不一定是操作系统的用户名。如果你不知道你的数据库的用户名是什么,请联系您的Greenplum管理员。需要注意的是每一个Greenplum数据系统中有一个在初始化时自动创建了一个超级用户帐户。该帐户具有相同的名称谁初始化Greenplum的系统(通常gpadmin)的用户的操作系统名称。 |
$PGUSER |
Connecting with psql provides example commands for connecting to Greenplum Database.
用户可以使用各种客户端应用程序连接到Greenplum数据库:
• 当你安装Greenplum数据库时,已提供很多数据库连接工具。该PSQL客户端应用程序提供了一个交互式的命令行界面Greenplum数据。
• pgAdmin III. 从1.10.0版本,可以用pgAdmin III来连接GPDB和Postgresql。具体可以从官网下载 pgAdmindownload site .
• 使用标准的数据库应用程序接口,如ODBC和JDBC,用户可以创建自己的客户端应用程序接口Greenplum数据。因为Greenplum数据引擎是基于PostgreSQL的,它采用标准的PostgreSQL数据库驱动程序。
• 使用标准的数据库接口,如ODBC和JDBC大多数第三方客户端工具,可以配置为连接到Greenplum数据。
reenplum的数据库自带安装了一些位于您的Greenplum数据主控主机安装的$GPHOME/bin目录中的客户端实用应用程序。下面是最常用的客户实用程序的应用:
Table 7: Commonly used client applications
Name |
Usage |
createdb |
创建新的数据库 |
createlang |
define a new procedural language |
createuser |
定义一个新的数据库角色 |
dropdb |
删除数据库 |
droplang |
删除过程语言 |
dropuser |
删除角色 |
psql |
PostgreSQL interactive terminal |
reindexdb |
reindex a database |
vacuumdb |
garbage-collect and analyze a database |
当使用这些客户端应用程序,您必须连接到通过Greenplum的主实例数据库。你需要知道你的目标数据库,主机名和主端口号的名称,并作为连接哪个数据库的用户名。可以在命令行选项中进行设置,分别是-d,-h,-p和-U。如果一个参数被发现不属于任何选项,将首先解释成数据库名。
所有这些选项有如果未指定选项,这将使用默认值。缺省主机是本地主机。默认的端口号为5432的默认用户名是你的OS系统的用户名,因为是默认的数据库名称。注意,操作系统的用户名和Greenplum数据的用户名不必是相同的。
如果默认值不正确,可以将环境变量PGDATABASE,PGHOST,PGPORT和PGUSER设置为适当的值,或使用PSQL ~/.pgpass文件包含常用的密码。
有关Greenplum的数据库环境变量的信息,请参阅Greenplum数据参考指南。有关PSQL信息,请参阅Greenplum的数据库实用程序指南。
根据所使用的默认值,或者您已设置环境变量,下面的例子说明如何通过PSQL访问数据库:
$ psql -d gpdatabase -h master_host -p 5432 -Ugpadmin
$ psql gpdatabase $ psql
如果用户定义的数据库还未被创建的,则可以通过连接到template1数据库访问系统。 例如:
$ psql template1
连接到数据库后,psql提供一个提示以向其中的psql当前连接的数据库的名称,后面跟着字符串 => (or =# 管理员). 例如:
gpdatabase=>
在提示符下,您可以键入SQL命令。 SQL命令必须以结束; (分号),以便被发送到服务器,并执行。 例如:
=> SELECT * FROM mytable;
参看Greenplum的参考指南有关使用PSQL客户端应用程序和SQL命令和语法的信息。
如果你喜欢图形界面,可以使用pgAdmin III。这个图形客户端支持所有的标准的pgAdmin III功能PostgreSQL数据库,同时加入特定的Greenplum的功能支持。
pgAdmin III对Greenplum数据引擎支持以下具体Greenplum的特性:
• 外部表(External tables)
• 追加优化表(Append-optimized tables),包括压缩追加优化表 including compressed append-optimized tables
• 表分区Table partitioning
• 资源队列Resource queues
• 图形化的explain analyze Graphical explain analyze
• GPSever的参数配置Greenplumserver configuration parameters
Figure 5: Greenplum Options in pgAdmin III
安装包可以从pgAdminlll的官方网站(http://www.pgadmin.org)下载。安装包中包含安装说明。其实和普通的Windows安装文件一样,就是诸多的Next和选 择安装位置等。
普通的帮助信息可以在Help>Help contents菜单中查看。
关于GP方面的SQL帮助,可以点击Help>Greenplum Database Help菜单查看,在联网状态下,将会自动跳转到Greenplum SQL参考文档另外还可以安装 GP客户端工具包,其包含了 pgAdminIII连接的参考文档。 使用pgAdminIII执行管理操作。
该节介绍诸多GPDB管理操作中的两个重要部分:编辑服务器配置,图形化查看查询计划。
pgAdminIII提供了两种修改Server配置文件postgresql.conf的方式:本地,通过File菜单,远程,通过Tools菜单。修改远程参数的方便之处在于不需要将postgresql.conf文件再上传到Server端。
1. 连接到需要修改的Server。如果你连接了多个Sever,需要确认在左侧对象浏览区高亮的server是你确实需要修改的。
2. 选择 Tools>Server Configuration>postgresql.conf菜单。配置信息将会以列表的形式打开。
3. 双击需要修改的参数打开一个参数设置对话框。
4. 输入新的参数值或者[选择/取消]Enable。修改好之后点击OK按钮。
5. 如果修改的参数可以通过重新加载配置的方式生效,点击绿色的重载 按钮即可。有些参数修改是需要GP完全重新启动才生效。
使用pgAdminIII工具,可以通过执行EXPLAIN命令查看查询计划。输出内 容包括GP的分布式查询处理如计划分割和Instance之间数据移动。还可以 查看图形化的查询计划。
1. 在正确的数据库连接下,选择Tools>Query Tools。
2. 使用SQL编辑器输入查询语句,还可以通过图形化对象编辑器或者打 开一个SQL文件的方式。
3. 选择Query >Explain Option确认下面的选项:
• Verbose-如果想查看图形化的查询计划,需要取消该选项
• Analyze-如果你想在查看查询计划时就直接执行查询语句的话可以选择该选项
点击查询面板上端的查询计划按钮,或者选择Query>Explain。 查询计划在屏幕的底部展现。比如:
Figure 6: Graphical Query Plan in pgAdmin III
该PgBouncer程序管理连接池的PostgreSQL和Greenplum的数据库连接。
在Greenplum数据引擎安装包括PgBouncer连接池软件。下面的主题介绍了如何设置和使用PgBouncer与Greenplum数据引擎。见PgBouncer网站了解有关使用PgBouncer PostgreSQL的信息。
• Overview
• Configuring and Starting PgBouncer
• Managing PgBouncer
• Setting up LDAP Authentication with PgBouncer
• Securing PgBouncer Connections with stunnel
Also, see reference information for PgBouncer inthe GreenplumDatabase Utility Guide.
数据库连接池是数据库连接的缓存。一旦连接池的建立,连接池消除了创建数据库连接的开销,所以客户端连接速度更快,服务器的负载降低。
来自PostgreSQL社区的PgBouncer的连接池也支撑Greeenplum。 PgBouncer可以管理多个数据库连接池,数据库可能在不同的Greenplum数据库集群或PostgreSQL后端。 PgBouncer为每个数据库用户和数据库组合创建了一个缓冲池。一个缓冲池只能用户同一个数据库和用户的另外一个数据库连接请求。
客户端应用程序无需任何软件上的更改,但连接是连到了这个缓冲池的主机和端口,而不是Greenplum的数据库主主机和端口。 PgBouncer无论是创建一个新的数据库连接或重用现有的连接。当客户端断开,连接返回到池中重新使用。
PgBouncer支持标准的连接接口,PostgreSQL和Greenplum的数据库共享。客户端请求的数据库连接提供主机名和PgBouncer运行端口,以及数据库名,用户名和密码。 PgBouncer寻找请求数据库(其可以是用于实际数据库的别名)在它的配置文件以查找的主机名,端口和用于数据库连接的数据库的名称。配置文件条目还确定如何向用户和什么数据库角色将被用于连接一个“强迫用户”可以覆盖设置有客户端的连接请求的用户名进行验证。
PgBouncer需要验证文件,它包含用户和密码的列表的文本文件。
密码可以是明文,MD5编码,或LDAP / AD查询字符串。您还可以设置PgBouncer来查询不在认证文件用户的目标数据库。
PgBouncer支持如下三种模式之一的连接:
PgBouncer shares connections in one of three poolmodes:
• 会话池 - 当客户端连接,连接的,只要它保持连接分配给它。当客户端断开,连接放回池中。
• 事务池 - 连接分配给客户端进行交易的持续时间。在PgBouncer注意到该交易完成后,连接放回池中。这个模式只能与不使用取决于会话功能的应用程序被使用。
• 语句池 - 语句池就像是交易池,但多语句事务是不允许的。这种模式是为了强制客户端自动提交模式,是针对PL /代理服务器上的PostgreSQL。
默认池模式可以为PgBouncer实例设置和模式可以覆盖各个数据库和用户。
通过连接到虚拟pgbouncer数据库中,可以监视和SQL-使用像命令来管理PgBouncer。配置参数可以在无需重启PgBouncer被改变,和配置文件可以被重新加载到拾取变化。
PgBouncer还不支持SSL连接。如果要加密客户端和PgBouncer之间的流量,你可以使用安全通道,创建使用的OpenSSL加密库TLS加密隧道一个免费的软件工具。
SeeSecuring PgBouncerConnections with tunnel fordirections.
PgBouncer可以在Greenplum数据引擎主机或另一台服务器上运行。如果你在单独的服务器上安装PgBouncer,你可以很容易地通过客户端更新PgBouncer配置文件并重新加载使用PgBouncer管理控制台配置切换到备用主。
按照以下步骤设置PgBouncer。
1. 创建一个PgBouncer配置文件,例如pgbouncer.ini。下面是一个简单的配置文件:
[databases]
templatel = host=127.0.0.1 port=5432 dbname=template1mydb = host=127.0.0.1 port=5432 dbname=mydb
[pgbouncer]
pool_mode = session
listen_port = 6543
listen_addr = 127.0.0.1
auth_type = md5
auth_file = users.txt
logfile = pgbouncer.log
pidfile = pgbouncer.pid
admin_users = gpadmin
该文件是在.ini文件格式,并有三个部分:数据库,pgbouncer和用户。数据库部分列出其连接的详细信息的数据库。在pgbouncer部分配置PgBouncer实例。
2. 创建一个认证文件。该文件的名称必须在本实施例中的pgbouncer.ini文件auth_file参数,users.txt匹配。各行包含一个用户名和密码。密码字符串的格式的PgBouncer配置文件中的AUTH_TYPE参数相匹配。如果AUTH_TYPE参数是平原,密码字符串是明文密码,例如:
"gpadmin" "gpadmin1234"
在下面的例子中AUTH_TYPE是MD5,所以认证字段必须为MD5编码。一个MD5编码的密码的格式为:
"md5" + MD5{
您可以使用Linux md5sum命令来计算MD5字符串。例如,如果gpadmin密码admin1234以下命令打印的密码字段中的字符串:
$ user=gpadmin; passw=admin1234; echo -n md5; echo $passwd$user | md5sum
md53ce96652dedd8226c498e09ae2d26220
这里是在PgBouncer认证文件管理用户的MD5编码的条目:
"gpadmin""md53ce96652dedd8226c498e09ae2d26220"
要验证针对LDAP或Active Directory服务器的用户,密码字段包含一个LDAP查询字符串。 例如:
"gpdbuserl""ldap://10.0.0.11:10389/uid=gpdbuser1,ou=users,ou=system"
对于Active Directory,用户条目看起来像这样的例子:
"gpdbuser2" "ldap://10.0.0.12:389/gpdbuser2"
看到PgBouncer设置LDAP身份验证的步骤配置PgBouncer与LDAP服务器对用户进行认证。
有关认证文件的详细信息,请参阅Greenplum的数据库实用程序指南PgBouncer参照的“身份验证文件格式”一节。.
3. 启动 pgbouncer:
$ $GPHOME/bin/pgbouncer -d pgbouncer.ini
The -d or --daemon option runs PgBouncer as abackground process. See the PgBouncer reference in the Greenplum Database Utility Guide for the pgbouncer command syntax and its options.
4. 更新客户端应用程序直接连接到pgbouncer,而不是到Greenplum的数据库服务器。
To start psql, 例如:
$ psql -p 6543 -U someusertemplate1
当一个连接被返回到池中,它必须复位到一个新创建的连接的状态。 PgBouncer通过返回到池中的连接之前发出的查询实现这一目的。 PostgreSQL 8.3版本及更高版本丢弃为此ALL命令,这是标准PgBouncer分配默认的复位查询。Greenplum的数据库不支持放弃所有,如果用它记录错误。
复位查询可以通过设置PgBouncer配置文件中的server_reset_query参数指定。对于会话池模式的Greenplum数据库PgBouncer的server_reset_query参数可以设置为这个查询:
重置全部; SET SESSION AUTHORIZATION DEFAULT
这是pgbouncer,而修改后的版本默认的服务器复位查询包括Greenplum数据4.7.0及更高版本。尽管默认从PgBouncer不同,它有助于确保连接池是透明的Greenplum数据用户和客户端应用不必被修改为使用连接池。
有关server_reset_query参数和PgBouncer配置文件的详细信息,请参阅Greenplum的数据库实用程序指南PgBouncer参考。
PgBouncer具有管理控制台,其由登录到pgbouncer虚拟数据库访问。控制台接受类似于SQL的命令,使您监控,重新配置和管理PgBouncer。
按照以下步骤开始使用PgBouncer管理控制台。
Follow these steps to get started with thePgBouncer administrative console.
1. 用psql登录到pgbouncer虚拟数据库:
$ psql -p 6543 -U usernamepgbouncer
用户名必须在pgbouncer.ini配置文件中的管理员用户参数进行设置。您也可以与当前Unix的用户名,如果pgbouncer过程中与该用户的UID运行登录
2. 要查看可用的命令,运行show help命令:
pgbouncer=# show help;
DETAIL:
SHOWHELP|CONFIG|DATABASES|POOLS|CLIENTS|SERVERS|VERSION
SHOW STATS|FDS|SOCKETS|ACTIVE_SOCKETS|LISTS|MEM
SHOW DNS_HOSTS|DNS_ZONES
SET key = arg
RELOAD
PAUSE [
RESUME [
DISABLE
ENABLE
KILL
SUSPEND
SHUTDOWN
3. 如果你更改了pgbouncer.ini, 你可以使用reload 命令来重新加载:
pgbouncer=# RELOAD;
将客户端映射到服务器的连接,使用客户展示和SHOW SERVERS访问量:
1.使用PTR,并链接到映射本地客户端连接到服务器的连接。
2.使用addr和客户端连接的端口,以确定来自客户机的TCP连接。
3.使用LOCAL_ADDR和LOCAL_PORT识别TCP连接到服务器。
对于所有的管理控制台命令的完整文档,请参见Greenplum数据手册中的PgBouncer参考的“PgBouncer管理控制台命令”一节。
To map clients to server connections, use the show clients and show serversviews:
1. Use ptr and link to map the local client connectionto the server connection.
2. Use addr and port of the client connection toidentify the TCP connection from the client.
3. Use local_addr and local_port to identify the TCPconnection to the server.
For complete documentation for all of theadministration console commands, see the "PgBouncer Administration ConsoleCommands" section of the PgBouncer reference in the Greenplum Database Guide.
你可以在不中断现有连接的基础上升级PgBouncer。直接使用–R参数和同样的配置来启用新的PgBouncer进程。
$ pgbouncer-d-R config.ini中
该-R(重新启动)选项导致新的过程中,通过一个Unix套接字连接到旧进程的控制台并发出以下命令:
SUSPEND;
SHOW FDS;
SHUTDOWN;
当新的进程发现旧进程已经完成,就继续使用旧的连接来继续工作。之所以能这样,是因为SHOW FDS命令发送实际文件描述符到新的过程。如果因某种原因使得这个转换失败了,就kill掉新的进程,旧的进程继续工作。
您可以使用PgBouncer连接池的时候使用LDAP或Active Directory服务验证Greenplum数据引擎的用户。当你有LDAP身份验证的工作,你可以通过设置安全通道固定PgBouncer客户端连接,如保护PgBouncer连接与安全通道描述。as described inSecuring PgBouncerConnectionswith stunnel.
在开始之前,你必须有一个LDAP或Active Directory服务器和Greenplum的数据库集群。
1.在LDAP / AD服务器,创建Greenplum的数据库用户,例如gpdbuser1和gpdbuser2。
2.在Greenplum数据库中创建相应的用户:
createusergpdbuser1 createuser gpdbuser2
3.将用户添加到Greenplum数据pg_hba.conf文件:
host all gpdbuserl 0.0.0.0/0 trust
host all gpdbuser2 0.0.0.0/0 trust
4. 创建一个包含如下信息的PgBouncer config.ini 文件:
[databases]
* =host=GPDB_host_addr port=GPDB_port
[pgbouncer]
listen_port =6432
listen_addr =0.0.0.0
auth_type = plain
auth_file =users.txt
logfile =pgbouncer.log
pidfile =pgbouncer.pid
ignore_startup_parameters=options
5. 创建users.txt PgBouncer认证文件。第一个字段是用户名,第二个是用户的LDAP或Active Directory查找的字符串。对于OpenLDAP或ApacheDS中,例如,在users.txt用户条目看起来像这样:
"gpdbuser1""ldap://10.0.0.11:10389/uid=gpdbuser1,ou=users,ou=system"
对于Active Directory,一个用户的条目样式如下:
"gpdbuserl""ldap://10.0.0.12:389/gpdbuser1"
6. Start PgBouncer with the config.ini file youcreated:
$ pgbouncer -d config.ini
PgBouncer不具有SSL支持,所以数据库客户端和PgBouncer之间的连接未加密。要加密这些连接,您可以使用 stunne/,一个免费的软件工具。安全通道是使用OpenSSL加密库到TLS加密添加到网络服务的代理。安全通道的较新版本支持PostgreSQL的libpq的协议,所以Greenplum的和PostgreSQL客户端可以使用libpq的SSL支持通过网络安全地连接到设置为PgBouncer代理一个安全通道实例。如果您使用的版本安全通道无libpq的支持,需要建立一个安全通道实例的客户端和PgBouncer主机上都建立在网络安全隧道。
在大多数平台上,可以安装使用系统包管理器安全通道。对于Windows,你可以从https://stunne/.org下载安装程序,如果安装程序不可用,或者你想升级到新的版本,或者你想升级到一个新的OpenSSL版本,你可以可以从下载源码包进行安装。下一节中的步骤可以下载,编译和安装OpenSSL和安全通道。
有关完整的安全通道文档,请访问安全通道文档网站。
stunnel 需要OpenSSL development版本大于1.0. 下面说明如何在Red hat 或Centos下载并构建OpenSSL 和 stunnel。一定要到网站https://stunne/.org 和http://openssl.org 来获取最新版本.
1. 设置prefix环境变量到一个你想安装stunnel的目录,例如/usr/local/stunnel 或 /home/gpadmin/stunnel。如果你要安装stunnel到一个系统目录,则你需要root权限。
export PREFIX=/path/to/install_stunnel
2. The following commands download, build, and install OpenSSL version 1.0.2c:
wget ftp://ftp.openssl.Org/source/openssl-1.0.2c.tar.gz
tar xzf openssl-1.0.2c.tar.gz
cd openssl-1.0.2c
./Configure linux-x86_64 --prefix=$PREFIX shared no-asm
make
make install_sw
cd ..
3. Download, build, and install stunnel with the following commands:
wget --no-check-certificate https://www.stunnel.org/downloads/stunnel-5.22.tar.gz
tar xzf stunnel-5.22.tar.gz
cd stunnel-5.22
LDFLAGS="-Wl,-rpath,'"'$$'"ORIGIN/../lib'"
./configure --prefix=$PREFIX --with-ssl=$PREFIX
make
make install
设置一个安全通道实例作为PgBouncer代理。该安全通道实例接受来自数据库客户端自身的端口上的安全连接,解密文发送到PgBouncer实例在同一主机上(或在受保护的本地网络中其他主机上)。 PgBouncer结果,包括从由PgBouncer托管连接数据库的结果,被加密并返回通过网络向客户端。
1. 在运行PgBouncer服务器,创建安全通道的配置文件目录, 例如 /home/gpadmin/stunnel.
2. 创建一个证书和密钥文件以用于认证。您也可以使用现有的证书和密钥,或创建新的对与以下OpenSSL的命令: $openssl req -new -x509 -days 3650 -nodes -out stunnel.pem -keyout stunnel.key
Movethe stunnel.keyand stunnel.pem files into your stunnelconfiguration directory.
3. 创建一个stunnel 配置文件, 例如stunnel.conf,包含如下内容:
debug= info
socket= l:TCP_NODELAY=1
socket= r:TCP_NODELAY=1
debug= 7
cert =/PATH/TO/stunnel.pem
key =/PATH/TO/stunnel.key
[pg-server]
client=no
accept= 0.0.0.0:5433 # This is the SSL listening port
connect= PGHOST:PGPORT # This is the PgBouncer listen port
protocol = pgsql
See the stunnel conUguration file referencefor additional configuration options.
4. Run stunnel on the server:
stunnel /path/to/stunnel-srv.conf
5. 在客户端,通过host和对应的端口连接到stunnel。例如:
psql -h pgbouncer-host -p stunnel-accept-port database-name
若需要开发针对GPDB的应用程序,PostgreSQL提供的一些通用的API同样可以 应用在GPDB上。这些驱动包并没有与GPDB—起发布,而是一些独立的 PostgreSQL项目,需要单独下载和安装配置从而连接GPDB。下面这些驱动可以获取::
Table 8: Greenplum Database Interfaces
API |
PostgreSQL Driver |
Download Link |
ODBC |
pgodbc |
在GPDB的Connectivity包中有。可以在 EMC下载中心下载。没有EMC的 Powerlink账号等于没用。 |
JDBC |
pgjdbc |
在GPDB的Connectivity包中有。可以在 EMC下载中心下载。没有EMC的 Powerlink账号等于没用。 |
Perl DBI |
pgperl |
http://gborg.postgresql.org/project/pgperl |
Python DBI |
pygresql |
http://www.pygresql.org |
使用通用API来访问GPDB的说明:
1. 下载相应的语言平台和对应的API。比如下载JDK和JDBC。
2. 编写相应的程序连接GPDB。需要注意SQL的语法支持问题。
下载合适的PostgreSQL驱动并配置到GPDB Master Instance的连接。GP提供了 一个客户端包,其包含了支持的GPDB驱动。可以在EMC下载中心下载。没有 EMC的Powerlink账号等于没用。
See the Greenplum DatabaseReference Guide for more information.
Download the appropriate PostgreSQL driver andconfigure connectivity to your Greenplum Database master instance. GreenplumDatabase provides a client tools package that contains the supported databasedrivers for Greenplum Database. Download the client tools package from Pivotal Network and documentation from Pivotal Documentation.
很多第三方的ETL和BI工具使用标准的API如ODBC、JDBC,都可以通过配置 连接到GPDB。下面这些工具经过用户证实可以很好的协同GP—同工作:
• Business Objects
• Microstrategy
• Informatica Power Center
• Microsoft SQL Server Integration Services (SSIS) and Reporting Services (SSRS)
• Ascential Datastage
• SAS
• Cognos
GP专业服务可以协助用户配置他们选定的第三方工具协同GP工作。
Problem |
Solution |
No pg hba.conf entry for host or user |
为了让Greenplum数据引擎接受远程客户端连接,必须使连接从客户端的主机和数据库用户将被连接到Greenplum数据引擎允许配置Greenplum数据主实例。这是通过添加相应的条目到的pg_hba.conf配置文件(位于主实例的数据目录)来完成。有关详细信息,请参阅允许连接到Greenplum数据。 |
Greenplum Database is not running |
如果Greenplum数据引擎主实例关闭,用户将无法进行连接。您可以验证Greenplum的数据库系统是通过运行在Greenplum的主控主机上的gpstate工具。 |
Network problems Interconnect timeouts |
如果用户从远程客户端连接到主Greenplum的主机,网络问题可能阻止连接(例如,DNS主机名解析问题,主机系统已关闭,等等)。为了确保网络的问题都没有的原因,连接到从远程客户端主机的Greenplum的主控主机。例如:ping主机名。 |
|
如果系统无法解析参与Greenplum数据引擎,查询和连接将失败的主机的主机名和IP地址。对于某些操作,对Greenplum的数据库主使用locaihost连接和其他人使用实际的主机名,所以你必须能够解决两者。如果你遇到这样的错误,首先要确保您可以连接到每台主机在Greenplum数据阵列从主主机在网络上。在主站和各阶层的/ etc / hosts文件,请确保您有涉及的Greenplum数据阵列中的所有主机的正确的主机名和IP地址。该127.0.0.1 IP必须解析为本地主机。 |
Too many clients already |
缺省情况下,GPDB设置Master最大连接数是250,Segment为750。超过这个限制的请求会被拒绝。该限制是有postgresql.conf文件中的max_connections参数配置的。若修改Master上的该参数,还必须修改Segment上该参数为合适的值。 |