当前位置:网站首页>Greenplum6.x-版本变化记录-常用手册

Greenplum6.x-版本变化记录-常用手册

2022-07-07 06:01:00 xcSpark

一. 搭建相关

Greenplum 环境搭建和基本查错

6.x版本

Greenplum各版本更新内容

二. 6.x版本更新内容

https://gpdb.docs.pivotal.io/6-18/admin_guide/managing/compression.html

发布 6.0.0

发布日期:2019-09-03

  • Pivotal Greenplum 6.0.0 是 Greenplum 的主要新版本,其中包括新的和更改的功能。

新的功能

Pivotal Greenplum 6 包括这些新功能。

  • PostgreSQL 核心功能
  • Zstandard 压缩算法
  • 用于指定表分布列的宽松规则
  • 复制的表数据
  • 资源组功能
  • PL/pgSQL 过程语言增强
  • Greenplum 6 中的并发改进
  • 额外的贡献模块
  • PXF 版本 5.8.1
  • 其他 Greenplum 数据库特性

PostgreSQL 核心功能

Pivotal Greenplum 6 整合了从 PostgreSQL 版本 8.4 到版本 9.4 的几个新特性。

INTERVAL 数据类型处理

PostgreSQL 8.4 改进了文字的解析INTERVAL以符合 SQL 标准。INTERVAL这会更改在5.x 和 6.x 版本之间使用标签的查询的输出。例如:

$ psql
psql (8.3.23)
Type "help" for help.

gpadmin=# select INTERVAL '1' YEAR;
 interval
----------
 00:00:00
(1 row)
$ psql
psql (9.2beta2)
Type "help" for help.

gpadmin=# select INTERVAL '1' YEAR;
 interval
----------
 1 year
(1 row)

有关详细信息,请参阅日期/时间类型。

  • 其他 PostgreSQL 功能
    Greenplum 数据库 6.0 还包括 PostgreSQL 的这些特性和更改:

  • 支持用户定义的 I/O 转换强制转换。(PostgreSQL 8.4)。

  • 支持列级权限 (PostgreSQL 8.4)。

  • 目录表pg_db_role_setting,它支持为特定数据库和角色组合 (PostgreSQL 9.0) 设置服务器配置参数。

  • relkind目录表列中的 值pg_class已更改以匹配 PostgreSQL 9.3 中的条目。

  • 支持 GIN 索引方法 (PostgreSQL 8.3)。

  • Postgres Planner 支持 SP-GiST 索引访问方法 (PostgreSQL 9.2)。(GPORCA 忽略 SP-GiST 索引。)

  • Postgres Planner 支持有序集聚合和移动聚合 (PostgreSQL 9.4)。

  • 支持jsonb数据类型(PostgreSQL 9.4)。

  • DELETE, INSERT, 并UPDATE支持WITH子句 CTE(公用表表达式)(PostgreSQL 9.1)。

  • 排序规则支持为列级别的数据指定排序顺序和字符分类行为(PostgreSQL 9.1)。

注意:仅当查询中的所有列都使用相同的排序规则时,GPORCA 才支持排序规则。如果查询中的列使用不同的排序规则,那么 Greenplum 使用 Postgres Planner。

Zstandard 压缩算法

Greenplum Database 6.0 为一些数据库操作增加了对 zstd (Zstandard) 压缩的支持。请参阅启用压缩。

  • 用于指定表分布列的宽松规则
    在以前的版本中,如果您在语句中同时指定了UNIQUE约束和DISTRIBUTED BY子句CREATE TABLE,则该DISTRIBUTED BY子句必须等于列或UNIQUE列的左子集。Greenplum 6.x 放宽了这个规则,以便UNIQUE接受列的任何子集。

  • 此更改还影响 Greenplum 6.x 如何选择默认分发密钥的规则。如果gp_create_table_random_default_distribution关闭(默认)并且您不包含DISTRIBUTED BY子句,则 Greenplum 根据以下命令选择表分布键:

  • 如果指定了LIKEorINHERITS子句,则 Greenplum 从源表或父表中复制分布键。

  • 如果指定了 a PRIMARY KEYorUNIQUE约束,则 Greenplum 选择所有键列的最大子集作为分布键。

  • 如果既没有指定约束也没有指定LIKEorINHERITS子句,则 Greenplum 选择第一个合适的列作为分布键。(具有几何或用户定义数据类型的列不适合作为 Greenplum 分布键列。)
    资源组功能

Greenplum 数据库包括这些新的资源组特性:

MEMORY_LIMIT当您配置 Greenplum 数据库资源组时,您 不再需要指定 a 。当您指定 时MEMORY_LIMIT=0,Greenplum 数据库将使用资源组全局共享内存池来服务在组中运行的查询。
当您指定 时MEMORY_SPILL_RATIO=0,Greenplum 数据库现在将使用statement_mem服务器配置参数设置来识别查询运算符内存的初始量。

当一起用于配置资源组(MEMORY_LIMIT=0和MEMORY_SPILL_RATIO=0)时,这些新功能提供了类似于 Greenplum 数据库资源队列提供的内存管理方案。

和资源组的MEMORY_SHARED_QUOTA、MEMORY_SPILL_RATIO和MEMORY_LIMIT属性的默认值已设置为使用这种类似资源队列的内存管理方案,因此当您最初启用资源组时,您的查询将在与以前类似的内存环境中运行。admin_groupdefault_group

  • 资源组 管理员组 默认组
MEMORY_LIMIT	10	0
MEMORY_SHARED_QUOTA	80	80
MEMORY_SPILL_RATIO	0	0

PL/pgSQL 过程语言增强

Greenplum 数据库 6.0 中的 PL/pgSQL 包括对以下新特性的支持:

附加DETAIL和HINT文本到用户抛出的错误消息。您还可以指定SQLSTATE和SQLERRMSG代码以在用户抛出的错误时返回(PostgreSQL 8.4)。
该RETURN QUERY EXECUTE语句指定要动态执行的查询(PostgreSQL 8.4)。
使用语句进行条件执行CASE(PostgreSQL 8.4)。请参阅PostgreSQL 文档中的条件。
复制的表数据
该CREATE TABLE命令支持DISTRIBUTED REPLICATED作为分发策略。如果指定了这个分发策略,Greenplum数据库会将表的所有行分发到Greenplum数据库系统中的所有Segment实例。

注意:隐藏的系统列(ctid、cmin、cmax、xmin、xmax和gp_segment_id)不能在复制表的用户查询中引用,因为它们没有单一的、明确的值。Greenplum 数据库column does not exist为查询返回错误。

Greenplum 6 中的并发改进

Greenplum Database 6 包括以下并发改进:

全局死锁检测器——Greenplum 数据库的早期版本通过为UPDATE和DELETE操作持有排他表锁来防止全局死锁。虽然这种策略确实可以防止死锁,但它的代价是并发更新时性能不佳。Greenplum Database 6 包括一个全局死锁检测器。这个后端进程收集和分析Greenplum集群中的锁等待数据。如果全局死锁检测器确定存在死锁,它会通过取消一个或多个后端进程来打破死锁。默认情况下,全局死锁检测器被禁用,并且为表更新持有表级排他锁。当启用全局死锁检测器时,Greenplum 数据库持有行级排他锁并允许并发更新。请参阅全局死锁检测器.
BEGIN事务锁优化 - Greenplum 数据库 6 在您和事务 时优化事务锁的使用COMMIT。这有利于高度并发的混合工作负载。
上游 PostgreSQL 特性——Greenplum 6 包括上游 PostgreSQL 特性,包括用于快速路径锁的特性,这些特性减少了锁争用。这有利于并发短查询和混合工作负载。
VACUUM可以更轻松地跳过无法锁定的页面。这降低了真空似乎被“卡住”的频率,这种情况发生在VACUUM等待锁定一个块以进行清理并且另一个会话长时间锁定该块时。现在VACUUM跳过它无法锁定的块并稍后重试该块。
VACUUM在删除死元组后重新检查块的可见性。如果块中所有剩余的元组对当前和未来的事务都是可见的,则该块被标记为全部可见。
作为分区表层次结构的一部分但不包含数据的表是年龄冻结的,因此它们不必单独清理,并且不会影响在发生回绕之前计算剩余事务 ID 的数量。这些表包括分区层次结构中的根表和中间表,如果它们是追加优化的,还包括它们关联的元数据表。这使得无需对根分区进行清理以减少表的年龄,并消除了可能不必要的对所有子表的清理。
额外的贡献模块

Greenplum Database 6 随这些附加的 PostgreSQL 和 Greenplumcontrib模块一起分发:

  • 自动解释
  • 磁盘配额
  • 模糊字符串匹配
  • gp_sparse_vector
  • 页面检查
  • sslinfo
  • PXF 版本 5.8.1

Greenplum Database 6.0 包括 PXF 5.8.1,它引入了以下新的和更改的特性:

PXF S3 连接器现在支持使用 Amazon S3 Select 服务访问 S3 上的 CSV 和 Parquet 数据。请参阅使用 S3 Select 在 S3 上读取 CSV 和 Parquet 数据。
PXF 捆绑了新的和升级的库以提供 Java 11 支持。
timestamptz在将 Parquet 数据写入外部数据源时 ,PXF 添加了对类型的支持。
PXF 现在提供了一个reset命令来将您的本地 PXF 服务器实例或集群中的所有 PXF 服务器实例重置为未初始化状态。请参阅重置 PXF。
PXF 不再支持DELIMITER在CREATE EXTERNAL TABLE命令LOCATIONURI 中指定 a。
其他 Greenplum 数据库特性
Greenplum 数据库 6.0 还包括这些特性以及与 5.x 版本相比的更改:

递归WITH查询(公用表表达式)不再被视为 Beta 功能,现在默认启用。请参阅Pivotal Greenplum 数据库文档中的WITH 查询(公用表表达式)。
VACUUM已更新为更轻松地跳过无法锁定的页面。此更改应大大降低VACUUM在等待其他会话时“卡住”的发生率。
appendoptimizedappendonly表存储选项的别名。
新的gp_resgroup_status_per_host和gp_resgroup_status_per_segment gp_toolkit视图,用于在每个主机和/或每个段的基础上显示资源组 CPU 和内存使用情况。
当启用主镜像或段镜像时,新的 gp_stat_replication 视图包含复制统计信息。该pg_stat_replication视图仅包含主复制统计信息。
适用于 Windows 的 Greenplum 客户端和加载器工具包中的 和 程序支持 OpenSSL 加密gpfdists。psql
Greenplum 6 包括一些与 PostgreSQL 9.6 聚合相关的性能改进。
适用于 Windows 的 Greenplum Client and Loader Tools 包中提供的gpload实用程序与 Greenplum Database 5 兼容。

更改的功能(6.0开始)

Greenplum 数据库 6.0 包括以下功能更改:

与以前的版本相比,Greenplum 数据库在重负载下的性能特征在版本 6 中发生了变化。特别是,您可能会注意到与 GPSS、WAL 复制和其他功能相关的更改在主要段上增加了 I/O 操作。鼓励所有客户使用真实数据执行负载测试,以确保新的 Greenplum 6 集群配置满足他们的性能需求。

  • gpbackup并且gprestore不再随 Greenplum Database 6 一起安装,而是在Pivotal Network上单独提供,并且可以与核心数据库安装分开升级。

  • Greenplum 6 使用新的跳跃一致性哈希算法将哈希数据值映射到 Greenplum 段。新算法确保在将新段添加到 Greenplum 6 集群后,只有那些散列到新段的行需要移动。Greenplum 6 散列具有类似于早期 Greenplum 版本的性能特征,但应该能够实现更快的数据库扩展。请注意,新算法比以前的算法更占用 CPU,因此COPY在 CPU 密集型系统上性能可能会有所下降。

  • 较旧的遗留散列函数表示为非默认散列运算符类,名为cdbhash_*_ops. 从早于 6.0 的 Greenplum 数据库升级时使用非默认操作符类。旧的运算符类相互兼容,但如果将旧的运算符类与新的运算符类混合,查询将需要重新分配运动。

  • 服务器配置参数gp_use_legacy_hashops控制在创建使用分布列定义的表时是使用传统散列函数还是使用默认散列函数。

  • 系统表现在gp_distribution_policy包含有关 Greenplum 数据库表和跨段分布表数据的策略的更多信息,包括分布散列函数的运算符类。

  • 该gpcheck实用程序不再包含在 Greenplum Database 6 中。

  • gpmovemirrors、gpaddmirrors和实用程序gprecoverseg的输入文件格式gpexpand已更改。

  • 新文件格式不使用冒号:作为分隔符,而是使用竖线字符|。例如,在以前的版本中,gpexpand输入文件中的一行类似于:

sdw5:sdw5-1:50011:/gpdata/primary/gp9:11:9:p

更新后的文件格式为:

sdw5|sdw5-1|50011|/gpdata/primary/gp9|11|9|p

此外,从其输入文件的行中gpaddmirrors删除前缀。mirror而前一个版本中的一行可能类似于:

mirror0=0:sdw1:sdw1-1:52001:53001:54001:/gpdata/mir1/gp0

修改后的格式为:

0=0|sdw1|sdw1-1|52001|53001|54001|/gpdata/mir1/gp0

  • Greenplum 使用直接分派来定位使用 的查询IS NULL,类似于过滤表分布键列的查询。

  • gpinitsystem指定备用主数据目录的选项从 更改-F为-S。该-S选项不再指定传播镜像。引入了一个新gpinitsystem选项来指定镜像配置:–mirror-mode={group|spread}.

  • 服务器配置参数的默认值log_rotation_size已从 0 更改为 1GB。这会更改默认日志轮换行为,以便在当前日志文件写入超过 1GB 或当前日志文件已打开 24 小时时打开新日志文件。

  • 服务器配置参数的默认值effective_cache_size已从 512MB 更改为 16GB。

  • 该gpssh-exkeys实用程序现在要求您已经设置了从主主机到集群中所有其他主机的无密码 SSH。然后运行gpssh-exkeys设置从每个主机到每个其他主机的无密码 SSH。

  • 智能gpstop关机行为已更改。以前,如果您运行gpstop -M smart(或只是gpstop),如果有任何活动的客户端连接,该实用程序将退出并显示一条消息。现在,gpstop在完成关机之前等待当前连接完成。如果任何连接在超时期限后仍然打开,或者如果您使用 CTRL-C 中断,则gpstop列出打开的连接并提示是继续等待连接完成,还是执行快速或立即关闭。默认超时时间为 120 秒,可以通过-t timeout_seconds选项进行更改。

  • 在pg_stat_activity和pg_stat_replication系统视图中,该procpid列已重命名为pid以匹配 PostgreSQL 9.2 中的相关更改。

  • 在pg_proc系统表中,该proiswin列被重命名为proiswindow并在表中重新定位以匹配pg_procPostgreSQL 8.4 中的系统表。

  • 使用SELECT DISTINCT且UNION/INTERSECT/EXCEPT不再一定返回排序输出的查询。以前,这些查询总是使用排序/唯一处理删除重复的行。他们现在实现散列以符合 PostgreSQL 8.4 中引入的行为;此方法不会产生排序输出。如果您的应用程序需要这些查询的排序输出,请更改查询以使用显式ORDER BY子句。请注意,SELECT DISTINCT ON从不使用散列,因此其行为与以前的版本没有变化。

  • 在gp_toolkit架构中,视图gp_resgroup_config不再包含列proposed_concurrency、proposed_memory_limit和。proposed_memory_shared_quotaproposed_memory_spill_ratio

  • 在pg_resgroupcapability系统表中,该proposed列已被删除。

  • 系统pg_database表datconfig列已删除。Greenplum 数据库现在使用pg_db_role_setting系统表来跟踪每个数据库和每个角色服务器的配置设置(PostgreSQL 9.0)。

  • 删除了pg_aggregate系统表aggordered列,并向表中添加了几个新列,以支持使用 Postgres 规划器 (PostgreSQL 9.4) 的有序集聚合和移动聚合。ALTER/CREATE/DROP AGGREGATESQL 命令签名也已更新以反映目录pg_aggregate更改。

  • 系统pg_authid表rolconfig列已删除。Greenplum 数据库现在使用pg_db_role_setting系统表来跟踪每个数据库和每个角色服务器的配置设置(PostgreSQL 9.0)。

  • 在创建和更改具有分布列的表时,您现在可以指定用于跨段实例分布数据的散列函数。

  • Pivotal Greenplum Database 6从DDL (PostgreSQL 8.4)中删除了该RECHECK选项。Greenplum 现在可以在运行时动态确定索引运算符是否“有损”。ALTER OPERATOR FAMILYCREATE OPERATOR CLASS

  • 修改了与运算符相关的系统目录表以支持运算符系列、兼容性和类型(排序或搜索)。

  • HyperLogLog (HLL) 函数、聚合和类型的系统目录表条目被修改为名称前缀为gp_. 重命名 HLL 函数可以防止与使用 HLL 的外部 Greenplum 数据库扩展发生名称冲突。为使用内置 Greenplum 数据库 HLL 函数而编写的任何用户代码都必须更新为使用新gp_名称。

  • Greenplum 先前版本中的“遗留优化器”现在在代码和文档中都称为 Postgres 规划器。

  • 自 PostgreSQL 9.1 中引入可序列化快照隔离 (SSI) 模式以来,Greenplum 数据库 6.0 中的事务隔离级别已更改为与 PostgreSQL 事务隔离级别保持一致。新的 SSI 模式(未在 Greenplum 数据库中实现)通过监视并发事务和回滚可能引入序列化异常的事务来提供真正的可序列化性。现有的快照隔离 (SI) 模式保证事务在数据库的单个、一致的快照上操作,但不能保证在以任何给定顺序执行一组并发事务时得到一致的结果。

  • Greenplum 数据库 6.0 现在允许在REPEATABLE READSQL 语句中使用关键字,例如BEGIN和SET TRANSACTION。PostgreSQL 9.1 或更高版本中的SERIALIZABLE事务使用新的 SSI 模式。SERIALIZABLEGreenplum 数据库 6.0 中的事务回退到REPEATABLE READ,使用 SI 模式。下表显示了 Greenplum 数据库 6.0 和 PostgreSQL 9.1 中每个事务隔离级别的 SQL 标准合规性。

表空间

  • CREATE TABLESPACE命令已更改。

该命令不再需要使用该gpfilespace实用程序创建的文件空间。
该FILESPACE条款已被删除。
添加了该WITH子句以允许为特定段实例指定表空间位置。
共享相同内容 ID 的主镜像对必须使用相同的表空间位置。

  • SQL 命令有新的ALTER SEQUENCE子句START [WITH] start和OWNER TO new_owner(PostgreSQL 8.4)。该START子句设置将来命令将使用的起始值ALTER SEQUENCE RESTART,但不会更改序列的当前值。该OWNER TO子句更改序列的所有者。

  • ALTER TABLESQL 命令有一个将系统列添加到表的子句(PostgreSQL 8.4 )SET WITH OIDS。oid请注意,强烈建议不要将 oid 与 Greenplum 数据库表一起使用。

  • CREATE DATABASESQL 命令具有新参数,LC_COLLATE并LC_CTYPE为新数据库指定排序顺序和字符分类。

  • CREATE FUNCTIONSQL 命令有一个 new 关键字WINDOW,表示该函数是窗口函数而不是普通函数(PostgreSQL 8.4)。

  • 在 SQL 命令中指定索引名称CREATE INDEX现在是可选的。Greenplum 数据库从表名和索引列构造一个默认索引名。

  • 在该命令中,Greenplum 数据库解析器允许在子句与其对应的子句之间以及连续子句之间CREATE TABLE放置逗号。使用此未记录的语法将生成弃用警告消息。SUBPARTITION TEMPLATESUBPARTITION BYSUBPARTITION BY

  • 现在需要超级用户权限才能创建协议。请参阅创建协议。

  • CREATE TYPESQL 命令有一个新子句,它从现有类型(PostgreSQL 8.4)LIKE=type复制新类型的表示(INTERNALLENGTH、PASSEDBYVALUE、ALIGNMENT和)。STORAGE

  • GRANTSQL 命令具有新的语法来授予对截断、外部数据包装器和外部数据服务器 (PostgreSQL 8.4) 的权限。

  • SQL 命令有LOCK一个可选ONLY关键字(PostgreSQL 8.4)。指定后,表将被锁定,而不锁定任何继承自它的表。

  • 在事务之外使用LOCK table语句会在 Greenplum 数据库 6.0 中引发错误。在早期版本中,执行语句,尽管它仅在事务内部执行时才有用。

  • 和SQL 命令支持 SQL 2008SELECT和语法( PostgreSQL 8.4)。这些子句提供了另一种语法来限制查询返回的结果。VALUESOFFSETFETCH

  • 该FROM子句可以从SELECT命令中省略,但 Greenplum 数据库不再允许查询省略该FROM子句并引用数据库表。

  • 和SQL 关键字已从保留更改为未保留,ROWS并且RANGE可以用作表或列名而无需引用。

  • 在 Greenplum 6 中,对具有后代的外部表的查询将默认递归到后代表中。这是与以前的 Greenplum 数据库版本不同的变化,它从未递归到后代中。要获得 Greenplum 6 中的先前行为,您必须在查询中包含ONLY关键字以将查询限制为父表。

  • 服务器配置参数的默认值optimizer_force_multistage_agg已从 更改true为false。GPORCA 现在默认情况下会根据成本为标量不同的合格聚合选择一阶段或两阶段聚合计划。

  • SQL 命令有TRUNCATE一个可选ONLY关键字(PostgreSQL 8.4)。指定时,将截断表而不截断从它继承的任何表。

  • 命令行createdb实用程序具有新选项-l( --locale)、–lc-collate和 ,–lc-ctype用于指定数据库 (PostgreSQL 8.4) 的区域设置和字符分类。

  • 和实用程序有一个新选项pg_dump,指示实用程序在连接到数据库之后和开始转储或恢复操作之前执行 (PostgreSQL 8.4)。pg_dumpallpg_restore–role=rolenameSET ROLE rolename

  • 和命令pg_dump行pg_dumpall实用程序有一个新选项–lock-wait-timeout=timeout(PostgreSQL 8.4)。指定后,如果实用程序无法在指定的毫秒数内获取共享表锁,则转储将失败,而不是无限期地等待。

  • 和命令行选项已从-d和实用程序中删除。相应的长版本,并且仍然受支持。添加了一个新选项,供就地升级实用程序使用。-Dpg_dumppg_dumpall–inserts–column-inserts–binary-upgrade

  • ( -w)–no-password选项已添加到pg_dump、pg_dumpall和pg_restore实用程序中。

  • 该选项将从实用程序-D中删除。gpexpand扩展模式将在postgres数据库中创建。

  • 该gpstate实用程序有一个新-x选项,它显示正在进行的系统扩展的详细信息。gpstate -s如果没有指定选项,gpstate还会报告系统扩展是否正在进行。

  • 该pg_restore实用程序有一个新的选项-j( --number-of-jobs) 参数。此选项可以通过同时运行加载数据、创建索引和创建约束等任务来减少恢复大型数据库的时间。

  • 该vacuumdb实用程序有一个新的-F( --freeze) 选项来冻结行事务信息。

  • ALTER DATABASE包括SET TABLESPACE更改默认表空间的子句。

  • CREATE DATABASE包括用于设置新数据库的排序规则和字符分类的COLLATE和选项。CTYPE

  • 在gp_toolkit模式中,gp_workfile_由于 Greenplum Database 6 工作文件的增强,视图已经改变。有关视图的信息,请参阅检查查询磁盘溢出空间使用情况。gp_workfile_

  • 服务器配置参数gp_workfile_compress_algorithm已更改为gp_workfile_compression. 当启用工作文件压缩时,Greenplum 数据库使用 Zstandard 压缩。

  • Oracle Compatibility Functions 现在作为一个扩展在 Greenplum 数据库中可用,基于https://github.com/orafce/orafce上的 PostgreSQL orafce 项目。您现在无需执行 SQL 脚本来在数据库中安装兼容性功能,而是执行 SQL 命令CREATE EXTENSION orafce。Greenplum 数据库 6.0 orafce 扩展基于 orafce 3.7 版本。有关Greenplum 数据库兼容性函数和 PostgreSQL orafce 扩展之间差异的信息,请参阅Oracle 兼容性函数。

  • Greenplum Database 6 支持将数据类型的表列指定citext为分布键。

  • Greenplum Database 6 提供了一个客户端和加载器工具包,您可以下载并安装在客户端系统上。以前的 Greenplum 版本提供了单独的客户端和加载程序包。有关 Greenplum 6 客户端包的更多信息,请参阅平台要求文档中的客户端工具。

  • Greenplum 数据库 6 包括来自 PostgreSQL 的模块和来自 Greenplum 的contrib模块。这些模块中的大多数现在都打包为扩展,您可以使用CREATE EXTENSION name命令在 Greenplum 中注册扩展。有关在 Greenplum 数据库 6 中注册模块的更多信息,请参阅安装附加提供的模块。contrib

  • 当启用 Greenplum 数据库高可用性时,主分段实例使用基于预写日志 (WAL) 的流复制与镜像分段实例保持同步。请参阅段镜像概述。

  • gp_stat_replication 视图包含启用主镜像或段镜像时的复制统计信息。

  • 在以前的版本中,段镜像采用物理文件复制方案。

  • 在gp_segment_configuration表中,replication_port已删除。datadir已添加该列以显示段实例数据目录。列mode值现在是 s(同步)或 n(不同步)。使用gp_stat_replication视图确定同步状态。

  • 用于 Windows 的 Greenplum Database 6 客户端和加载器工具包不支持将gpfdist程序作为本地 Windows 服务运行。

删除的功能

  • Pivotal Greenplum Database 6.0 移除了这些特性:

  • 该gpseginstall实用程序不再包括在内。您必须在每个 Segment 主机上安装 Greenplum 软件 RPM,如安装 Greenplum 数据库软件中所述。

  • 该gptransfer实用程序不再包括在内;用于gpcopy提供的所有功能gptransfer。

  • gp_fault_strategy不再使用系统表 。Greenplum 数据库现在使用gp_segment_configuration系统表来确定是否启用了镜像。

  • Pivotal Greenplum Database 6 删除了gpcrondump、gpdbrestore和gpmfr管理实用程序。使用gpbackup和gprestore来备份和恢复 Greenplum 数据库。

  • Pivotal Greenplum Database 6 不再支持 Veritas NetBackup。

  • Pivotal Greenplum Database 6 不再支持使用直接 I/O 来绕过文件系统缓存中的内存缓冲以进行备份。

  • Pivotal Greenplum Database 6 不再支持gphdfs外部表协议来访问 Hadoop 系统。在版本 6 中使用 Greenplum 平台- 扩展框架 (PXF) 访问 Hadoop。有关使用外部表协议的信息,请参阅pxf://协议。pxf

  • Pivotal Greenplum Database 6 不再支持 SSLv3。

  • Pivotal Greenplum Database 6 删除了以下服务器配置参数:

gp_analyze_relative_error
gp_backup_directIO
gp_backup_directIO_read_chunk_mb
gp_connections_per_thread
gp_enable_sequential_window_plans
gp_idf_deduplicate
gp_snmp_community
gp_snmp_monitor_address
gp_snmp_use_inform_or_trap
gp_workfile_checksumming
  • Greenplum 数据库 6 中删除了 未记录的gp_cancel_query()函数和配置参数gp_cancel_query_print_log和。gp_cancel_query_delay_time
  • 该string_agg(expression)函数已从 Greenplum 6 中删除。该函数将文本值连接成一个字符串。该string_agg(expression, delimiter)功能仍受支持。
  • Pivotal Greenplum Database 6 不再支持配置 Greenplum 数据库系统以在某些数据库事件发生时触发 SNMP(简单网络管理协议)警报或向系统管理员发送电子邮件通知的能力。使用 Pivotal Greenplum Command Center 警报来检测和响应 Greenplum 系统中发生的事件。
  • Pivotal Greenplum Database 6 删除了该gpfilespace实用程序。该CREATE TABLESPACE命令不再需要使用该实用程序创建的文件空间。
  • Pivotal Greenplum Database 6 不再自动从已弃用的时间戳格式 YYYYMMDDHH24MISS 转换文本。在以前的 Greenplum 数据库版本中无法明确解析该格式。PostgreSQL 9.4 不支持该格式。

例如,此命令在 Greenplum Database 6 中返回错误。在以前的版本中,返回时间戳。

select to_timestamp('20190905140000');
  • 在 Greenplum Database 6 中,这个命令返回一个时间戳。
select to_timestamp('20190905140000','YYYYMMDDHH24MISS');
  • Pivotal Greenplum Database 6 从 、 和 实用程序中删除了该选项–ignore-version。pg_dumppg_dumpallpg_restore

  • 该gpcheck实用程序不再包括在内。

已弃用的功能

  • 弃用的功能将在 Greenplum 数据库的未来主要版本中删除。VMware Tanzu Greenplum 6.x 弃用:

  • gpsys1实用程序 。
    该analzyedb选项–skip_root_stats(自 6.2 起已弃用)。

  • 如果指定了该选项,则会发出警告,指出该选项将被忽略。

  • 服务器配置参数gp_statistics_use_fkeys(自 6.2 起已弃用)。

  • 服务器配置参数gp_ignore_error_table(自 6.0 起已弃用)。

  • 为避免 Greenplum 数据库语法错误,请将此参数的值设置为true当您运行执行包含现已删除的 Greenplum 数据库 4.3.x子句CREATE EXTERNAL TABLE的命令的应用程序时。COPYINTO ERROR TABLE

  • 在命令中指定=>为操作员名称CREATE OPERATOR(自 6.0 起已弃用)。

  • Greenplum 外部表 C API(自 6.0 起已弃用)。

  • 鼓励使用此 API 的任何开发人员使用新的 Foreign Data Wrapper API 代替它。

  • 逗号放置在SUBPARTITION TEMPLATE子句与其对应SUBPARTITION BY子句之间,以及命令中的连续SUBPARTITION BY子句之间CREATE TABLE(自 6.0 起已弃用)。

  • 使用此未记录的语法将生成弃用警告消息。

  • 时间戳格式 YYYYMMDDHH24MISS(自 6.0 起已弃用)。

  • 这种格式在以前的 Greenplum 数据库版本中无法明确解析,并且在 PostgreSQL 9.4 中不受支持。

  • createlang和实用程序(自 6.0 起已droplang弃用)。

  • 系统视图(自 6.0 起已pg_resqueue_status弃用)。

  • 请改用gp_toolkit.gp_resqueue_status视图。

  • 使用and命令创建临时表时的GLOBALand修饰符(自 6.0 起已弃用)。LOCALCREATE TABLECREATE TABLE AS

  • 这些关键字用于 SQL 标准兼容性,但在 Greenplum 数据库中无效。

  • 在创建或更改表时使用WITH OIDS或oids=TRUE分配 OID 系统列(自 6.0 起已弃用)。

  • 允许超级用户指定SQL_ASCII编码而不考虑区域设置(自 6.0 起已弃用)。

  • 当与语言环境编码不兼容的数据存储在数据库中时,此选择可能会导致字符串函数的错误行为。

  • @@@文本搜索运算符(自 6.0 起已弃用)。

  • 此运算符当前是运算符的同义词@@。

  • 命令中选项列表的无括号语法VACUUM(自 6.0 起已弃用)。

  • 此语法要求以特定顺序指定命令的选项。

  • plain pgbouncer身份验证类型 ( auth_type= plain)(自 4.x 起已弃用)。

三.常用查询

收藏:系统表查询语句

四.PostgreSQL手册

postgresql手册地址

  • 内存
参数描述使用
shared_buffers (integer)设置数据库服务器将使用的共享内存缓冲区量< 40%* RAM + 高速缓存机制
huge_pages (enum)启用/禁用巨型内存页面的使用try(默认)、on、 和off当huge_pages被设置为try时,服务器将 尝试使用巨型页面,如果失败则会转回去使用正常的分配。如果设置为 on,使用巨型页面失败会阻止服务器启动。如果设置为 off,则不会使用巨型页面。
max_prepared_transactions (integer设置可以同时处于"prepared"状态的事务的最大数目,这个参数只能在服务器启动时设置如果你正在使用预备事务,你将希望把max_prepared_transactions至少设置为max_connections一样大,因此每一个会话可以有一个预备事务待处理。
work_mem (integer)指定在写到临时磁盘文件之前被内部排序操作和哈希表使用的内存量。在选择这个值时一定要记住这一点。ORDER BY、DISTINCT和归并连接都要用到排序操作。哈希连接、基于哈希的聚集以及基于哈希的IN子查询处理中都要用到哈希表。
maintenance_work_mem (integer)指定在维护性操作(例如VACUUM、CREATE INDEX和ALTER TABLE ADD FOREIGN KEY)中使用的 最大的内存量把这个数值设置得比work_mem大很多是安全的。 更大的设置可以改进清理和恢复数据库转储的性能
  • 当运行一个后备服务器时,这个参数必须至少与主服务器上的一样大。否则,后备服务器上将不会执行查询|

  • shared_buffers :为了能把对写大量新的或改变的数据的处理分布在一个较长的时间段内, shared_buffers更大的 设置通常要求对max_wal_size也做相应增加。

  • huge_pages当前,只有 Linux 上支持这个特性。在其他系统上这个参数被设置为 try时,它会被忽略。

  • maintenance_work_mem (integer)注意当自动清理运行时,可能会分配最高达这个内存的 autovacuum_max_workers倍, 因此要小心不要把该默认值设置得太高。 通过独立地设置autovacuum_work_mem 可能会对控制这种情况有所帮助。

在这里插入图片描述

原网站

版权声明
本文为[xcSpark]所创,转载请带上原文链接,感谢
https://blog.csdn.net/u010895512/article/details/125565132