一、集群介绍

共3台主机,ip 为193.168.0.93   193.168.0.94  193.168.0.95

集群对应master和segment如下,193.168.0.93为master节点。193.168.0.94  193.168.0.95为segment节点,每个segment节点配置两个primary segment和两个mirror segment(也可以为master做一个备份,目前没有做)

架构图入下


二、服务器修改(all
host)

2.1配置hosts

  vi /etc/hosts
192.168.0.93 gpdb-1 mdw

192.168.0.94 gpdb-2 sdw1

192.168.0.95 gpdb-3 sdw2

2.2创建用户及用户组

2.2.1创建用户组,组id为530
groupadd -g  gpadmin
2.2.2创建用户,赋予gpadmin用户组,并自定用户根目录
useradd -g  -u  -d /home/gpadmin -s /bin/bash gpadmi
2.2.3授权/home/gpadmin
chown -R  gpadmin:gpadmin /home/gpadmin
2.2.4修改密码
passwd gpadmin
2.3关闭防火墙

2.3.1关闭默认防火墙

        systemctl stop firewalld

2.3.2关闭iptables

        systemctl stop iptables
2.4修改network文件
  vi /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=对应的主机名称
2.5修改系统文件

2.5.1修改内核配置

  vi /etc/sysctl.conf

kernel.shmmax = 

kernel.shmmni = 

kernel.shmall = 

kernel.sem =    

kernel.sysrq = 

kernel.core_uses_pid = 

kernel.msgmnb = 

kernel.msgmax = 

kernel.msgmni = 

net.ipv4.tcp_syncookies = 

net.ipv4.ip_forward = 

net.ipv4.conf.default.accept_source_route = 

net.ipv4.tcp_tw_recycle = 

net.ipv4.tcp_max_syn_backlog = 

net.ipv4.conf.all.arp_filter = 

net.ipv4.ip_local_port_range =  

net.core.netdev_max_backlog = 

net.core.rmem_max = 

net.core.wmem_max = 

vm.overcommit_memory = 

执行命令 sysctl -p  使修改数值生效

2.5.2修改限制配置

  vi /etc/security/limits.conf

* soft nofile 

* hard nofile 

* soft nproc 

* hard nproc 

2.5.3禁用SELINUX

  vi /etc/selinux/config

SELINUX=disabled

三、安装依赖及创建安装目录(all
host)

3.1安装依赖

yum install -y epel-release

yum install -y apr-devel bison bzip2-devel cmake3 flex gcc gcc-c++ krb5-devel libcurl-devel libevent-devel libkadm5 libyaml-devel libxml2-devel perl-ExtUtils-Embed python-devel python-paramiko python-pip python-psutil python-setuptools readline-devel xerces-c-devel zlib-devel

pip install lockfile conan

yum install openssl-devel

3.2创建安装目录

mkdir /opt/greenplum

chown -R gpadmin:gpadmin /opt/greenplum

chown -R gpadmin:gpadmin /usr/local/yiliao/

----------------------------------------以下用gpadmin用户------------------------------------------------------------

四、安装gpdb

4.1上传安装包并解压(Master)

unzip gpdb-5.6..zip

cd gpdb-5.6.

4.2编译gpdb(Master)

4.2.1安装
./configure --with-perl --with-python --with-libxml --with-gssapi --disable-orca --prefix=/opt/greenplum/db

make

make install
4.2.2引入脚本
source /opt/greenplum/db/greenplum_path.sh

4.3编辑节点服务器文件(Master)

(目录: /home/gpadmin/gpconfig/)

mkdir gpconfig

vi all_hosts

    mdw
sdw1
sdw2 vi seg_hosts sdw1
sdw2

4.4打通节点(Master)

gpssh-exkeys -f all_hosts

gpssh-exkeys -f seg_hosts

4.5打包分发安装文件(Master)

4.5.1打包分发
tar -cf gp5..tar db/

gpscp -f /home/gpadmin/gpconfig/seg_hosts  gp5..tar =:/opt/greenplum
4.5.2解压分发文件(目录结构要和主节点一直)并创建数据目录
gpssh -f all_hosts(连接all节点,批量)

cd /opt/greenplum/

tar -xf gp5..tar

mkdir -p /usr/local/yiliao/gpdata/gpmaster

mkdir -p /usr/local/yiliao/gpdata/gpp1

mkdir -p /usr/local/yiliao/gpdata/gpp2

mkdir -p /usr/local/yiliao/gpdata/gpm1

mkdir -p /usr/local/yiliao/gpdata/gpm2
4.5.3 编辑.bash_profile

vi ~/.bash_profile

source /opt/greenplum/db/greenplum_path.sh

export MASTER_DATA_DIRECTORY=/usr/local/yiliao/gpdata/gpmaster/gpseg-

export PGPORT=

export PGDATABASE=testDB

生效     . ~/.bash_profile

4.5.4编辑数据库启动文件(/home/gpadmin/gpconfig/)
ARRAY_NAME="Greenplum"

MACHINE_LIST_FILE=/home/gpadmin/gpconfig/seg_hosts

SEG_PREFIX=gpseg

PORT_BASE=

declare -a DATA_DIRECTORY=(/usr/local/yiliao/gpdata/gpp1 /usr/local/yiliao/gpdata/gpp2)

MASTER_HOSTNAME=mdw

MASTER_DIRECTORY=/usr/local/yiliao/gpdata/gpmaster

MASTER_PORT=

TRUSTED_SHELL=ssh

ENCODING=UNICODE

MIRROR_PORT_BASE=

REPLICATION_PORT_BASE=

MIRROR_REPLICATION_PORT_BASE=

declare -a MIRROR_DATA_DIRECTORY=(/usr/local/yiliao/gpdata/gpm1 /usr/local/yiliao/gpdata/gpm2)
4.5.5初始化数据库
gpinitsystem -c /home/gpadmin/gpconfig/gpinitsystem_config -a
4.5.6用psql测试是否安装成功
psql -d postgres

CREATE USER yiliaodb PASSWORD 'yiliaodb' CREATEDB;

4.5修改文件(Master)

  cd /usr/local/yiliao/gpdata/gpmaster/gpseg-1/

  vi pg_hba.conf

host     all         yiliaodb           0.0.0.0/     md5

说明:

(1).其中,"trust"和"password"为postgresql数据库登陆验证的方式,"trust"表示信任,即不需要输入密码(即使有密码),"password"表示需         要输入密码。

(2).host all all 127.0.0.1/31 trust表示本地连接数据库不需要输入密码(即使有密码,设为trust后就不需要密码)

(3).host all all 0.0.0.0/0 所有主机连接数据库需要输入密码(如果有密码)

(4).当然,这两个综合后表现的结果就是:对于本机链接表示信任(不需要输入密码),对于非本机链接需要输入密码

4.6安装注意事项

1.每次服务器重启以后需要关闭防火墙

2.每次需加载gpdb环境变量才能有gpdb数据库命令 “.
~/.bash_profile”

3.gpstop 命令关闭gpdb

4.gpstart -a 命令开启gpdb

4.7 gp基本命令

  1.Shell命令:

su - gpadmin

gpstart                      #正常启动

gpstop                       #正常关闭

gpstop  -M  fast #快速关闭

gpstop  -r               #重启

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

  2.gp命令

a) 登陆与退出Greenplum
      # 默认数据库登陆         psql       # 登陆gpdb数据库         psql gpdb         psql -d gpdb       # 以gpadmin用户,gphostm server,5432端口登陆gpdb数据库         psql -d gpdb -h gphostm -p -U gpadmin # 退出 在gp数据库中: \q b) 查看greenplum数据库下所有默认数据表:     select * from pg_tables; c)进入数据库以后,就可以通过命令,查看数据库种的数据库:

    select * from pg_database; d)数据库中查看用户和数据库     用户: \du     数据库:\l

  3.检查及修复无效的segment节点

# status命令查看状态

  Show detailed status information of a Greenplum Database system:
gpstate -s Do a quick check for down segments in the master host system catalog:
gpstate -Q Show information about mirror segment instances:
gpstate -m Show information about the standby master configuration:
gpstate -f Display the Greenplum software version information:
gpstate -i # 恢复节点
    gprecoverseg -r

五、数据备份和恢复

5.1 了解GreenPlum数据库的备份恢复

5.1.1并行备份(gp_dump)

1)      GP同时备份Master和所有活动的Segment实例

2)      备份消耗的时间与系统中实例的数量没有关系

3)      在Master主机上备份所有DDL文件和GP相关的数据字典表

4)      每个Segment备份各自的数据

5)      所有备份文件组成一个完整的备份集合,通过唯一14位数字的时间戳来识别

5.1.2 并行恢复(gp_restore)

1)      通过gp_dump产生的时间戳来辨识备份集合,恢复数据库对象和数据到分布式数据库

2)      每个Segment并行恢复各自的数据

3)      被恢复的GP系统必须与备份的系统同构

5.1.3非并行备份(pg_dump/pg_dumpall)

1)      GP依然支持常规的PostgreSQL备份命令pg_dump和pg_dumpall

2)      备份将在Master主机上创建一个包含所有Segment数据的大的备份文件

3)      不适合于全部数据备份,适用于小部分数据的迁移或备份

PS:

  一般情况不使用pg_dump,它适用于PostgreSQL迁移到Greenplum。

  pg_dump一次只能备份一个单独的数据库,且不能备份角色和表空间信息(因为这些信息是cluster-wide,而不是在某个数据库中(per-database))

5.1.4非并行恢复(pg_restore)

1) 使用由pg_dump或pg_dumpall创建的备份文件来恢复

2) 使用非并行恢复可以实现异构系统恢复

5.1.5备份数据库的四种选择

1) 为每个实例创建一个备份文件

  可用于全库备份或者相同配置的系统之间迁移数据;

2) 使用gpcrondump进行定期备份

  对gp_dump进行包装,使用cron调度GP数据库的后台进行备份;

  调用gpcrondump的调度作业应该部署在GP的Master主机;

  gpcrondump命令还备份数据库角色和服务器配置等数据库之外的对象

3) 使用pg_dump或pg_dumpall创建单个备份文件

  可用于不同数据库之间少量数据迁移或备份;

4) 文件系统备份

  借助操作系统或者其他第三方工具来进行备份,实现增量备份

5.2创建GP用户和数据库

5.2.1切换到测试用户,并配置环境变量

   su
gptestusr

    source
/opt/greenplum/db/greenplum_path.sh

5.2.2创建数据库用户,并进入数据库

  CREATE USER testdb WITH PASSWORD 'password';

  CREATE DATABASE testdb;

  GRANT ALL PRIVILEGES ON DATABASE testdb to testdb;

  ALTER ROLE testdb CREATEROLE CREATEDB;

  修改greenplum配置文件:

  vi /usr/local/yiliao/gpdata/gpmaster/gpseg-1/pg_hba.conf

  进入数据库,输入密码的模式

    psql -U testdb -d testdb -W

5.3 备份实例

测试数据库时表:

create table syn_test(id int,name varchar()) distributed by (id);

insert into syn_test values(,'ab'),(,'dc'),(,'dfs'),(,'sfs');

create table syn_test2(id int,cost varchar()) distributed by (id);

insert into syn_test2 values(,'aa'),(,'bb'),(,'cc'),(,'dd');

5.3.1 pg_dump & pg_restore

  # 创建备份目录(root用户下)

  mkdir
     /gpbackup

      chown     gpadmin.gpadmin   /gpbackup/

  # <1>表级别备份恢复

    备份:pg_dump -t syn_test -Fc -U testdb -W testdb -f
/gpbackup/syn_test_pgdump.dmp

    恢复:pg_restore -d testdb /gpbackup/syn_test_pgdump.dmp

  # <2>database级别备份恢复

  备份:pg_dump testdb -Fc -Ugpadmin -W 
-f /gpbackup/testdb_pgdump.dmp

     恢复:恢复之前需先创建空的数据库

5.3.2 pg_dumpall

  gp_dump同时只能备份一个数据库。为了解决这个问题,就要使用pg_dumpall工具,它备份每个数据库和角色、表空间定义。

  执行pg_dumpall需要超级用户权限。

# <1>导出所有role和tablespace

  pg_dumpall  -g >/gpbackup/role_tbs.sql

# <2>导出所有database

  pg_dumpall  >/gpbackup/all.dmp

5.3.3 gp_dump & gp_restore

# gp_dump

  gp_dump是Greenplum的并行备份工具,Master和segment同时备份,备份保存在每个节点中。备份时间最长的节点决定着整个备份时长。

  Segment节点备份的只有数据,而Master备份的是所有DDL命令和一些全局系统表(如gp_segment_configuration)。

  执行gp_dump时,只有Segment的primary和active Master运行备份操作,Mirror和stanby Master不参与备份。

  gp_dump在每个Segment上运行gp_dump_agent代理进程,将备份状态报告给Master的gp_dump进程。

      备份:gp_dump testdb
--table=syn_test --gp-d=/gpbackup/ --gp-r=/gpbackup/

# gp_restore

  gp_restore命令使用gp_dump生成的备份文件恢复数据定义和用户的数据。特别要注意的时,gp_restore时需指定gp_dump备份时的时间戳(在gp_dump_.rpt中)。

  执行gp_restore有如下要求:

    gp_dump做的备份文件,并且备份文件在原始位置。

    GPDB正常运行

    GPDB的Segment节点数(包含primary和mirror)和备份时一致

    要被恢复的数据库(database)已创建

    使用gp_dump备份时指定了参数如-s
(schema only) , -a (data only), --gp-c (compressed), --gp-d (alternate dump
file location) ,那么使用gp_restore恢复时也要加上

      恢复:gp_restore
--gp-d=/gpbackup/ --gp-r=/gpbackup/ --gp-k=201807041720

MPP - GreenPlum数据库安装以及简单使用的更多相关文章

  1. Greenplum 数据库安装部署(生产环境)

    Greenplum 数据库安装部署(生产环境) 硬件配置: 16 台 IBM X3650, 节点配置:CPU 2 * 8core,内存 128GB,硬盘 16 * 900GB,万兆网卡. 万兆交换机. ...

  2. GreenPlum数据库安装

    第一章    文档概述 本文描述适用于Greenplum4.0以上版本的安装操作.所涉及到的操作系统相关参数调整,主要针对Redhat Linux操作系统. 第二章    安装介质 操作系统:Cent ...

  3. 数据库之redis篇(1)—— redis数据库安装,简单使用

    简介 reids,由Salvatore Sanfilippo写的一个高性能的key-value数据库,并且它是非关系型数据库,也就是没有像mysql那样多表链接操作,并且它是是完全开源免费的,遵守BS ...

  4. postgresql数据库安装及简单操作

    自从MySQL被Oracle收购以后,PostgreSQL逐渐成为开源关系型数据库的首选. 本文介绍PostgreSQL的安装和基本用法,供初次使用者上手.以下内容基于Debian操作系统,其他操作系 ...

  5. redis数据库安装及简单的增删改查

    redis下载地址:https://github.com/MSOpenTech/redis/releases. 解压之后,运行 redis-server.exe redis.windows.conf  ...

  6. 转_Greenplum 数据库安装部署(生产环境)

    Greenplum 数据库安装部署(生产环境) 硬件配置: 16 台 IBM X3650, 节点配置:CPU 2 * 8core,内存 128GB,硬盘 16 * 900GB,万兆网卡. 万兆交换机. ...

  7. 在linux上安装MySQL数据库,并简单设置用户密码,登录MySQL

    在新装的Centos系统上安装MySQL数据库. <p><a href="http://www.cnblogs.com/tijun/">提君博客原创< ...

  8. python操作三大主流数据库(7)python操作mongodb数据库①mongodb的安装和简单使用

    python操作mongodb数据库①mongodb的安装和简单使用 参考文档:中文版:http://www.mongoing.com/docs/crud.html英文版:https://docs.m ...

  9. Oracle数据库学习(一)安装和简单使用

    新公司的新项目,需要用到Oracle数据库,所以现在便来解除此数据库,不得不说,这个数据库还这是麻烦. 安装倒是简单,就是中间会遇到各种问题. 安装步骤参考:https://blog.csdn.net ...

随机推荐

  1. 数据绘图工具之Matplotlib

    一.安装:绘图和可视化 pip install matplotlib 我们已经下好了anaconda 包含了绘图工具包 直接导入即可 import matplotlib.pyplotlib as pl ...

  2. 11、Nginx反向代理服务

    1Nginx代理服务基本概述 1.代理一词并不陌生, 该服务我们常常用到如(代理理财.代理租房.代理收货等等),如下图所示 2.在没有代理模式的情况下,客户端和Nginx服务端,都是客户端直接请求服务 ...

  3. 面试复习题(二)JavaSE高级(未完成)

    一.Java中的反射 3.说说你对Java中反射的理解 Java中的反射首先是能够获取到Java中要反射类的字节码,获取字节码有3种办法. class.forName(className) 类名.cl ...

  4. 17JQuery

    1. 概念 一个JavaScript框架.简化JS开发  jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScrip ...

  5. 心态炸了,我再写一个4.1.0版本的SND实例

    maven依赖 <!-- Tests --><dependency> <groupId>org.springframework</groupId> &l ...

  6. mysql创建函数槽点

    上机环境 mysql8.0 navicat for mysql 很有那么一批软件程序,要不做点脱了裤子放屁的事儿就觉得自己不够二进制似的,今儿写了一下午mysql函数,怎么都通过不了,上网一看 mys ...

  7. 29.连续子数组的最大和(python)

    题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果向量 ...

  8. Harbor ($docker login) Error saving credentials

    $ sudo apt-get install $ sudo apt-get install gnupg2 pass 问题解决!

  9. ASP net 上传整个文件夹

    HTML部分 <%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="index.aspx. ...

  10. hdu_2159(二维费用背包)

    HDU_2159 二维费用背包问题 http://acm.hdu.edu.cn/showproblem.php?pid=2159 #include<cstdio> #include< ...