greenplum

Greenplum -- 资源队列管理

孤者浪人 提交于 2019-11-25 23:51:33
前言 在Greenplum中,每个用户都会对应到资源队列中,资源队列张很多场景有很好应用,例如,很多人共用数据库,需要对不同的人开发不通的队列,控制资源,默认不指定则对应到pg_default资源队列 对添加进来的sql,并不是所有的都会被资源队列所限制,默认情况就: select、select into、create table name as select、declare cursor会被限制在资源队列中,如果设置参数resource_select_only = off(在postgresql.conf文件),那么insert、update、delete 也是会被限制在资源队列中 一、资源队列常用方法 1.1、查看资源队列情况: testdb=# select from pg_resqueue_attributes; active_statements:同时可执行的sql个数 max_cost:每条sql最大消耗的cost数量,也就是explain查看的时候可以看到的cost min_cost:最少cost数量,如果sql需要的cost小与这个,无论什么情况都会马上执行 cost_over_commit:true时,在资源队列没有其他sql运行时,超过max_cost的sql也会被执行,false时,只要超过了max_cost就直接报错 priority:CPU优先级

Greenplum配置参数优化:5.10.2

安稳与你 提交于 2019-11-25 22:15:46
Greenplum参数配置优化: 查询参数 gpconfig --show max_connections 修改参数配置命令 gpconfig-c <parameter name> -v <parameter value> 比如:gpconfig-c log_statement -v DDL 删除配置 gpconfig -r <parameter name> work_mem work_mem(,global,物理内存的2%-4%),segment用作sort,hash操作的内存大小 当PostgreSQL对大表进行排序时,数据库会按照此参数指定大小进行分片排序,将中间结果存放在临时文件中,这些中间结果的临时文件最终会再次合并排序,所以增加此参数可以减少临时文件个数进而提升排序效率。当然如果设置过大,会导致swap的发生,所以设置此参数时仍需谨慎。 查看现有配置值 gpconfig -s work_mem Values on all segments are consistent GUC : work_mem Master value: 32MB Segment value: 32MB 修改配置 gpconfig -c work_mem -v 128MB 另一种写法:SET work_mem TO '64MB' 配置成功返回: gpadmin-[INFO]:-completed

GreenPlum数据库故障恢复测试

梦想与她 提交于 2019-11-25 22:15:38
本文介绍gpdb的master故障及恢复测试以及segment故障恢复测试。 环境介绍: Gpdb版本:5.5.0 二进制版本 操作系统版本: centos linux 7.0 Master segment: 192.168.1.225/24 hostname: mfsmaster Stadnby segemnt: 192.168.1.227/24 hostname: server227 Segment 节点1: 192.168.1.227/24 hostname: server227 Segment 节点2: 192.168.1.17/24 hostname: server17 Segment 节点3: 192.168.1.11/24 hostname: server11 每个segment节点上分别运行一个primary segment和一个mirror segment 一、查看原始状态 select * from gp_segment_configuration; $ gpstate -f 20180320:13:50:38:021814 gpstate:mfsmaster:gpadmin-[INFO]:-Starting gpstate with args: -f 20180320:13:50:38:021814 gpstate:mfsmaster:gpadmin-

GreenPlum 5.10.0 集群部署

时光毁灭记忆、已成空白 提交于 2019-11-25 22:15:27
第1部分 初始化系统配置 1.1 部署环境 序号 ip地址 主机名 内存 系统版本 内核版本 1 192.168.61.61 gpmaster61 16Gb CentOS 7.5.1804 3.10.0-862.9.1.el7.x86_64 2 192.168.61.62 gpsegment62 16Gb CentOS 7.5.1804 3.10.0-862.9.1.el7.x86_64 3 192.168.61.63 gpsegment63 16Gb CentOS 7.5.1804 3.10.0-862.9.1.el7.x86_64 4 192.168.61.64 gpsegment64 16Gb CentOS 7.5.1804 3.10.0-862.9.1.el7.x86_64 5 192.168.61.65 gpstandby65 16Gb CentOS 7.5.1804 3.10.0-862.9.1.el7.x86_64 1.2 设置主机名、同步时间 # 192.168.61.61 hostnamectl set-hostname gpmaster61 ntpdate -u ntp1.aliyun.com # 192.168.61.62 hostnamectl set-hostname gpsegment62 ntpdate -u ntp1.aliyun.com # 192

Greenplum -- 最全分区表操作

左心房为你撑大大i 提交于 2019-11-25 22:15:21
一、Greenplum 分区原理 分区表意思是将一个大表在物理上分割成几块,GPDB中的分区表和PostgreSQL中实现原理一样,都是用过表继承、约束来实现。但是与PostgreSQL也有所不同,在PostgreSQL中,一个父表,多个子表来实现分区表,需要手动向子表插入数据,如果向父表插入数据,则直接会被插入到父表中,在GPDB中,可以直接想父表插入数据,便可以根据约束直接自动向对应的子表插入数据,当分区子表不存在时,插入失败 二、分区表创建 2.1、范围分区(range) 根据分区字段的值范围区间来分区,每一个分区就是一个子表 eg: create table test_partition_range ( id int, name varchar(64), fdate varchar(64) ) distributed by (id) partition by range(fdate) ( partition p1 start ('2017-01-01') inclusive end ('2017-01-31') exclusive, partition p2 start ('2017-02-01') inclusive end ('2017-02-29') exclusive, default partition default_p ); inclusive :指定包含

扩展segment数量

China☆狼群 提交于 2019-11-25 20:30:04
第一部分 扩展Greenplum segment数量 1. 将主机加入集群(如果在原有主机扩展,不需要这一步) 环境配置,例如OS kernel 参数; 创建gp管理用户; ssh key的交换(使用gpssh-exkeys -e exist_hosts -x new_hosts); greenplum bin软件的拷贝; 规划segment 数据目录; 使用gpcheck检查 (gpcheck -f new_hosts ); 使用gpcheckperf检查性能 (gpcheckperf -f new_hosts_file -d /data1 -d /data2 -v) 2. 初始化segment并加入集群 这一步主要做的是 产生配置文件(gpexpand -f new_hosts_file),也可以自己写配置文件; 在指定目录初始化segment数据库(gpexpand -i cnf -D dbname ); 将新增的segment信息添加到master元表; 扩展失败了怎么处理? 3. 重分布表 规划表的重分布优先级顺序; 将表数据根据新的 segments 重新分布。 分析表; 第二部分 实例演示 1.一种是在集群中的原有机器中添加segment。 1.1 测试环境 4台虚拟机,每台虚拟机16G内存,跑8个segment。 查看配置 test=# select * from