2024年2月10日发(作者:)

GP服务启停

su - gpadmin

gpstart #正常启动

gpstop #正常关闭

gpstop -M fast #快速关闭

gpstop –r #重启

gpstop –u #重新加载配置文件

登陆与退出Greenplum

#正常登陆

psql gpdb

psql -d gpdb -h gphostm -p 5432 -U gpadmin

#使用utility方式

PGOPTIONS="-c gp_session_role=utility" psql -h -d dbname hostname -p

port

#退出

在psql命令行执行q

参数查询

psql -c 'SHOW ALL;' -d gpdb

gpconfig --show max_connections

创建数据库

createdb -h localhost -p 5432 dhdw

创建GP文件系统

# 文件系统名

gpfsdw

# 子节点,视segment数创建目录

mkdir -p /gpfsdw/seg1

mkdir -p /gpfsdw/seg2

chown -R gpadmin:gpadmin /gpfsdw

# 主节点

mkdir -p /gpfsdw/master

chown -R gpadmin:gpadmin /gpfsdw

gpfilespace -o gpfilespace_config

gpfilespace -c gpfilespace_config

创建GP表空间

psql gpdb

create tablespace TBS_DW_DATA filespace gpfsdw;

SET default_tablespace = TBS_DW_DATA;

删除GP数据库

gpdeletesystem -d /gpmaster/gpseg-1 -f

查看segment配置

select * from gp_segment_configuration;

文件系统

select * from pg_filespace_entry;

磁盘、数据库空间

SELECT * FROM gp__disk_free ORDER BY dfsegment;

SELECT * FROM gp__size_of_database ORDER BY sodddatname;

日志

SELECT * FROM gp_toolkit.__gp_log_master_ext;

SELECT * FROM gp_toolkit.__gp_log_segment_ext;

表描述

/d+

表分析

VACUUM ANALYZE tablename;

表数据分布

SELECT gp_segment_id, count(*) FROM GROUP BY

gp_segment_id;

表占用空间

SELECT relname as name, sotdsize/1024/1024 as size_MB, sotdtoastsize

as toast, sotdadditionalsize as other

FROM gp__size_of_table_disk as sotd, pg_class

WHERE d = pg_ ORDER BY relname;

索引占用空间

SELECT soisize/1024/1024 as size_MB, relname as indexname

FROM pg_class, gp__size_of_index

WHERE pg_ = gp_size_of_

AND pg_d='i';

OBJECT的操作统计

SELECT schemaname as schema, objname as table, usename as role,

actionname as action, subtype as type, statime as time

FROM pg_stat_operations

WHERE objname = '';

SELECT locktype, database, e, on, ctionid,

ction, , , d, t_query

FROM pg_locks l, pg_class c, pg_stat_activity a

WHERE on=

AND =d

ORDER BY e;

队列

SELECT * FROM pg_resqueue_status;

加载(LOAD)数据到Greenplum数据库

gpfdist外部表

# 启动服务

gpfdist -d /share/txt -p 8081 –l /share/txt/ &

# 创建外部表,分隔符为’/t’

drop EXTERNAL TABLE TD_APP_LOG_BUYER;

CREATE EXTERNAL TABLE TD_APP_LOG_BUYER (

IP text,

ACCESSTIME text,

REQMETHOD text,

URL text,

STATUSCODE int,

REF text,

name text,

VID text)

LOCATION ('gpfdist://gphostm:8081/')

FORMAT 'TEXT' (DELIMITER E'/t'

FILL MISSING FIELDS) SEGMENT REJECT LIMIT 1 percent;

# 创建普通表

create table test select * from TD_APP_LOG_BUYER;

# 索引

# CREATE INDEX idx_test ON test USING bitmap (ip);

# 查询数据

select ip , count(*) from test group by ip order by count(*);

gpload

# 创建控制文件

# 加载数据

gpload -f my_

copy

COPY country FROM '/data/gpdb/country_data'

WITH DELIMITER '|' LOG ERRORS INTO err_country

SEGMENT REJECT LIMIT 10 ROWS;

从Greenplum数据库卸载(UNLOAD)数据

gpfdist外部表

# 创建可写外部表

CREATE WRITABLE EXTERNAL TABLE unload_expenses

( LIKE expenses )

LOCATION ('gpfdist://etlhost-1:8081/',

'gpfdist://etlhost-2:8081/')

FORMAT 'TEXT' (DELIMITER ',')

DISTRIBUTED BY (exp_id);

# 写权限

GRANT INSERT ON writable_ext_table TO ;

# 写数据

INSERT INTO writable_ext_table SELECT * FROM regular_table;

copy

COPY (SELECT * FROM country WHERE country_name LIKE 'A%') TO

'/home/gpadmin/a_list_';

执行sql文件

psql gpdbname –f

或者psql登陆后执行

i

如何杀掉greenplum、postgresql的会话进程

在linux命令行执行kill -s SIGTERM 杀掉该会话的进程

用函数杀sql

对于查询SQL

select pg_cancel_backend(procpid);

其他SQL

select pg_terminate_backend(procpid);

调整Greenplum的SQL查询计划

在oracle中使用hint可以调整SQL的执行计划,在postgresql可以使用如下的方法进行调整

使用set

enable_seqscan是否走全表扫描

enable_hashjoin是否允许走hash连接

enable_nestloop是否允许走nestloop连接

enable_mergejoin是否允许走合并连接

enable_tidscan是否允许走tid扫描(类似oracle中的按rowid访问)

enable_bitmapscan是否允许走bitmap扫描

enable_hashagg是否允许走hash聚集(也就是做group by时)

enable_indexscan是否允许走索引

enable_sort是否允许走排序

constraint_exclusion是否允许走分区

Greenplum参数配置优化

# 查询参数

psql -c'SHOW ALL;' -d gpdb

gpconfig--show max_connections

# 修改参数配置命令

gpconfig-c -v

比如:gpconfig-c log_statement -v DDL

# 使参数生效

gpstop –r

# 修改默认搜索路径

# 默认dbtest

ALTERDATABASE dhgp SET search_path TO dbtest;

# 设置work_mem 64MB

ALTERDATABASE dhgp SET work_mem TO 65536;

另一种写法:SETwork_mem TO '64MB'

# 设置maintenance_work_mem 128MB

ALTER DATABASEdhgp SET maintenance_work_mem TO 131072;

# 设置max_work_mem 4G

ALTERDATABASE dhgp SET max_work_mem TO 4194304;

# 设置statement_mem

ALTERDATABASE dhgp SET statement_mem TO '256MB';

# 12G,需要配合修改/etc/

ALTERDATABASE dhgp SET effective_cache_size TO 1572864;

# 在各个节点的文件中配置,master和每个segment的可以使用的cpu个数

Master:gp_resqueue_priority_cpucores_per_segment 8

Segment:2

# checkpoint_segments

32-256(512MB-4GB)

查看数据库表清单(包括临时表) PG_TABLES

主表与分区表 pg_partitions

字段清单 information_s

视图 pg_views

字典schema : information_schema