GreenPlum中的一些管理工具

2023-11-24 15:06:13 浏览数 (2)

1.analyzedb

一个提供对表的递增和并发ANALYZE操作的工具。对追加优化表来说, analyzedb只在统计数据不是最新的时候才更新统计信息。

analyzedb工具递增并发地更新Greenplum数据库中指定表的表数据的统计信息。

在执行ANALYZE操作时,analyzedb创建了表元数据的快照并将它 存储在Master主机的磁盘上。只有在表格被修改的情况下才执行ANALYZE操作。如果 表或者分区自从上次分区依赖没有被修改过,则analyzedb会自动跳过表或分区, 因为它已经包含了最新的统计信息。

  • 对追加优化表来说,analyzedb如果统计数据数据不是最新的,则会逐渐分析统计数据。 例如,如果表数据在表的统计数据收集之后改变了。如果没有该表的统计数据,则收集统计数据。
  • 对于堆表,统计信息总是被更新。

即使表格统计信息是新的,也可以指定–full选项来更新追加优化表的统计信息。

默认情况下,analyzedb最多创建5个并发会话来并行分析表。 对于每个会话,analyzedb发出一个ANALYZE命令到 数据库并指定不同的表名。-p选项控制最大并发会话数。 分区追加优化表

对于一个分区的追加优化表analyzedb检查分区表的根分区和叶子分区。 如果需要,该工具将更新非当前分区和根分区的统计信息。

GPORCA需要根分区统计信息。默认情况下,如果统计信息不存在,那么analyzedb 工具将收集分区表的根分区的统计信息。如果任何叶子节点有陈旧的统计信息,那么,analyzedb 也会刷新根分区的统计信息。刷新根节点的统计信息的成本和分析一个叶子分区相当。用户可以指定 –skip_root_stats来禁用分区表的根分区的统计信息的收集。

2.gpactivatestandby

激活备机并使其成为Greenplum数据库系统的活动主机。

gpactivatestandby工具激活了一台备份主机上的后备Master实例, 并将其作为Greenplum数据库系统的活动Master实例运行。被激活的后备Master节点有效 地成为Greenplum数据库的Master来接受端口上的客户端连接。

在初始化后备Master时,默认情况下使用与活动Master相同的端口。有关后备Master端口的信息, 请参考gpinitstandby。

用户必须从正在激活的Master主机上运行此工具,而不是在被停用的故障Master主机上运行。 运行此工具时候假设用户为系统配置了一台后备Master主机。 (参见gpinitstandby)。

该工具执行以下步骤:

  • 停止后备Master上的同步进程 (walreceiver)
  • 使用日志更新后备Master的系统目录表
  • 激活后备Master成为系统中新的活动Master
  • 重启带有新Master主机的Greenplum数据库系统

在Greenplum的主Master主机变得不可操作时,备份的后备Master主机充当“温备份”的角色。 后备Master通过事务日志复制进程(walsender和walreceiver) 保持最新状态,这两个进程一个运行在主Master,一个运行在后备Master,并使得主Master和 后备Master之间保持数据同步。

如果主Master出现故障,日志复制进程将关闭,后备Master可以通过使用gpactivatestandby 工具在其位置激活。一旦后备Master激活,复制的日志将用于重建最后一次成功提交事务之后 Greenplum中Master主机的状态。

为了使用gpactivatestandby来激活一个新的主Master主机,之前充当主Master的Master主机 则不能再运行。该工具会检查已被禁用的Master主机的数据目录中的postmaster.pid文件,如果发现该文件, 则会假定旧的Master机仍处于活动状态。在某些情况下,在运行gpactivatestandby(例如, 如果被禁用的Master主机进程被意外终止)之前,用户可能需要从被禁用的Master主机的数据目录中删除 postmaster.pid。

激活后备Master之后,运行ANALYZE来更新数据库查询统计信息。例如:

代码语言:javascript复制
psql dbname -c 'ANALYZE;'

将后备的Master激活成为主Master之后,该Greenplum数据库系统将不再配置有后备Master。用户可能想要用 gpinitstandby工具指定另外一台主机作为新的后备。

3.gpaddmirrors

将镜像Segment添加到最初没有配置镜像的Greenplum数据库系统。

gpaddmirrors工具为初始仅配置了主Segment实例的现有Greenplum数据库系统配置镜像 Segment实例。该工具创建镜像实例并开始主Segment实例和镜像Segment实例之间的在线复制进程。一旦所有 的镜像与其主Segment同步好,用户的Greenplum数据库系统就建立了完全的数据冗余。 Important: 在在线复制进程中,Greenplum数据库应处于静止状态,负载和其他查询不应该运行。

默认情况下,该工具将提示用户输入将创建镜像Segment数据目录的文件系统位置。如果用户不想被提示, 可以使用-m选项传递包含文件系统位置的文件。

镜像位置和端口必须与用户的主Segment数据位置和端口不同。如果用户创建了额外的文件空间,则还将提示用户 为每个文件空间提供镜像位置。

该工具使用预定义的命名习惯在指定位置中为每个镜像Segment实例创建唯一的数据目录。必须为镜像Segment 实例声明与主Segment实例相同数量的文件系统位置。如果用户希望在同一位置创建镜像数据目录,可以多次 指定同样的目录名称,或者可以为每个镜像输入不同的数据位置。对于文件系统位置,请输入绝对路径。例如:

代码语言:javascript复制
Enter mirror segment data directory location 1 of 2 > /gpdb/mirror
                Enter mirror segment data directory location 2 of 2 > /gpdb/mirror

或

Enter mirror segment data directory location 1 of 2 > /gpdb/m1
                Enter mirror segment data directory location 2 of 2 > /gpdb/m2

还有,用户可以运行gpaddmirrors工具,并使用-i选项提供详细的 配置文件。如果用户希望镜像Segment位于完全不同于主Segment的主机集合上,这非常有用。镜像配置文件的 格式是:

代码语言:javascript复制
mirror<row_id>=<contentID>:<address>:<port>:<data_dir>

此处row_id是文件中的行号,contentID是segment实例的content_id, address是segment所在的主机名或IP地址,port是交互端口, data_dir是segment实例数据目录。 例如:

代码语言:javascript复制
mirror0=0:sdw1-1:60000:/gpdata/mir1/gp0
                    mirror1=1:sdw1-1:60001:/gpdata/mir2/gp1

gp_segment_configuration系统目录表可以帮助用户确定当前的主Segment配置, 以便用户可以规划镜像Segment配置。例如,运行以下的查询:

代码语言:javascript复制
=# SELECT dbid, content, address as host_address, port, datadir 
                   FROM gp_segment_configuration
                   ORDER BY dbid;

如果在后补的镜像主机上创建镜像,则新的镜像Segment主机必须预先安装Greenplum数据库软件,并且被配置为 与现有的主Segment主机完全相同。

用户必须确保运行gpaddmirrors的用户(gpadmin用户)有权在指定 的数据目录位置写入。用户可能想要在Segment主机上创建这些目录并且在运行gpaddmirrors 之前将这些目录的拥有者改为(chown)适当的用户。 Note: 该工具在系统内部采用SSH连接执行各项操作任务。在大型Greenplum集群、云部署或每台主机部署了大量的 segment实例时,可能会遇到超过主机最大授权连接数限制的情况。此时需要考虑更新SSH配置参数MaxStartups 以提高该限制。

4.gpbackup

创建一个可以给gprestore工具使用的Greenplum数据库备份。 gpbackup工具用来备份数据库的内容到元数据文件集合和数据文件集合,这些文件可以被 gprestore工具用来恢复数据库。当备份数据库时,可以通过指定表级别和模式级别选项来 备份某些特定的表。例如,可以通过组合模式级别和表级别选项来备份模式下的所有表,并排除某一张单独的表。

默认情况下,gpbackup备份指定数据库的对象和Greenplum数据库系统全局对象。可以通过 gprestore工具指定可选参数–with-globals来恢复全局对象。更多 信息请见备份或还原中包含的对象 。

gpbackup默认将Greenplum数据库备份对象元数据文件和DDL文件存储在Master数据目录下。 Greenplum Segment使用COPY … ON SEGMENT命令将数据备份为压缩CSV数据文件,并 存储在每个Segment的数据目录下。更多信息请见理解备份文件。

可以通过指定–backup-dir选项将Master和Segment主机上的数据备份到一个绝对 路径下。可以通过指定其他选项来过滤备份集合来排除或包含指定的表。

可以通过指定 –incremental选项来启动增量备份。增量备份在追加优化表或 表分区上的变化数据小于未发生变化的数据时有效。有关增量备份的详细信息,请见使用gpbackup和gprestore创建增量备份。

指定–jobs选项(1 job),Greenplum数据库Master主机上的每个 gpbackup操作都会启动一个单独的事务。COPY … ON SEGMENT命令在每个Segment主机上并行执行备份任务。备份进程会在备份的每张表 上唤起ACCESS SHARE锁。在表锁处理过程中,数据库处于静止状态。

当备份操作完成后,gpbackup会返回状态码。详情请见 返回码。

gpexpand正在初始化新segments时,gpbackup工具不能 运行。集群扩展完成后,在扩展之前创建的备份不能被gprestore使用。

gpbackup可以在备份操作完成后发送Email状态通知。客户可以在配置文件中 创建工具发送和接收服务器信息。详情请见配置邮件通知。 Note: 该工具在系统内部采用SSH连接执行各项操作任务。在大型Greenplum集群、云部署或每台主机部署了大量的 segment实例时,可能会遇到超过主机最大授权连接数限制的情况。此时需要考虑更新SSH配置参数MaxStartups 以提高该限制。

5.gpcheck

检查和验证Greenplum数据库平台的设置。 gpcheck工具确定用户正在运行Greenplum数据库的平台,并且验证各种平台相关的配置设置。 gpcheck可以使用一个主机文件或者之前由–zipout选项创建的文件 来验证平台设置。在成功的验证过程结束时,将显示GPCHECK_NORMAL消息。如果显示 GPCHECK_ERROR,则一个或多个验证检查失败。用户也可以使用gpcheck 来收集和查看主机上的平台设置,而不运行验证检查。

用户应该以root用户运行gpcheck。如果用户没有以root 用户运行gpcheck,该工具将显示一条警告消息,并且将无法验证所有的配置设置;只有其中的 一部分设置将被验证。

6.gpcheckcat

gpcheckcatgpcheckcat工具测试Greenplum数据库目录表的不一致性。 gpcheckcat工具运行多种测试检查数据库目录的不一致。 某些测试不能与其他负载语句同时运行, 否则结果将不可用。运行gpcheckcat时,要以受限模式重新启动数据库,否则,gpcheckcat 可能会由于正在进行的数据库操作而报告不一致,这会与实际的不一致数量不同。如果用户在不停止数据库活动的情况下运行 gpcheckcat,请使用-O选项运行它。 Note: 每当用户运行该工具时,它都会检查并删除指定数据库中的孤立的临时数据库方案(没有会话ID的临时方案)。 该工具在命令行上显示孤立临时模式检查的结果,并在日志中记录该结果。 目录不一致是Greenplum数据库系统表之间发生的不一致。

一般来说,有三种不一致:

  • Segment级的系统表不一致。例如,包含表数据的系统表与包含列数据的系统表之间的不一致。另一个例子是一个 系统表在本该唯一的列中包含重复。
  • Segment之间相同系统表之间的不一致。例如,一个系统表在一个Segment上缺少一行,但其他Segment具有这一行。 作为另一个例子,特定的行列数据的值在不同的Segment之间不同,例如表所有者或表访问特权。
  • 持久化系统表对象状态和文件系统对象间的不一致。例如,一个文件在数据库目录中存在,但数据库系统表中 不存在相应的对象。

7.gpcheckperf

验证指定主机的基准硬件性能。 gpcheckperf工具在指定的主机上启动会话并运行以下性能测试:

  • 磁盘I/O测试(dd测试) — 要测试逻辑磁盘或文件系统的顺序吞吐性能, 该工具使用dd命令,该命令是一个标准的UNIX工具。它记录花费多长时间在磁盘上读写一个 大文件,并以兆字节(MB)每秒为单位计算磁盘I/O性能。默认情况下,用于测试的文件尺寸按照主机 上的总随机访问内存(RAM)的两倍计算。这确保了测试是真正地测试磁盘I/O而不是使用内存缓存。
  • 内存带宽测试(流) — 为了测试内存带宽,该工具使用STREAM基准程序来 测量可持续的内存带宽(以MB/s为单位)。这测试用户的系统在不涉及CPU计算性能情况下是否受系统 内存带宽的限制。在数据集较大的应用程序中(如在Greenplum数据库中),低内存带宽是一个主要的 性能问题。如果内存带宽明显低于CPU的理论带宽,则会导致CPU花费大量的时间等待数据从系统内存到达。
  • 网络性能测试(gpnetbench*) — 为了测试网络性能(以及Greenplum 数据库Interconnect的性能),该工具运行一种网络基准测试程序,该程序当前主机发送5秒钟的数据流 到测试中包含的每台远程主机。数据被并行传输到每台远程主机,并以兆字节(MB)每秒报告最小、最大、 平均和中位网络传输速率。如果汇总的传输速率比预期慢(小于100MB/s),则可以使用-r n 选项串行地运行该网络测试以获取每台主机的结果。要运行全矩阵带宽测试,用户可以指定-r M, 这将导致每台主机都发送和接收来自指定的每台其他主机的数据。该测试最适用于验证交换结构是否可以承受全矩阵负载。

为了指定要测试的主机,请使用-f选项指定包含主机名列表的文件,或使用 -h选项在命令行上指名单个主机名。如果运行网络性能测试,主机文件中 的所有项必须是同一子网内的网络接口。如果用户的Segment主机具有在不同子网上配置的多个 网络接口,请为每个子网运行一次网络测试。

用户还必须指定至少一个测试目录(使用-d)。运行gpcheckperf 的用户必须具有对所有远程主机上指定测试目录的写入权限。对于磁盘I/O测试,测试目录应与用户的 Segment数据目录(主Segment和/或镜像Segment)相对应。对于内存带宽和网络测试,测试程序文件 需要临时目录。

在使用gpcheckperf之前,用户必须在涉及性能测试的主机之间建立可信的主机设置。 用户可以使用gpssh-exkeys工具更新已知主机文件并在主机之间交换公钥 (如果尚未这样做的话)。请注意,gpcheckperf调用gpssh 和gpscp,这些Greenplum工具也必须在$PATH中。

8.gpconfig

在Greenplum数据库系统中所有的Segment上设置服务器配置参数。 gpconfig工具允许用户在Greenplum数据库系统中所有实例 (Master、Segment和镜像)的postgresql.conf文件中设置、 复原或查看配置参数。设置参数时,如果需要,还可以为Master指定一个不同的值。 例如,诸如max_connections之类的参数要求Master的设置 不同于Segment的设置。如果要设置或复原全局参数或仅可对Master设置的参数, 请使用–masteronly选项。

gpconfig只能用来管理某些参数。例如,用户不能使用它来设置 port等参数,这些参数对每个Segment实例都不同。使用-l (list)选项查看gpconfig支持的配置参数的完整列表。

当gpconfig在Segment的postgresql.conf 文件中设置配置参数时,新的参数设置将总是显示在该文件的底部。当用户使用 gpconfig移除配置参数时,gpconfig会在所有 Segment的postgresql.conf文件中把该参数注释掉,从而恢复系统 默认设置。例如,如果使用gpconfig 删除(注释掉)一个参数,并且 稍后把它添加回来(设置新值),则该参数会有两个实例,一个被注释掉,另一个被启用并 添加到postgresql.conf文件的底部。

设置参数之后,用户必须重新启动其Greenplum数据库系统,或者重新加载postgresql.conf 文件以使得更改生效。是否需要重新启动或者加载取决于被设置的参数。

gpconfig使用以下环境变量连接到Greenplum数据库的 Master实例并获取系统配置信息:

  • PGHOST
  • PGPORT
  • PGUSER
  • PGPASSWORD
  • PGDATABASE

9.gpdeletesystem

删除一个使用gpinitsystem初始化的Greenplum数据库系统gpinitsystem。 gpdeletesystem工具执行以下两种操作:

  • 停止所有postgres进程 (Segment实例和Master实例)。
  • 删除所有的数据目录。

在运行gpdeletesystem之前:

  • 将所有备份文件移出Master数据目录和Segment数据目录。
  • 确保Greenplum数据库在运行。
  • 如果用户当前位于Segment数据目录中,请将目录更改为另一个位置。 从Segment数据目录中运行时,该工具会失败,并显示错误。

该工具不会卸载Greenplum数据库软件。

10.gpexpand

检查和验证Greenplum数据库平台的设置。

gpcheck工具确定用户正在运行Greenplum数据库的平台,并且验证各种平台相关的配置设置。 gpcheck可以使用一个主机文件或者之前由–zipout选项创建的文件 来验证平台设置。在成功的验证过程结束时,将显示GPCHECK_NORMAL消息。如果显示 GPCHECK_ERROR,则一个或多个验证检查失败。用户也可以使用gpcheck 来收集和查看主机上的平台设置,而不运行验证检查。

用户应该以root用户运行gpcheck。如果用户没有以root 用户运行gpcheck,该工具将显示一条警告消息,并且将无法验证所有的配置设置;只有其中的 一部分设置将被验证。

11.gpfdist

将数据文件载入Greenplum数据库Segment或从其中写出数据文件到文件系统。

gpfdist是Greenplum数据库并行文件分发程序。它可以被外部表和gpload 用来并行地将外部表文件提供给所有的Greenplum数据库Segment。它由可写外部表使用,并行接受来自Greenplum数据库 Segment的输出流,并将它们写出到文件中。 Note: gpfdist和gpload是在Greenplum的主版本级别有效的。 例如,Greenplum 4.x版本的gpfdist不能用于Greenplum 5.x或6.x版本。

为了使外部表使用gpfdist,外部表定义的LOCATION子句必须使用 gpfdist://协议(参见Greenplum数据库命令CREATE EXTERNAL TABLE)。 Note: 如果–ssl选项被指定来启用SSL安全性,请使用gpfdists://协议创建外部表。

使用gpfdist的好处是在读取或写入外部表时可以保证最大的并行性,从而提供最佳的性能, 并且更容易管理外部表。

对于只读外部表,当用户在外部表中SELECT时,gpfdist 将数据文件均匀地分析并提供给Greenplum数据库系统的所有Segment实例。对于可写的外部表, gpfdist在用户INSERT外部表时接受来自Segment的 并行输出流,并写入输出文件。

对于可读外部表,如果被加载的文件使用gzip或bzip2 (具有.gz或.bz2的文件扩展名),gpfdist 会在装载之前自动解压文件,前提是gunzip或bunzip2在用户的 可执行文件路径中。 Note: 目前,可读外部表不支持在Windows平台上的压缩,可写外部表不支持任何平台上的压缩。

当使用gpfdist或gpfdists协议读写数据时,Greenplum数据库 在HTTP请求头部中包含X-GP-PROTO,以指示该请求来自Greenplum数据库。该工具拒绝 请求头部中不包含X-GP-PROTO的HTTP请求。

大多数情况下,用户很可能希望在ETL机器而不是安装Greenplum数据库的主机上运行gpfdist。 要在其他主机上安装gpfdist,只需简单的将该程序复制到该主机上,然后将gpfdist 添加到用户的$PATH路径中。

Note: 使用IPv6时,请始终将数字IP地址包裹在括号内。

12.gpinitstandby

为Greenplum数据库系统添加或初始化后备Master主机。 gpinitstandby工具为用户的Greenplum数据库系统添加一个备份的后备Master主机。 如果用户的系统已经配置了后备Master主机,请在添加新的后备Master主机之前使用-r 选项将其删除。

在运行此工具之前,请确保Greenplum数据库软件已安装在后备Master主机上,并且用户已在主机之间交换了 SSH密钥。推荐在Master主机和后备Master主机上将主端口设置为相同的端口号。

此工具应该在当前活动的主Master主机上运行。方法请参见Greenplum数据库安装指南。

该工具执行以下的步骤:

  • 更新该Greenplum数据库系统目录来删除现有的后备Master主机信息 (如果指定了-r)
  • 更新该Greenplum数据库系统 目录来添加新的后备Master主机信息
  • 编辑Greenplum数据库Master的pg_hba.conf 来允许从新添加的后备Master主机进行访问。
  • 在后补Master主机上设置后备Master实例。
  • 开始同步进程。

如果主Master主机变为不可操作,后备Master主机将作为“热备用”。后备Master通过事务日志 复制进程(walsender和walreceiver)保持最新 状态,这些进程在主Master主机和后备Master主机上运行,并使两者的数据保持同步。如果主 Master失效,日志复制过程将关闭,后备Master可以使用gpactivatestandby 工具在其位置激活。一旦后备Master激活,复制日志将用于重建最后一次成功提交事务时Master 主机的状态。

激活的后备Master实际上成为Greenplum数据库的Master,在主端口上接受客户端连接并执行正常的 Master操作,例如SQL命令处理和负载管理。 Important: 如果gpinitstandby工具之前初始化后备Master失败, 则必须显示删除后备Master数据目录中的文件,然后再次运行gpinitstandby。 后备Master数据目录在初始化失败后不会被清理,因为它包含可帮助确定失败原因的日志文件。

如果发生初始化失败,则会在后备主机目录/tmp中生成摘要报告文件。 该报告列出了后备主机上需要清理的目录。

13.gpinitsystem

使用gpinitsystem_config文件中指定的配置参数初始化一个Greenplum数据库系统。

gpinitsystem工具将使用配置文件中定义的值和客户提供的命令行选项 创建一个Greenplum数据库实例。 有关配置文件的更多信息,请参见初始配置文件格式。在 运行此工具之前,请确保已经在阵列中所有主机上安装了Greenplum数据库软件。

带有-O output_configuration_file选项时, gpinitsystem不会创建一个新数据库,而是把所有的配置都写入一个配置文件。 该文件使用QD_PRIMARY_ARRAY和 PRIMARY_ARRAY参数来定义每个成员相关的主机名、端口号、数据目录、Segment前缀、 Segment ID和Content ID。集群配置的详细信息可以根据需要修改,以匹配Greenplum数据库备份中的可用值, 活着可以简单的被用来重建相同集群配置。使用QD_PRIMARY_ARRAY和 PRIMARY_ARRAY的配置文件必须被传递给gpinitsystem -I input_configuration_file。 详细信息请见初始配置文件格式。

在Greenplum数据库DBMS中,必须在系统中的所有主机上初始化每个数据库实例(Master和所有的Segment), 以便它们可以作为统一的DBMS一起使用。gpinitsystem工具负责初始化Greenplum的 Master和每个Segment实例,并作为一个整体配置系统。

在运行gpinitsystem之前,用户必须设置$GPHOME环境变量以 指向Master上的Greenplum数据库安装位置,并且使用gpssh-exkeys在阵列中的 所有主机地址之间交换SSH密钥。

这个工具执行以下任务:

  • 验证配置文件中参数的正确。
  • 确保可以建立到每个主机地址的连接。如果主机地址无法到达,该工具将退出。
  • 验证区域设置。
  • 显示将要使用的配置并提示用户进行确认。
  • 初始化Master实例。
  • 初始化后备Master实例(如果指定)。
  • 初始化主Segment实例。
  • 初始化镜像Segment实例(如果配置)。
  • 配置Greenplum数据库系统并检查错误。
  • 启动Greenplum数据库系统。

Note: 该工具在系统内部采用SSH连接执行各项操作任务。在大型Greenplum集群、云部署或每台主机部署了大量的 segment实例时,可能会遇到超过主机最大授权连接数限制的情况。此时需要考虑更新SSH配置参数MaxStartups 以提高该限制。更多关于SSH配置的选项,请参考您的Linux分发版的SSH文档。

14.gpload

按照一个YAML格式的控制文件的定义运行一个装载作业。 要执行gpload命令的客户机必须具有下列要求:

  • Python 2.6.2或更新版本,装有pygresql (Python的PostgreSQL接口包 ),和pyyaml。注意Python及所需的Python库被包含在Greenplum数据库安装包中, 因此如果在gpload运行的机器上安装有Greenplum数据库,用户就不需要单独安装Python。
  • Note: Greenplum数据库的Windows装载客户端仅支持Python 2.5(您可以从https://www.python.org获取)
  • gpfdist并行文件分发程序被安装在PATH中。这个程序位于Greenplum 数据库的GPHOME/bin目录下。
  • gpload客户机可以访问(被访问)Greenplum数据库集群(Master和Segments)中所有主机。
  • gpload客户及可以访问(被访问)所有可能用来装载数据的主机(ETL服务器)。

gpload是一个数据装载工具,它扮演着Greenplum数据库外部表并行装载 特性的接口的角色。通过一个用YAML格式控制文件定义的装载说明,gpload 调用Greenplum数据库的并行文件服务器 (gpfdist)执行 文件装载,基于源数据的定义创建一个外部表定义,并且指定INSERT、 UPDATE或MERGE操作把源数据装载到数据库中的目标表中。 Note: gpfdist和gpload是在Greenplum的主版本级别有效的。 例如,Greenplum 4.x版本的gpfdist不能用于Greenplum 5.x或6.x版本。 Note: 如果目标表的列名为保留关键字、有大写字母或包含任何双引号, 那么MERGE和UPDATE操作不被支持。

在目标表上指定多个同时的装载操作时,操作包括在YAML控制文件(控制文件格式见控制文件格式)的SQL集合中指定的任何SQL命令会在单个事务中 执行以防止数据不一致。

15.gplogfilter

在Greenplum数据库日志文件中搜索指定的项。

gplogfilter工具可以被用来在一个Greenplum数据库日志文件中搜索匹配指定条件的项。 如果没有提供输入文件,那么gplogfilter将使用环境变量$MASTER_DATA_DIRECTORY 在标准日志位置定位Greenplum的Master日志文件。要从标准输入读取,可用一个破折号(-)作为输入文件名。 输入文件可以被使用gzip压缩。在输入文件中,日志项由其YYYY-MM-DD [hh:mm[:ss]] 格式的时间戳标识。

如果通过gpssh工具运行 gplogfilter,用户还可以用它来一次搜索所有的Segment日志文件。例如,要显示每个Segment 日志文件中的最后三行:

代码语言:javascript复制
gpssh -f seg_host_file
          => source /usr/local/greenplum-db/greenplum_path.sh
          => gplogfilter -n 3 /gpdata/*/pg_log/gpdb*.csv

gplogfilter的输出默认被发送到标准输出。可以使用-o选项把输出发送到一个文件或者一个目录。 如果用户提供了一个以.gz结束的输出文件名,该输出文件默认将被以最大压缩率压缩。如果输出目标是一个目录, 输出文件将被命名为输入文件的名字。

16.gpmapreduce

按照YAML规范文档中的定义运行Greenplum的MapReduce作业。

在运行此程序之前,需要执行以下操作:

  • 用户必须在YAML文件中定义用户的MapReduce作业。 有关Greenplum MapReduce规范的信息,请参阅Greenplum数据库参考指南。
  • 用户必须是Greenplum数据库超级用户才能运行使用不可信Perl或Python 编写的MapReduce作业。
  • 用户必须是Greenplum数据库超级用户才能运行带有EXEC 和FILE输入的MapReduce作业。
  • 用户必须是Greenplum数据库超级用户才能运行带有GPFDIST 输入的MapReduce作业,除非用户具有适当的权限。有关更多信息,请参阅Greenplum数据库参考指南。

MapReduce是由Google开发的用于在商用服务器阵列上处理和生成大型数据集的编程模型。 Greenplum MapReduce允许熟悉MapReduce范式的编程人员编写map和reduce函数,并将它们提交给 Greenplum数据库并行引擎处理。

为了使Greenplum能够处理MapReduce函数,需要在YAML文档中定义函数,然后将其传递到Greenplum MapReduce程序gpmapreduce,以供Greenplum数据库并行引擎执行。Greenplum 系统负责分布输入数据、在一组机器上执行程序、处理机器故障以及管理所需的机器间通信。

运行my_yaml.txt中定义的MapReduce作业,并连接到数据库 mydatabase:

代码语言:javascript复制
gpmapreduce -f my_yaml.txt mydatabase

17.gpmovemirrors

gpmovemirrors工具将镜像实例移动到新位置。客户可能会想移动镜像到新位置以优化分布 和数据存储

在移动Segment之前,该工具会验证Mirror是否存在,他们对应的主节点是否在线和目前同步状态在同步还是 异步模式。

默认情况下,工具会提示您输入所有镜像要移动到的文件系统路径。

客户必须保证运行gpmovemirrors的用户(gpadmin用户) 拥有该位置的访问权限。所以最好在运行gpmovemirrors工具之前在各个Segment主机 上创建好对应的路径,并使用chown命令付给指定用户相应的权限。

18.gpperfmon_install

安装Greenplum Command Center使用的gpperfmon数据库, 并可选择启用数据收集代理。

gpperfmon_install工具自动执行启用数据收集代理程序所需的步骤。 用户必须是Greenplum数据库系统用户(gpadmin)才能运行此工具。 –port选项是必须的。使用–enable选项时, 还需要–password选项。使用–port选项来 提供Greenplum数据库的Master实例的端口。如果使用–enable选项, 必须在工具完成后重新启动Greenplum数据库。

在没有–enable选项时,此工具只创建gpperfmon 数据库(用于存储由数据收集代理收集的系统度量的数据库)。在使用–enable 选项运行时,该工具还会运行启用性能监视器数据收集代理所需的以下附加任务:

step 1.在Greenplum数据库中创建gpmon超级用户角色。 数据收集代理需要连接到数据库并写入数据。gpmon超级用户角色默认 使用MD5加密口令认证。 使用–password选项来设置gpmon 超级用户的口令。 step 2.更新$MASTER_DATA_DIRECTORY/pg_hba.conf文件。 该工具将这些行添加到基于主机的认证文件(pg_hba.conf)中:

代码语言:javascript复制
local      gpperfmon     gpmon                 md5
            host       all           gpmon  127.0.0.1/28   md5
            host       all           gpmon  ::1/128        md5

第二和第三行的host项,让gpmon能访问 所有Greenplum数据库。

Note: 可能有必要在运行gpperfmon_install工具以限制 gpmon角色访问数据库或更改身份验证方法之后再编辑 pg_hba.conf文件中的行。运行gpstop -u重新加载 Greenplum数据库的pg_hba.conf文件。

要将gpmon的访问限制为仅访问gpperfmon数据库, 编辑pg_hba.conf文件中host项。对于 gpmon用户,将第二个字段从all更改为 gpperfmon:

代码语言:javascript复制
local      gpperfmon     gpmon                  md5
                host       gpperfmon     gpmon    127.0.0.1/28  md5
                host       gpperfmon     gpmon    ::1/128       md5

gpperfmon_install工具采用默认的MD5认证方法。Greenplum数据库可以 选择性地配置为使用SHA-256哈希算法来计算保存在系统目录中的口令哈希值。这与MD5认证方法 不兼容,MD5认证方法在系统目录中需要MD5哈希或明文口令。 因此,如果在数据库中启用了SHA-256哈希算法,则必须在运行gpperfmon_install 工具后编辑pg_hba.conf文件。对于host项,将 gpmon角色的身份认证从md5改为 password:

代码语言:javascript复制
local      gpperfmon     gpmon                 md5 
                  host       all           gpmon  127.0.0.1/28   password
                  host       all           gpmon  ::1/128        password

password认证方法提交用户的明文口令进行验证,不应在不可信的网络上使用。 请参阅Greenplum数据库管理员指南中的“保护Greenplum数据库中的密码”。

step 3.更新口令文件(.pgpass)。为了允许数据收集代理作为 gpmon角色进行连接而无需口令提示,用户必须拥有一个包含gpmon 用户项的口令文件。该工具将以下项添加到用户的口令文件(如果该文件不存在,该工具将创建它):

代码语言:javascript复制
*:5432:gpperfmon:gpmon:gpmon_password

如果用户的口令文件不在默认位置(~/.pgpass),使用–pgpass 选项指定文件位置。

step 4.设置Greenplum Command Center的服务器配置参数。数据收集代理必须启用 以下参数才能开始收集数据。该工具在Greenplum数据库的postgresql.conf 配置文件中设置以下参数:

  • gp_enable_gpperfmon=on (在集群中所有的postgresql.conf 文件中)
  • gpperfmon_port=8888 (在集群中所有的postgresql.conf文件中)
  • gp_external_enable_exec=on (在Master的 postgresql.conf文件中)

数据收集代理可以通过在gpperfmon.conf配置文件中设置参数进行配置。 参阅数据收集代理配置获取更多详细信息。

19.gppkg

在整个集群中安装.gppkg格式的Greenplum数据库扩展 (例如PL/Java、PL/R和MADlib) 及其依赖项。 Greenplum软件包管理器(gppkg)工具在集群中的所有主机上安装 Greenplum数据库扩展以及任何依赖项。在系统扩展和Segment恢复的情况下,它也将自动 在新主机上安装扩展。

Note: 在Greenplum数据库重要升级之后,用户必须再次下载并安装所有 gppkg扩展。

20.gprecoverseg

恢复已标记为down的主Segment实例或镜像Segment实例(如果启用了镜像)。

在启用了镜像的系统中,gprecoverseg工具会重新激活故障的Segment实例, 并识别需要重新同步的已更改的数据库文件。一旦gprecoverseg完成这个过程, 系统进入resyncronizing模式,直到被恢复的Segment更新为最新为止。在重新同步期间 系统处于在线状态并且能被正常操作。

在增量恢复期间(未指定-F选项),如果gprecoverseg 在启用了镜像的系统中检测到禁用镜像的Segment实例,则工具将报告该Segment禁用了镜像,不会尝 试恢复该Segment实例,并继续恢复过程。

Segment实例可能由于多种原因故障,如主机故障、网络故障或磁盘故障。当一个Segment实例故障时, 其状态在Greenplum数据库系统目录中被标记为down并且在change tracking模式 下激活其镜像。为了使发生故障的Segment实例重新运行,首先必须纠正使其故障的问题,然后使用 gprecoverseg在Greenplum数据库中恢复Segment实例。

使用gprecoverseg进行Segment恢复需要有一个活动镜像来从其中恢复。对于 没有启用镜像的系统,或者在发生双重故障的情况下(主Segment和镜像Segment同时故障),必须采取 手动步骤恢复出现故障的Segment实例,然后执行系统重新启动让Segment重新联机。例如,该命令重新 启动系统。

代码语言:javascript复制
gpstop -r

缺省情况下,将恢复出现故障的Segment,这意味着系统将该Segment重新联机到与最初配置的主机和 数据目录位置相同的位置。在这种情况下,请使用以下格式的恢复配置文件(使用-i)。

代码语言:javascript复制
<failed_host_address>:<port>:<data_directory> 

在某些情况下,这可能是不可能的(例如,如果主机物理损坏,无法恢复)。gprecoverseg 允许用户将失败的Segment恢复成全新的主机(使用-p),在剩余的活动Segment主机上的 备用数据目录位置(使用-s)或通过以下面的格式提供恢复配置文件(使用-i)。 SPACE关键字表示所需空间的位置。不要添加额外的空间。

代码语言:javascript复制
<failed_host_address>:<port>:<data_directory>SPACE
        <recovery_host_address>:<port>:<data_directory>

gp_segment_configuration系统目录表可以帮助用户确定当前的Segment配置, 以便用户可以规划镜像恢复配置。例如,运行以下查询:

代码语言:javascript复制
=# SELECT dbid, content, address, port, datadir 
           FROM gp_segment_configuration
           ORDER BY dbid;

新恢复的Segment主机必须预先安装Greenplum数据库软件,并且配置与现有Segment主机完全相同。所有 当前配置的Segment主机上必须存在备用数据目录位置,并且有足够的磁盘空间来容纳故障的Segment。

恢复过程会在Greenplum数据库系统目录中再次标记该Segment,然后启动重新同步过程,以使Segment的 事务状态处于最新状态。在重新同步期间系统在线并且可用。要检查重新同步进程运行的状态:

代码语言:javascript复制
gpstate -m

21.gpreload

重新装载Greenplum数据库表数据,根据指定的列对数据进行排序。

gpreload工具重新装载列数据被排序过的表数据。对于使用表存储选项 appendoptimized=TRUE并启用压缩创建的表,使用排序数据重新装载数据 可以改善表压缩。用户在一个文本文件中指定要重新装载的表要排序的表列列表。

当列中的数据的不同值与行总数相比来说相对较小时,压缩可以通过对数据进行排序来改进。

对于正在重新装载的表,要排序的列顺序可能会影响压缩。具有最少不同值的列应该首先列出。 例如,列出州和城市一般会获得比列出城市和州更好的压缩。

代码语言:javascript复制
public.cust_table: state, city
        public.cust_table: city, state

22.gprestore

恢复由gpbackup创建的Greenplum数据库备份。默认gprestore 使用位于Greenplum Master主机数据目录下的元数据文件和DDL文件,使用存储于Segment主机上的表数据CSV 文件。

使用gprestore从备份集恢复时,必须包含–timestamp选项来指定 确切一个来自备份集的恢复时间值(YYYYMMDDHHMMSS)。如果在备份时指定了–backup-dir, 那么gprestore同样要指定–backup-dir来获取备份文件。 如果指定的是增量备份,那么还需要一个完全备份的文件集合(一个全备和所有需要的增量备份)。 gprestore会在开始恢复之前验证备份集合是可用的。 Important: 对于增量备份集,备份必须在单独设备上。例如,备份集的所有文件必须全部在 Data Domain系统。

当从备份集恢复时,gprestore会将数据恢复到创建备份时指定的数据库。 如果目标数据库存在,并且数据库中存在该表,恢复操作会失败。如果目标数据库不存在,可以通过指定 –create-db选项来创建数据库。也可以通过指定–redirect-db 选项来将数据恢复到不同的数据库。

当恢复分区表的子分区时,分区表和数据会一同被恢复。例如,使用gpbackup的 –include-table-file选项创建了一个备份。恢复数据时会恢复创建分区表并 只将数据恢复到列表文件中指定的分区。

Greenplum数据库系统对象会自动包含在gpbackup备份集中,但是只有在用 gprestore进行恢复时指定–with-globals选项才会 进行恢复。相似的情况还有,如果备份时使用–with-stats选项备份了查询计划 统计信息,那么在使用gprestore进行恢复时必须指定–with-stats 才能对这部分数据进行恢复。默认情况下,只有备份集中的数据库对象会被恢复。

恢复操作的性能可以通过提高创建多个并行连接的方式来同时恢复多个表和元数据。默认gprestore 使用1个连接,但是我们可以通过–jobs选项来为大的恢复过程增加处理进程数。

当一个操作完成后,gprestore会返回一个状态码。详见 Return Codes。

gprestore在恢复操作完成后可以发送邮件通知。可以指定发送邮件和接收邮件的 配置文件。详见配置邮件通知。

Note: 该工具在系统内部采用SSH连接执行各项操作任务。在大型Greenplum集群、云部署或每台主机部署了大量的 segment实例时,可能会遇到超过主机最大授权连接数限制的情况。此时需要考虑更新SSH配置参数MaxStartups 以提高该限制。更多关于SSH配置的选项,请参考您的Linux分发版的SSH文档。

23.gpscp

gpscp工具允许用户使用SCP(安全复制)在一个命令中将一个或多个文件从指定的主机 复制到其他指定的主机。例如,用户可以同时将文件从Greenplum数据库的Master主机复制到所有的 Segment主机。

要指定SCP会话中涉及的主机,请使用-f选项指定包含主机名列表的文件,或使用 -h选项在命令行上命名单个主机名。至少需要一个主机名(-h) 或主机文件(-f)。-J选项允许用户指定单个字符来替代 copy from和copy to的目标字符串中的hostname。 如果未指定-J,则默认的替代字符是等号(=)。例如,以下命令 将从本地主机将.bashrc复制到hostfile_gpssh中指定的 所有主机上的/home/gpadmin:

代码语言:javascript复制
gpscp -f hostfile_gpssh .bashrc =:/home/gpadmin

如果未在主机列表中指定用户名,或者在文件路径中指定了user@, 则gpscp将以当前登录用户的身份复制文件。要确定当前登录的用户,请执行 whoami命令。默认情况下,登录后gpscp将转到远程 主机上会话用户的$HOME。为确保将文件复制到远程主机上的正确位置, 建议使用绝对路径。

在使用gpscp之前,用户必须在涉及SCP会话的主机之间建立可信的主机设置。 用户可以使用工具gpssh-exkeys更新已知的主机文件并在主机之间交换公钥 (如果尚未这样做的话)。

24.gpseginstall

gpseginstall工具提供了一种在主机列表文件中指定的Segment主机上快速安装 Greenplum数据库的简单方法。该工具不会在Master主机上安装或更新Greenplum数据库。用户可以以 root身份或以非root用户身份运行gpseginstall。 gpseginstall不执行数据库初始化。有关初始化数据库的更多信息,请参阅 gpinitsystem。

以root身份运行时,gpseginstall默认操作是添加一个系统用户 (默认是gpadmin),创建口令(默认是changeme), 并在部分主机上部署和安装Greenplum数据库。为此,gpseginstall从当前 用户的环境变量($GPHOME)中的安装路径下查找Master上的当前Greenplum 数据库二进制文件。它将Greenplum数据库软件压缩成tar.gz文件并执行MD5 校验和以验证文件完整性。

然后,它将Greenplum数据库拷贝到Segment主机,安装(解压缩)Greenplum数据库,并将 Greenplum数据库安装的所有权更改为用户使用-u选项指定的系统用户。 最后,它将作为根用户以及用-u选项指定的系统用户在所有Greenplum数据库主机之间进行密钥交换。 gpseginstall还会执行用户限制检查并验证所有Segment上的Greenplum数据库的版本号。

如果以非root用户的身份运行gpseginstall,则gpseginstall仅会在Segment主机上压缩、复制并 安装Greenplum数据库。它还可以为当前系统用户在Greenplum数据库主机之间交换密钥,并验证所有 Segment上的Greenplum数据库的版本号。

25.gpssh

gpssh工具允许用户使用SSH(安全shell)一次在多台主机上运行bash shell命令。 用户可以通过在命令行上指定一个命令来执行单个命令,也可以省略该命令以进入交互式命令行会话。

要指定参与SSH会话的主机,请使用-f选项指定包含主机名列表的文件,或使用 -h选项在命令行上指明单个主机名。至少需要一个主机名(-h) 或主机文件(-f)。请注意,当前主机默认不包含在会话中 — 要 包含本地主机,用户必须在会话中涉及的主机列表中明确声明它。

在使用gpssh之前,用户必须在涉及SSH会话的主机之间建立可信的主机设置。 用户可以使用工具gpssh-exkeys更新已知的主机文件并在主机之间交换 公钥(如果尚未这样做的话)。

如果用户没有在命令行上指定命令,gpssh将进入交互模式。在gpssh 命令提示符(=>)处,用户可以像在常规bash终端命令行中那样输入命令, 并且该命令将在会话涉及的所有主机上执行。要结束交互式会话,请按键盘上的CTRL D 或键入exit或quit。

如果主机文件中没有指定用户名,则gpssh将以当前登录的用户身份执行命令。 要确定当前登录的用户,请执行whoami命令。默认情况下,登录后 gpssh将转到远程主机上的会话用户的$HOME。 为确保所有远程主机上的命令都能正确执行,应始终输入绝对路径。

如果在使用gpssh时遇到网络超时问题,可以使用-d和 -t选项或者在gpssh.conf文件中设置参数来控制 gpssh在验证初始ssh连接时使用的时间。

26.gpssh-exkeys

gpssh-exkeys工具在指定的主机名(或主机地址)之间交换SSH密钥。这允许 Greenplum主机和网络接口之间的SSH连接,而不需要口令提示。该工具用于最初将Greenplum数据库 系统准备好用于无口令的SSH访问,以及在扩展Greenplum数据库系统时添加额外的ssh密钥。

要指定参与初始SSH密钥交换的主机,请使用-f选项指定包含主机名列表的文件 (推荐),或使用-h选项在命令行上指出单个主机名。至少需要一个主机名 (-h)或主机文件。请注意,本地主机默认包含在密钥交换中。

指定要添加到现有Greenplum数据库系统的新扩展主机,请使用-e和-x 选项。-e选项指定一个文件,其中包含系统中已有SSH密钥的现有主机列表。 -x选项指定一个文件,其中包含需要参与SSH密钥交换的新主机列表。

密钥要作为当前登录的用户交换。用户应该执行两次密钥交换过程:一次作为root用户, 一次作为gpadmin用户(拥有Greenplum数据库安装的用户)。Greenplum数据库管理 要求在Greenplum数据库系统的所有主机上创建相同的非root用户,并且这些工具必须能够以该用户的身份 连接到所有主机而无需口令。

gpssh-exkeys工具使用以下步骤执行密钥交换:

  • 为当前用户创建一个RSA标识密钥对(如果尚不存在)。该密钥对中的 公钥被添加到当前用户的authorized_keys文件中。
  • 使用-h、-f、-e 以及-x选项指定的每台主机的主机密钥更新当前用户的 known_hosts文件。
  • 使用ssh连接到每个主机,并获取authorized_keys、 known_hosts和id_rsa.pub文件以设置无口令访问。
  • 将从每个主机获取的id_rsa.pub文件中的密钥添加到当前用户 的authorized_keys文件中。
  • 使用新的主机信息(如果有)更新所有主机上的authorized_keys、 known_hosts和id_rsa.pub文件。

27.gpstart

gpstart工具用于启动Greenplum数据库服务器进程。当用户启动一个Greenplum 数据库系统时,用户实际上是同时启动了几个postgres数据库服务器监听器进程 (Master和所有的Segment实例)。gpstart工具处理各个实例的启动。每个实例 都是并行启动的。

管理员第一次运行gpstart时,该工具将在用户的主目录中创建一个名为 .gphostcache的主缓存文件。随后,该工具使用此主机列表更有效地启动系统。 如果将新主机添加到系统中,则必须手动从gpadmin用户的主目录中删除此文件。 该工具将在下次启动时创建一个新的主机缓存文件。

作为启动过程的一部分,该工具会检查堆表checksum设置是否在集群上启用。如果堆表checksum启用情况 在各个实例之间不同,Greenplum数据库不会启动,会返回一个错误信息。该验证选项可以通过指定选项 –skip-heap-checksum-validation来停用。更多关于堆表checksum的情况, 请见Greenplum数据库管理员指南中的启用高可用和数据一致性特性部分。 Note: 在启动Greenplum数据库系统之前,用户必须首先使用gpinitsystem初始化系统。 堆表checksum特性在系统初始化时配置启用和禁用,系统初始化后不能修改。

28.gpstate

gpstate工具显示有关正在运行的Greenplum数据库实例的信息。 由于Greenplum数据库系统由跨多台机器的多个PostgreSQL数据库实例(Segment)组成, 因此用户可能需要了解关于Greenplum数据库系统的额外信息。gpstate 工具为Greenplum数据库系统提供了额外的状态信息,例如:

  • 哪台Segment主机已被关闭?
  • Master和Segment配置信息(主机、数据目录等)。
  • 系统使用的端口。
  • 主Segment到其相应的镜像Segment的映射。

29.gpstop

gpstop工具用于停止构成Greenplum数据库系统的数据库服务器。当用户停止一个 Greenplum数据库系统时,用户实际上是一次停止几个postgres数据库服务器进程 (Master和所有的Segment实例)。gpstop工具处理个别实例的关闭。每个实例 被并行地关闭。

默认情况下,如果有任何客户端连接到数据库,则不允许关闭Greenplum数据库。使用-M fast 选项来回滚所有正在进行的事务,并在关闭之前终止所有连接。如果有任何事务正在进行,则默认行为是 在关闭之前等待它们提交。

使用-u选项时, 该工具会上传对主pg_hba.conf文件所做的更改, 或者在postgresql.conf文件中将运行时配置参数上载到服务中。请注意, 任何活动的会话在重新连接到数据库之前都不会获取更改。

30.gpsys1

gpsys1显示当前主机的平台和安装的内存(以字节为单位)。例如:

代码语言:javascript复制
[gpadmin@gp-mdw ~]$ gpsys1
linux 8142905344
[gpadmin@gp-mdw ~]$

31.pgbouncer

PgBouncer是Greenplum和PostgreSQL数据库的轻量级连接池管理器。 gBouncer为每个数据库用户和数据库组合创建一个池。PgBouncer或者为客户端创建一个新的数据库连接, 或者重用一个现有的连接。当客户端断开连接时,连接被返回到池中以供重用。

PgBouncer支持PostgreSQL和Greenplum数据库共享的标准连接接口。 Greenplum数据库客户端程序(例如psql)可以连接到PgBouncer 正在运行的主机和端口号,而不是直接连接Greenplum数据库的主机或端口号。

可以通过配置文件声明PgBouncer和他的Greenplum数据库访问。提供的配置文件名 通常为pgbouncer.ini,供pgbouncer 命令使用。该配置文件还能提供Greenplum数据库位置信息。pgbouncer.ini 配置文件也定义了线程数、连接池、授权用户和授权配置信息,另外还有一些其他信息。

默认情况下,pgbouncer作为一个前端进程运行。可以通过 启动pgbouncer时指定-d选项来让其 在后台执行。

pgbouncer进程被操作系统用户拥有。在启动pgbouncer 时可以指定一个不同的用户名。

PgBouncer包括一个类似psql的管理控制台。 授权用户可以连接到虚拟数据库来监控和管理PgBouncer。也可以通过管理控制台来监控和管理后台进程。 也可以使用控制台更新和重载PgBouncer配置文件,此时不需要通知或重启该进程。

32.pgbouncer.ini

可以在配置文件pgbouncer.ini中指定PgBouncer配置参数并指定用户相关的配置参数。

PgBouncer的配置文件(通常是pgbouncer.ini)是.ini格式。 .ini格式的文件通常由小节、参数和参数值组成。小节名称封闭在方括号中, 例如,[section_name]。参数和值通常以 key=value的方式展示。 以”;”或”#”开头的行被注释或者忽略。当该”;”和”#” 字符出现在行后面时候不被识别。 PgBouncer配置文件包含%include路由符,它指定了用来读取和处理的其他文件。 这让我们可以将配置文件拆分为多个部分。例如:

代码语言:javascript复制
%include filename

如果提供的文件名不是绝对路径,当前操作系统工作路径被作为相对路径。

33.pgbouncer-admin

PgBouncer管理控制台可以通过psql操作。 通过连接到PgBouncer port和 虚拟数据库名pgbouncer来登陆控制台。

列在pgbouncer.ini配置文件中的配置参数admin_users 和stats_users的用户有访问PgBouncer管理控制台的权限。

可以从控制台控制PgBouncer和Greenplum数据库之间的连接。 也可以进行PgBouncer配置参数设置。

0 人点赞