当前位置:文档之家› GP简明使用手册

GP简明使用手册

GP服务启停su - gpadmingpstart #正常启动gpstop #正常关闭gpstop -M fast #快速关闭gpstop –r #重启gpstop –u #重新加载配置文件登陆与退出Greenplum#正常登陆psql gpdbpsql -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 gpdbgpconfig --show max_connections创建数据库createdb -h localhost -p 5432 dhdw创建GP文件系统# 文件系统名gpfsdw# 子节点,视segment数创建目录mkdir -p /gpfsdw/seg1mkdir -p /gpfsdw/seg2chown -R gpadmin:gpadmin /gpfsdw# 主节点mkdir -p /gpfsdw/masterchown -R gpadmin:gpadmin /gpfsdwgpfilespace -o gpfilespace_configgpfilespace -c gpfilespace_config创建GP表空间psql gpdbcreate 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_toolkit.gp_disk_free ORDER BY dfsegment;SELECT * FROM gp_toolkit.gp_size_of_database ORDER BY sodddatname;日志SELECT * FROM gp_toolkit.__gp_log_master_ext;SELECT * FROM gp_toolkit.__gp_log_segment_ext;表描述/d+ <tablename>表分析VACUUM ANALYZE tablename;表数据分布SELECT gp_segment_id, count(*) FROM <table_name> GROUP BYgp_segment_id;表占用空间SELECT relname as name, sotdsize/1024/1024 as size_MB, sotdtoastsize as toast, sotdadditionalsize as otherFROM gp_toolkit.gp_size_of_table_disk as sotd, pg_classWHERE sotd.sotdoid = pg_class.oid ORDER BY relname;索引占用空间SELECT soisize/1024/1024 as size_MB, relname as indexnameFROM pg_class, gp_toolkit.gp_size_of_indexWHERE pg_class.oid = gp_size_of_index.soioidAND pg_class.relkind='i';OBJECT的操作统计SELECT schemaname as schema, objname as table, usename as role, actionname as action, subtype as type, statime as timeFROM pg_stat_operationsWHERE objname = '<name>';锁SELECT locktype, database, c.relname, l.relation, l.transactionid, l.transaction, l.pid, l.mode, l.granted, a.current_queryFROM pg_locks l, pg_class c, pg_stat_activity aWHERE l.relation=c.oidAND l.pid=a.procpidORDER BY c.relname;队列SELECT * FROM pg_resqueue_status;加载(LOAD)数据到Greenplum数据库gpfdist外部表# 启动服务gpfdist -d /share/txt -p 8081 –l /share/txt/gpfdist.log &# 创建外部表,分隔符为’/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/xxx.txt')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_load.ymlcopyCOPY country FROM '/data/gpdb/country_data'WITH DELIMITER '|' LOG ERRORS INTO err_countrySEGMENT REJECT LIMIT 10 ROWS;从Greenplum数据库卸载(UNLOAD)数据gpfdist外部表# 创建可写外部表CREATE WRITABLE EXTERNAL TABLE unload_expenses( LIKE expenses )LOCATION ('gpfdist://etlhost-1:8081/expenses1.out','gpfdist://etlhost-2:8081/expenses2.out')FORMAT 'TEXT' (DELIMITER ',')DISTRIBUTED BY (exp_id);# 写权限GRANT INSERT ON writable_ext_table TO <name>;# 写数据INSERT INTO writable_ext_table SELECT * FROM regular_table;copyCOPY (SELECT * FROM country WHERE country_name LIKE 'A%') TO'/home/gpadmin/a_list_countries.out';执行sql文件psql gpdbname –f yoursqlfile.sql或者psql登陆后执行\i yoursqlfile.sql如何杀掉greenplum、postgresql的会话进程在linux命令行执行kill -s SIGTERM <procid>杀掉该会话的进程用函数杀sql对于查询SQLselect pg_cancel_backend(procpid);其他SQLselect pg_terminate_backend(procpid);调整Greenplum的SQL查询计划在oracle中使用hint可以调整SQL的执行计划,在postgresql可以使用如下的方法进行调整使用set<option> to off/on;调整查询计划,参数如下: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 gpdbgpconfig--show max_connections# 修改参数配置命令gpconfig-c <parameter name> -v <parameter value>比如:gpconfig-c log_statement -v DDL# 使参数生效gpstop –r# 修改默认搜索路径# 默认dbtestALTERDATABASE dhgp SET search_path TO dbtest;# 设置work_mem 64MBALTERDATABASE dhgp SET work_mem TO 65536;另一种写法:SETwork_mem TO '64MB'# 设置maintenance_work_mem 128MBALTER DATABASEdhgp SET maintenance_work_mem TO 131072; # 设置max_work_mem 4GALTERDATABASE dhgp SET max_work_mem TO 4194304;# 设置statement_memALTERDATABASE dhgp SET statement_mem TO '256MB';# 12G,需要配合修改/etc/sysctl.conf kernel.shmmaxALTERDATABASE dhgp SET effective_cache_size TO 1572864;# 在各个节点的postgres.conf文件中配置,master和每个segment的可以使用的cpu 个数Master:gp_resqueue_priority_cpucores_per_segment 8Segment:2# checkpoint_segments32-256(512MB-4GB)查看数据库表清单(包括临时表)PG_TABLES主表与分区表pg_partitions字段清单i nformation_schema.columns视图 pg_views字典schema : information_schema。

相关主题