GreenPlum 数据库集群安装说明及使用手册v1.0
GreenPlum安装笔记-图文

GreenPlum安装笔记-图文2022/6/1322:51GP架构_1与GreenPlum类似的产品:IBMNITIZA(国内没人用)Terndata2007年被EMC收购MPP架构:海量并行处理MaivelyParallelProceingharenothing模式,每一个节点不进行资源共享,集群中每个节点有独立的CPU、内存、存储、总线等。
SMP架构:ymmetricmaproceing对称多处理系统:耦合的多处理系统,共享总线、内存、IO资源,传统的ORCKLE,DB2是非常典型的产品ORACLE_RAC处于半共享状态,各节点连接共享存储,所以不能算MPP GP增加BI和数据仓库的支持:A、外部表、并行加载(优势明显)B、资源队列管理的优化,对角色、用户、组进行资源优化分配,管理。
C、GP在查询优化器的增强、分布支持、分区表、执行计划的优化、空间回收、数据分析,简化调优,架构时对称、数据分布均匀的话,可以免去调优GP体系架构SegmentHotLANSegmentHotClientSegmentHotInterconnect-GigabitEthernetSwitchMaterHotSegmentHotMaterHot:访问系统的入口,所有请求都需要从MaterHot访问,正常来讲,管理员也不可以直接访问SegmentHot,系统中只允许直接访问MaterHot,单独操作SegmentHot影响一致性和完整性。
数据监听进程(PotGre):监听用户请求。
处理所有用户连接。
建立执行计划,通过网络层分发给SegmentHot。
协调整个处理过程,保证SegmentHot处理结果侧一致和同步。
只存储GP系统自身的数据,MaterHot的数据是很小的,存储架构信息、配置信息。
不包含任何用户数据。
SegmentHot数据节点一些银行使用了60egmentHot节点,一天的交易数据,分布在不同的SegHot中,分布的逻辑由,我们建立数据仓库的时候指定的,比如:随机的、指定分布键,每个SegmentHot存储一部分用户数据。
数据库GreenPlum集群环境配置与搭建

GreenPlum集群环境搭建1、简介环境搭建准备:greenplum-4.3.8.21.1 greenplum介绍简单的说它就是一个与ORACLE, DB2一样面向对象的关系型数据库。
我们通过标准的SQL可以对GP中的数据进行访问存取。
GREENPLUM与其它普通的关系型数据库的区别?本质上讲GREENPLUM是一个关系型数据库集群. 它实际上是由数个独立的数据库服务组合成的逻辑数据库。
与RAC不同,这种数据库集群采取的是MPP架构。
如下图所示它的组件分成三个部分MASTER/SEGMENT以及MASTER与SEGMENT之间的高效互联技术GNET。
其中MASTER和SEGMENT本身就是独立的数据库SERVER。
不同之处在于,MASTER只负责应用的连接,生成并拆分执行计划,把执行计划分配给SEGMENT节点,以及返回最终结果给应用,它只存储一些数据库的元数据,不负责运算,因此不会成为系统性能的瓶颈。
这也是GREENPLUM与传统MPP架构数据库的一个重要区别。
SEGMENT节点存储用户的业务数据,并根据得到执行计划,负责处理业务数据。
也就是用户关系表的数据会打散分布到每个SEGMENGT节点。
当进行数据访问时,首先所有SEGMENT并行处理与自己有关的数据,如果需要segment可以通过进行innterconnect进行彼此的数据交互。
segment节点越多,数据就会打的越散,处理速度就越快。
因此与SHARE ALL数据库集群不同,通过增加SEGMENT节点服务器的数量,GREENPLUM的性能会成线性增长。
GREENPLUM适用场景?GREENPLUM虽然是关系型数据库产品,它的特点主要就是查询速度快,数据装载速度快,批量DML处理快。
而且性能可以随着硬件的添加,呈线性增加,拥有非常良好的可扩展性。
因此,它主要适用于面向分析的应用。
比如构建企业级ODS/EDW,或者数据集市等等。
GREENPLUM运行的平台?GREENPLUM运行在X86架构的硬件平台上,目前支持的操作系统包括32/64位的LINUX(REDHAT/SUSE)/SOLARIS/MAC OSGREENPLUM的前景?GREENPLUM 诞生于2003年硅谷,2010/07 EMC收购了GREENPLUM,并把GREENPLUM作为EMC面向分析云的战略核心产品,加以大力发展。
Greenplum使用简明手册

Greenplum使⽤简明⼿册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 BY gp_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 time FROM 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查看指定数据库select pg_size_pretty(pg_database_size('<database_name>'));所有数据库 select datname,pg_size_pretty(pg_database_size(<database_name>)) from pg_database;查看数据库表清单(包括临时表) pg_tables主表与分区表 pg_partitions字段清单 information_schema.columns视图 pg_views字典 schema : information_schemaGP中查询表和视图清单,视图的字段及其类型查询schema_name.view_name的字段及其类型:select a.attname, pg_catalog.format_type(a.atttypid, a.atttypmod) as type,a.attnotnullfrom pg_catalog.pg_attribute a,pg_catalog.pg_class c, pg_catalog.pg_namespace nwhere a.attrelid=c.oidand c.relname='view_name'and a.attnum>0 AND NOT a.attisdroppedand n.oid = c.relnamespaceand n.nspname='schema_name'order by a.attnum查询指定schema下view的清单:select c.relnamefrom pg_catalog.pg_class c, pg_catalog.pg_namespace nwhere n.oid = c.relnamespaceand n.nspname='schema_name'and c.relkind='v'查询指定schema下所有table的清单:select c.relnamefrom pg_catalog.pg_class c, pg_catalog.pg_namespace nwhere n.oid = c.relnamespaceand n.nspname='schema_name'and c.relkind='r'查询指定schema下所有外部表的清单:select c.relnamefrom pg_catalog.pg_class c, pg_catalog.pg_namespace nwhere n.oid = c.relnamespaceand n.nspname='schema_name'and c.relkind='r' and relstorage='x'查询指定schema下所有普通表的清单:select c.relnamefrom pg_catalog.pg_class c, pg_catalog.pg_namespace nwhere n.oid = c.relnamespaceand n.nspname='schema_name'and c.relkind='r' and relstorage in ('h','a');注意,relstorage字段取值“x”表⽰外部表,“h”表⽰heap表,“a”表⽰append-only表,“v”表⽰virtual表。
Greenplum服务器配置参数

Greenplum服务器配置参数本文档提供了Greenplum服务器配置参数的详细信息和相关指南。
以下是对每个章节细化的说明。
⒈系统要求确保服务器满足Greenplum的最低系统要求,包括操作系统版本、硬件要求、网络要求等。
⒉安装和配置详细介绍Greenplum的安装和配置步骤,包括安装包、安装过程中的参数配置、必要的环境设置等。
⒊Greenplum集群配置说明如何配置Greenplum集群,包括主节点和从节点的配置、网络设置、节点间通信的参数配置等。
⑴主节点配置提供主节点的配置说明,包括主节点硬件要求、网络配置、操作系统参数调整、Greenplum配置文件的修改等。
⑵从节点配置提供从节点的配置说明,包括从节点硬件要求、网络配置、操作系统参数调整、Greenplum配置文件的修改等。
⒋数据存储配置介绍如何进行数据存储的配置,包括Greenplum的表空间配置、磁盘存储设置、磁盘分区选项等。
⒌性能调优参数列出可供调优的Greenplum性能参数,包括查询优化器的参数、并发执行的参数、资源限制参数等,每个参数的作用和调整策略进行详细说明。
⒍安全配置介绍Greenplum的安全配置选项,包括访问控制、认证方式、SSL配置等。
附件:本文档附带了详细的示例配置文件和脚本供参考。
法律名词及注释:⒈用户许可协议(End User License Agreement,EULA):一种合同,规定了在安装、使用和复制软件时受到的法律限制和要求。
⒉数据保护法(Data Protection Act):一种法律,旨在保护个人隐私,并规定在处理个人数据时应遵守的规定。
【PG】Greenplum-db-6.2.1的安装部署

【PG】Greenplum-db-6.2.1的安装部署⽬录前置条件:Greenplum⼀般集群,需要⼀个Master和三个Segment。
这篇⽂档,只讲部署,不讲基本概念。
IP地址规划:Mater:172.30.200.100Segment:172.30.200.101,172.30.200.102,172.30.200.1031配置host⽂件(所有节点)[root@arpmdw ~]# cat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6172.30.200.100 arpmdw172.30.200.101 arpsdw1172.30.200.102 arpsdw2172.30.200.103 arpsdw3当然每个主机,都需要配置⾃⼰的hostname,这⾥不赘述了。
2 配置⽤户groupadd gpadminuseradd gpadmin -g gpadminpasswd gpadmin3 配置/etc/sysctl.conf⽂件fs.aio-max-nr = 1048576fs.file-max = 6815744kernel.shmall = 2147483648kernel.shmmax = 68719476736kernel.shmmni = 4096kernel.sem = 1024 204800 1024 512net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048586因为/proc/sys/kernel/sem配置不正确,可能会有如下错误错误⽇志如下:cat /home/gpadmin/gpAdminLogs/gpinitsystem_20200304.log有如下错误:2020-03-04 03:10:25.714894 GMT,,,p11333,th-349497216,,,,0,,,seg-10000,,,,,"FATAL","XX000","could not create semaphores: 设备上没有空间 (pg_sema.c:126)","Failed system call was semget(5432031, 17, 03600).","This error does *not* mean4 limit⽂件,后⾯添加【不影响安装】5 安装greenplum-db-6.2.1-rhel7-x86_64.rpmrpm -ivh greenplum-db-6.2.1-rhel7-x86_64.rpm安装的默认⽬录:/usr/local/greenplum-db。
Greenplum详细安装

Greenplum安装一、环境准备VMWARE6.5虚拟机上Redhat5(虚拟两个32位的redhatOS)每个虚拟OS的配置512M内存,8G硬盘容量二、LINUX准备过程1.查看OS的位数,确定GP的版本#getconf LONG_BIT#322.官网上下载32位的Greenplum安装文件greenplum-db-3[1].3.6.1-build-1-RHEL5-i386.zip,大小44M,解压后也差不多44M,里面包含两个文件:一个是安装文件,一个是安装指导3.解压命令:# unzip greenplum-db-3[1].3.6.1-build-1-RHEL5-i386.zip在各台GP主机上编辑/etc/sysctl.conf文件,替换或新增以下参数,重启:kernel.shmmax = 500000000kernel.shmmni = 4096kernel.shmall = 4000000000kernel.sem = 250 64000 100 512net.ipv4.tcp_tw_recycle=1net.ipv4.tcp_max_syn_backlog=4096dev_max_backlog=10000vm.overcommit_memory=2net.ipv4.ip_local_port_range = 1025 65535--文档上没有,新增的在各台主机上同样编辑/etc/security/limits.conf* soft nofile 65536* hard nofile 65536* soft nproc 131072* hard nproc 131072三、软件安装及准备配置1.将master主机改名为local_master,segment主机改名为local_segment;分别修改/etc/hosts为:Local_master:127.0.0.1 localhost.localdomain localhost192.168.224.128 local_masterLocal_segment:127.0.0.1 localhost.localdomain localhost192.168.224.131 local_segment/etc/sysconfig/network为:Local_master:NETWORKING=yesNETWORKING_IPV6=no#HOSTNAME=localhost.localdomainHOSTNAME=local_masterLocal_segment:NETWORKING=yesNETWORKING_IPV6=no#HOSTNAME=localhost.localdomainHOSTNAME=local_segment改完后生效:#service network restart改完后查看:#hostname2.在master安装GP软件:#/bin/bash greenplum-db-3.3.6.1-build-1-RHEL5-i386.bin然后lience accept yes,安装GP路径:/opt/greenplum-db-3.3.6.1安装好了文件夹greenplum-db-3.3.6.1里面会出现以下文件:bin demo docs etc ext greenplum_path.sh include lib LICENSE sbin share 另外外部还会出现一个软链接:[root@local_master opt]# ls -ltotal 12lrwxrwxrwx 1 root root 22 Apr 19 18:52 greenplum-db -> ./greenplum-db-3.3.6.1 drwxr-xr-x 11 root root 4096 Apr 19 18:52 greenplum-db-3.3.6.1四、Master主机配置1.新增Greenplum用户并指定密码,在root用户下执行# useradd gpadmin# passwd gpadmin# New password: gpadmin# Retype new password: gpadmin2.创建用户组,把gpadmin用户放入组gpadmin中# groupadd gpadmin# usermod -g gpadmin gpadmin3.更改所有者,将创建的Greenplum文件用户更换为gpadminchown -R gpadmin greenplum-db-3.3.6.1chgrp -R gpadmin greenplum-db-3.3.6.1chown -R gpadmin greenplum-dbchgrp -R gpadmin greenplum-db4.配置环境变量greenplum_path.sh这个文件是用来配置环境变量和安装路径的,具体内容:# cat /opt/greenplum-db/greenplum_path.shGPHOME=/opt/greenplum-db-3.3.6.1# Replace with symlink path if it is present and correctif [ -h ${GPHOME}/../greenplum-db ]; thenGPHOME_BY_SYMLINK=`(cd ${GPHOME}/../greenplum-db/ && pwd -P)`if [ x"${GPHOME_BY_SYMLINK}" = x"${GPHOME}" ]; thenGPHOME=`(cd ${GPHOME}/../greenplum-db/ && pwd -L)`/.fiunset GPHOME_BY_SYMLINKfiPATH=$GPHOME/bin:$GPHOME/ext/python/bin:$PATHLD_LIBRARY_PATH=$GPHOME/lib:$GPHOME/ext/python/lib:$LD_LIBRARY_PA THPYTHONPATH=$GPHOME/lib/pythonPYTHONHOME=$GPHOME/ext/pythonexport GPHOMEexport PATHexport LD_LIBRARY_PATHexport PYTHONPATHexport PYTHONHOME切换到gpadmin用户下,修改.bash_profile文件为#su – gpadmin#cat .bash_profile# .bash_profile# Get the aliases and functionsif [ -f ~/.bashrc ]; then. ~/.bashrcfi# User specific environment and startup programsGPHOME=/opt/Greenplum# Replace with symlink path if it is present and correctif [ -h ${GPHOME}/../greenplum-db ]; thenGPHOME_BY_SYMLINK=`(cd ${GPHOME}/../greenplum-db/ && pwd -P)`if [ x"${GPHOME_BY_SYMLINK}" = x"${GPHOME}" ]; thenGPHOME=`(cd ${GPHOME}/../greenplum-db/ && pwd -L)`/.fiunset GPHOME_BY_SYMLINKfiPATH=$GPHOME/bin:$GPHOME/ext/python/bin:$PATHLD_LIBRARY_PATH=$GPHOME/lib:$GPHOME/ext/python/lib:$LD_LIBRARY_PA THPYTHONPATH=$GPHOME/lib/pythonPYTHONHOME=$GPHOME/ext/pythonexport GPHOMEexport PATHexport LD_LIBRARY_PATHexport PYTHONPATHexport PYTHONHOME初始化(gpadmin下)source ./bash_profile5.创建master数据文件以root用户创建master的数据存放路径,该目录只存放系统数据,不会存放其他用户数据,并更改所有者#mkdir /opt/master_database#chown gpadmin /opt/ master_database#chgrp gpadmin /opt/ master_database五、Segment主机配置1.建立主机文件阵列以root用户先在master上建立一个包含所有(master,segment,backup master)主机名的文件如下:[root@local_master ~]# cat /etc/all_hostslocal_masterlocal_segment2.修改master的hosts文件分别查看虚拟机OS的ip地址,并加入master(选其中的一台)#ifconfig -ainet addr:192.168.224.128 --masterinet addr:192.168.224.131 --segment以128作为master,修改/etc/hosts文件为# Do not remove the following line, or various programs# that require network functionality will fail.127.0.0.1 localhost.localdomain localhost192.168.224.128 local_master192.168.224.131 local_segment建立信任的主机环境,在master上以root用户登录,初始化参数#source /opt/greenplum-db-3.3.6.1/greenplum_path.sh测试master与segment的连接,采用Gp自带的包,测试过程如下:[root@local_master ~]# gpssh-exkeys -f /etc/all_hosts[STEP 1 of 5] create local ID and authorize on local host... /root/.ssh/id_rsa file exists ... key generation skipped[STEP 2 of 5] keyscan all hosts and update known_hosts file[STEP 3 of 5] authorize current user on remote hosts... send to local_segment****** Enter password for local_segment:[STEP 4 of 5] determine common authentication file content[STEP 5 of 5] copy authentication files to all remote hosts... finished key exchange with local_segment[INFO] completed successfully期间会要求输入segment端root用户的密码,该过程主要是check远程的segment主机以及验证两个主机间的通信顺畅。
GreenPlum数据库详细安装过程

目录1. 概述 (1)1.1.GreenPlum数据库概述 (1)1.2.GreenPlum数据库架构原理 (1)2.SUSE Linux Enterprise 11 64-bit操作系统安装过程 (2)2.1.初始化阶段 (2)2.2.系统分区 (3)2.3.软件选择和系统任务 (5)2.4.语言选择 (5)2.5.Kdump设置 (6)2.6.安装过程 (6)3.配置网卡IP (6)4.GreenPlum中Master配置过程 (8)4.1.建立gpadmin用户 (9)4.2.关闭防火墙 (9)4.3.启动FTP (9)4.4.使用FlashXP上传GreenPlum数据 (10)4.5.使用putty.exe工具配置GreenPlum数据库 (10)4.6.GreenPlum数据库配置详情 (11)4.6.1.GrennPlum数据库的初始化 (12)4.6.2.修改GreenPlum数据库账户的权限 (12)附录A (i)附录B (ii)1.概述1.1.GreenPlum数据库概述1.2.GreenPlum数据库架构原理本系统中GreenPlum由一个主节点(master)和四个从节点(segment)构成,主节点和从节点由一台千兆交换机进行连接。
客户端(Client)发送的命令通过主节点的主控作用,然后分发到从节点;从节点将用户需要的结果汇总到主节点,由主节点进行整合然后再将结果返回给客户端。
主节点与从节点的链接规则是保证每台服务器中网口的IP地址不是互联互通的,但是与其他的服务器之间可以通信。
换句换说保障同一台服务器中的IP 地址不是处于同一网段,但是不同服务器中的相同网口属于同一网段。
在此需要特别提醒用户Master中一共拥有五块网卡,第五块网卡是与client进行连接的网口。
负责外部用户的访问和数据传输。
网线连接顺序GP数据库网线的接线示意图2.SUSE Linux Enterprise 11 64-bit操作系统安装过程安装GreenPlum数据库的服务器,在安装SUSE Linux Enterprise 11操作系统之前首先需要进行磁盘阵列的设置。
greenplum安装文档-v1

大纲本教程主要是讲解GP分布式数据库的部署相关准备及过程,以及在部署中遇到过的问题解决方案描述。
第一章准备工作1. 准备文件:虚拟机三个主机:CentOS release 6.5 (Final)GP安装包:greenplum-db-4.3.5.2-build-1-RHEL5-x86_64.bin初始化文件:gpinitsystem_config2. 这里GP部署是在虚拟机上实现的,一共三台虚拟机。
虚拟机之间要实现通信是一个非常重要的问题,否则在所有的用户和配置文件都正确配置以后,也会因为通信问题产生错误。
这里主要列出在安装中遇到的重要问题,其他的一般配置按照第二节配置过程描述。
安装中要注意的问题包括,设置静态ip,关闭防火墙,建立用户及其分配用户组,配置每个主机的所有集群中的主机地址和主机名的映射文件/etc/hosts,具体的配置过程会在下面章节给出。
第二章配置过程1. 设置静态IP若不设置静态IP,则虚拟机的IP地址可能会发生变动,在所有的主节点和子节点上配置的主机映射文件就会失效,导致不能找到主机,另外,在主节点Master上配置的子节点表segment也找不到主机。
设置静态IP如下:vim /etc/sysconfig/network-scripts/ifcfg-eth0按照这个顺序,图2.1静态IP配置,将除了HWADDR、UUID之外的其他项更改。
其中IPADDR、NETMASK、GATEWAY是可以在电脑网络管理中可以找到,如图2.1Windows网络管理图2.1 静态IP配置2.2 Windows网络管理2. 关闭防火墙在数据库初始化之前一定要关闭防火墙,避免主机之间通信中断。
典型的问题有,在所有配置若都完全正确,防火墙未关闭时候,初始化中提示输入y之后,接下来后期会报如下错误。
2.3 未关闭防火墙报错正确解决方法是root权限关闭防火墙即可:[root@duancy-host01 ~]# service iptables stop[root@duancy-host01 ~]# service ip6tables stop3.修改/etc/sysctl.conf文件将/etc/sysctl.conf的内容修改为如下内容,重启生效(或执行sysctl -p生效) (从此处开始即对系统文件和用户配置文件做相应配置。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
GreenPlum数据库集群安装说明及使用手册开心十二月总结****年**月**日目录1体系结构介绍 (4)2安装 (10)2.1安装 (10)2.1.1安装准备 (10)2.1.2安装gp-db (11)2.1.3配置通讯 (13)2.1.4建立数据存储池 (17)2.1.5同步系统时间 (17)2.1.6验证安装是否成功 (17)2.1.7初始化 (17)2.1.8数据库的启停 (18)2.2Master双机热备 (19)2.3Segment节点互备 (20)3GP数据库的使用 (22)3.1pgAdminIII工具 (22)3.1.1安装和第一次使用pgAdminIII (22)3.1.2主窗体 (23)3.1.3导航菜单 (23)3.1.4工具栏介绍 (24)3.1.5数据库与表的创建 (25)3.1.6使用pgAdminIII备份数据库 (25)3.2JDBC配置 (26)3.3GP数据库两个重要概念 (27)3.3.1什么是Schema (27)3.3.2数据分布存储 (28)3.4GP的SQL语法 (28)3.4.1数据加载 (28)3.4.2SQL并行查询 (32)3.4.3聚合函数 (32)3.4.4索引 (32)3.4.5分区 (34)3.4.6函数 (35)4维护数据库 (39)4.1数据库启动gpstart (39)4.2数据库停止gpstop (41)4.3查看实例配置和状态 (41)4.4查看数据库运行状态gpstate (42)4.5查看用户会话和提交的查询等信息 (43)4.6查看数据库、表占用空间 (43)4.7查看数据分布情况 (44)4.8实例恢复gprecoverseg (44)4.9查看锁信息 (44)4.10数据库的备份与恢复 (44)5调优、排错 (44)6附件 (44)6.1DBA常用命令 (44)7Q&A (45)7.1不支持触发器 (45)7.2更新操作中的若干问题 (45)1体系结构介绍Greenplum数据库产品——下一代数据仓库引擎和分析方法Greenplum公司是企业数据云计算解决方案的创始人,为客户提供灵活的数据商业智能和分析方法。
能够以极低的成本代价,提供业界领先的计算性能。
客户遍及美国知名企业:Nasdaq、NYSE、Ebay、Fox Interactive Media……等。
Greenplum公司的Greenplum数据库产品是用于建造下一代数据仓库和巨大规模分析系统的软件解决方案。
支持SQL和MapReduce并行处理,更适合管理TB级~PB级的海量数据,并以极低的成本代价提供了业界领先的计算性能。
使用独有的sharing-nothing MPP架构,服务器的集群工作起来,就像是一个独立的超级计算机!优化了BI和分析方法,自动化分区数据和并行查询,比传统数据库执行速度提高10倍~100倍!Greenplum数据库的特色:➢大规模地并行分析处理能力Greenplum数据库可以跨越100~1000颗CPU,实现统一的并行操作引擎,让处理过程尽可能地靠近数据。
Greenplum是业界最快的和最普及的高端数据仓库解决方案!用传统方式需花费数天才能完成的复杂查询,现在使用Greenplum只需要几分钟完成!➢核心的MPP架构Greenplum数据库提供数据和查询的自动化并行:数据被自动分区跨越集群中的所有节点;查询以高度协作的方式,在集群的所有节点上执行。
➢高速PB级数据装载利用独有的MPP Scatter/Gather Streaming技术,实现高速的数据装载。
每增加1个节点,每小时装载吞吐量提高4TB!➢数据库内部压缩利用业界领先的压缩技术提高性能和降低存储空间。
在有效较少1/3~1/10空间的同时,相应地提高了I/O性能。
➢多级容错能力Greenplum数据库利用多级冗余技术,在硬件或软件故障时,保障操作可以继续执行。
➢在线系统扩展为提高存储容量、处理性能,增加新的服务器到集群中,扩展的操作在后台完成,数据库可以继续保持正常工作状态不受影响。
处理性能和存储容量,随服务器的个数增加成正比显著提高!➢自有的MapReduce技术MapReduce是Google和Yahoo的大规模数据分析方法。
Greenplum使用独有的并行引擎执行MapReduce。
Greenplum数据库架构原理解密:Greenplum数据库通过分布负载到多个服务器主机,实现操作存储和处理大规模的数据。
数据库实际上由1个Master服务器和若干个独立的Segment服务器组成,一起协调工作,每个服务器都是独立的PostgreSQL数据库。
如图1所示,Master服务器是数据库的入口,验证客户端,处理输入的SQL,分布工作到若干Segment服务器,统一协调各个Segment返回的结果,汇总最终结果返回客户端。
Master不存储任何用户数据,只有全局系统视图。
图1:Greenplum数据库架构如图2所示,Segment服务器是真正数据存储的地方,并承担主要的查询工作。
用户数据(表、索引)被分布存储到有效的若干Segment,通过Hash算法,每个Segment存放数据的不同部分。
图2:Segment服务器真正存储数据图3展示了一套完整的Greenplum数据仓库实施架构示例。
独立的Master服务器,通过千兆网络连接在一起的若干Segment服务器,每个Segment服务器挂载独立的RAID 存储。
服务器基于X86-64位硬件平台,安装Linux操作系统,获得极高的性价比。
图3:Greenplum数据库完整实施架构示例图4记录了一次完整的MPP并行查询过程。
Master作为查询调度器,为客户端提供连接工作;Segment独立管理数据片和数据操作。
调度过程如下:1.Master验证客户端用户。
2.Master连接到所有远程Segment实例。
3.Master解析SQL语句。
4.Master建立1个优化的并行查询计划。
5.Master分布查询计划到所有的Segment实例。
6.Master协调查询计划在所有Segment上并行执行。
7.Master收集所有Segment的查询结果并返回到客户端。
图4:一次查询调度过程Greenplum 独有的Sharing -Nothing 架构:数据仓库在执行全表扫描查询时,通常速度被存储的带宽限制,即瓶颈大多集中在I/O 。
Greenplum 的Sharing-Nothing 架构物理分离数据,存储到若干Segment 服务器,每个Segment 使用多个、专用的、独立的、高速的通道独立连接到磁盘,并把管理数据库资源:buffer 、lock 、block 的职责委派到各个Segment ,不使用Master 统一管理资源!从图5中可以看出与Sharing-Everything 架构(如Oracle RAC )对比,存在2个明显区别:图5:sharing-everying 对比sharing-nothing 数据库架构1) 数据库物理存储方式不同:在RAC 环境下,数据库集中存储,集群中的所有节点共享I/O 通道访问数据,随着TB 级别海量数据的增加,I/O 瓶颈可想而知。
Segment1 Segmentn Segment22)集群节点间内部通信管理方式不同:如图6,RAC使用GRD(Global Resource Directory)统一管理数据库资源,管理内部节点间通信。
用户对每个block的访问,都要经过GRD的协调调度,极其繁琐且需要额外的进程通信负担;随着节点个数的增加,GRD会增加管理的复杂度,可能会导致产生性能问题!图6:Oracle RAC的GRD架构2安装2.1安装2.1.1安装准备CentOS-6.3-x86_64-bin-DVD1.isoVMware Workstationgreenplum-db-4.2.1.0-build-3-CommunityEdition-RHEL5-x86_64.zip 2.1.1.1os的配置以root用户操作2.1.1.2检查系统条件检查系统名称,版本,内核.# uname -a检查磁盘空间# df -h2.1.1.3设置主机名#vi /etc/sysconfig/networkHOSTNAME=*single* (*变量*,以后出现*string*,均指变量)2.1.1.4设置集群各个机器ip与主机的对应表#vi /etc/hosts127.0.0.1 single localhost配置运行参数:#vi /etc/sysctl.conf添加修改:kernel.sem = 250 64000 100 512kernel.shmmax = 500000000(最大共享内存)kernel.shmmni = 4096kernel.shmall = 4000000000(共享内存总量)kernel.sem = 250 64000 100 512kernel.sysrq = 1kernel.core_uses_pid = 1kernel.msgmnb = 65536kernel.msgmax = 65536net.ipv4.tcp_syncookies = 1net.ipv4.ip_forward = 0net.ipv4.conf.default.accept_source_route = 0net.ipv4.tcp_tw_recycle=1net.ipv4.tcp_max_syn_backlog=4096net.ipv4.conf.all.arp_filter = 1dev_max_backlog=10000vm.overcommit_memory=2#vi /etc/security/limits.conf添加修改* soft nofile 65536* hard nofile 65536* soft nproc 131072* hard nproc 1310722.1.1.5关闭iptables[root@localhost ~]# service iptables stopiptables:清除防火墙规则:[确定] iptables:将链设置为政策ACCEPT:filter [确定] iptables:正在卸载模块:[确定] [root@localhost ~]# chkconfig iptables off[root@localhost ~]# service ip6tables stopip6tables:清除防火墙规则:[确定] ip6tables:将chains 设置为ACCEPT 策略:filter [确定] :正在卸载模块:[确定] [root@localhost ~]# chkconfig ip6tables off2.1.2安装gp-db创建gpadmin用户# useradd gpadmin# passwd gpadmin# New password: gpadmin# Retype new password: gpadmin2.1.2.1解压zip包例如:把安装包copy到/home/gpadmin目录下#su gpadmin#cd /home/gpadmin#unzip greenplum-db-4.2.1.0-build-3-CommunityEdition-RHEL5-x86_64.zip2.1.2.2执行安装文件./greenplum-db-4.2.1.0-build-3-RHEL5-x86_64.bin安装过程比较容易,但是注意要修改一下安装路径为/home/gpadmin/greenplum-db-4.2.1.0下图打印了安装时的情况:出现如下提示:********************************************************************************Do you accept the Greenplum Database license agreement? [yes|no]********************************************************************************yes********************************************************************************Provide the installation path for Greenplum Database or press ENTER toaccept the default installation path: /home/gpadmingreenplum-db-4.2.1.0********************************************************************************/home/gpadmin/greenplum-db-4.2.1.0********************************************************************************Install Greenplum Database into </home/gpadmin/greenplum-db-4.2.1.0>? [yes|no]********************************************************************************yes********************************************************************************/home/gpadmin/greenplum-db-4.2.1.0 does not exist.Create /home/gpadmin/greenplum-db-4.2.1.0 ? [yes|no](Selecting no will exit the installer)********************************************************************************yes******************************************************************************** [Optional] Provide the path to a previous installation of Greenplum Database,or press ENTER to skip this step. e.g. /home/gpadmingreenplum-db-4.1.1.3This installation step will migrate any Greenplum Database extensions from theprovided path to the version currently being installed. This step is optionaland can be run later with:gppkg --migrate <path_to_old_gphome> /home/gpadmin/greenplum-db-4.2.1.0 ******************************************************************************** Extracting product to /home/gpadmin/greenplum-db-4.2.1.0Extracting product to /home/gpadmin/greenplum-db-4.2.1.0Skipping migration of Greenplum Database extensions...******************************************************************************** Installation complete.Greenplum Database is installed in /home/gpadmin/greenplum-db-4.2.1.0 Greenplum Database documentation is available for downloadat .********************************************************************************安装成功!2.1.3配置通讯登录master机器source一下greenplum_path.sh文件# source /home/gpadmin/greenplum-db/greenplum_path.sh2.1.3.1编辑一个主机列表列表为主机名.#cd /home/gpadmin#vi all_hosts_file*host1**host2**host3*…2.1.3.2打通root的ssh通道执行gpssh-keys命令.#su – root# gpssh-exkeys -f all_hosts_filegpssh-exkeys 将要求对每台机器鉴权.提示:后输入用户名密码***Enter password for root@hostname: root password提示:[STEP 1 of 5] create local ID and authorize on local host[STEP 2 of 5] keyscan all hosts and update known_hosts file[STEP 3 of 5] authorize current user on remote hosts[STEP 4 of 5] determine common authentication file content[STEP 5 of 5] copy authentication files to all remote hosts[INFO] completed successfully2.1.3.3为每台机器创建gpadmin用户# su – root(以root用户登录各节点机器来创建用户)# gpssh -f all_hosts_file '/usr/sbin/useradd gpadmin -d /home/gpadmin -s /bin/bash'2.1.3.4为每台机器添加gpadmin的密码# gpssh -f all_hosts_file 'echo password | passwd gpadmin --stdin'2.1.3.5修改目录拥有者# chown -R gpadmin:gpadmin /home/gpadmin/*2.1.3.6打通gpadmin的ssh通道执行gpssh-keys命令.#su gpadmin#source /home/gpadmin/greenplum-db/greenplum_path.sh # gpssh-exkeys -f all_hosts_filegpssh-exkeys 将要求对每台机器鉴权.提示:后输入用户名密码***Enter password for root@hostname: root password提示:[STEP 1 of 5] create local ID and authorize on local host [STEP 2 of 5] keyscan all hosts and update known_hosts file [STEP 3 of 5] authorize current user on remote hosts[STEP 4 of 5] determine common authentication file content [STEP 5 of 5] copy authentication files to all remote hosts [INFO] completed successfully2.1.3.7把master的gp-db服务copy到各个slave机器上.在master上把gp-db打包.# cd /home/gpadmin# source /home/gpadmin/greenplum-db/greenplum_path.sh # gtar -cvf /home/gpadmin/gp.tar greenplum-db-4.0.x.x2.1.3.8做主机列表(不能有空行和空格)#vi seg_hosts_file*sdw1-1**sdw2-1**sdw3-1*2.1.3.9copy到各个seg机器上# gpscp -f seg_hosts_file /home/gpadmin/gp.tar =:/home/gpadmin2.1.3.10登录到各个slave机器# gpssh -f seg_hosts_file2.1.3.11解压tar包=> gtar --directory /home/gpadmin -xvf /home/gpadmin/gp.tar2.1.3.12查看服务=> ls /home/gpadmin/greenplum-db-4.0.x.x2.1.3.13建立链接=> ln -s /home/gpadmin/greenplum-db-4.2.1.0 /home/gpadmin/greenplum-db 2.1.3.14更改用户组=> chown -R gpadmin:gpadmin /home/gpadmin/greenplum-db2.1.3.15删除tar包=> rm /home/gpadmingp.tar2.1.3.16退出远程登录Exit gpssh=>exit2.1.3.17激活#source /home/gpadmin/greenplum-db/greenplum_path.sh #source ~/.bashrc2.1.4建立数据存储池2.1.4.1建立master的数据结构存储地# su gpadmin# cd /home/gpadmin# mkdir gpmaster2.1.4.2建立业务数据存储地登录到每台节点机上创建目录,gpadmin有操作权限su - gpadmin# cd /home/gpadmin$ mkdir gpdata1# chown –R gpadmin:gpadmin gpdata12.1.5同步系统时间同步系统时间:$ gpssh -f seg_hosts_file -v date同步NTP时间:$ gpssh -f seg_hosts_file -v ntpd2.1.6验证安装是否成功# gpcheck -f all_hosts_file2.1.7初始化设置变量:#su gpadmin#vi .bash_profileGPHOME=/home/gpadminexport GPHOMEMASTER_DATA_DIRECTORY=/home/gpadmin/gpmaster/gpseg-1export MASTER_DATA_DIRECTORY# source ~/.bashrc# source .bash_profile建立初始化文件:#vi gp_init_configARRAY_NAME="Greenplum"MACHINE_LIST_FILE=/home/gpadmin/seg_hosts_fileSEG_PREFIX=gpsegPORT_BASE=50000declare -a DATA_DIRECTORY=(/home/gpadmin/gpdata1)MASTER_HOSTNAME=masterMASTER_DIRECTORY=/home/gpadmin/gpmasterMASTER_PORT=5432TRUSTED_SHELL=sshCHECK_POINT_SEGMENTS=8ENCODING=UTF8DATABASE_NAME=test执行初始化:# source /home/gpadmin/greenplum-db/greenplum_path.sh# gpinitsystem -c /home/gpadmin/gp_init_config修改master机器上的路径下/home/gpadmin/gpmaster/gpseg-1的文件pg_hba.conf,在文件里面添加内容:host all gpadmin 0.0.0.0/0 trust这部分添加的内容要在文件中和这个文件内容类似的地方添加修改master机器上的路径下/home/gpadmin/gpmaster/gpseg-1的文件postgresql.conf,将内容#listen_addresses = '*' 的# 符号去掉,即为将监听打开2.1.8数据库的启停1)启动数据库服务在master节点上,请以gpadmin用户登入OS,执行命令gpstart,系统会自检,并提示是否启动服务,选择y,启动服务。