MPP - GreenPlum数据库安装以及简单使用
一、集群介绍
共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数据库安装以及简单使用的更多相关文章
- Greenplum 数据库安装部署(生产环境)
Greenplum 数据库安装部署(生产环境) 硬件配置: 16 台 IBM X3650, 节点配置:CPU 2 * 8core,内存 128GB,硬盘 16 * 900GB,万兆网卡. 万兆交换机. ...
- GreenPlum数据库安装
第一章 文档概述 本文描述适用于Greenplum4.0以上版本的安装操作.所涉及到的操作系统相关参数调整,主要针对Redhat Linux操作系统. 第二章 安装介质 操作系统:Cent ...
- 数据库之redis篇(1)—— redis数据库安装,简单使用
简介 reids,由Salvatore Sanfilippo写的一个高性能的key-value数据库,并且它是非关系型数据库,也就是没有像mysql那样多表链接操作,并且它是是完全开源免费的,遵守BS ...
- postgresql数据库安装及简单操作
自从MySQL被Oracle收购以后,PostgreSQL逐渐成为开源关系型数据库的首选. 本文介绍PostgreSQL的安装和基本用法,供初次使用者上手.以下内容基于Debian操作系统,其他操作系 ...
- redis数据库安装及简单的增删改查
redis下载地址:https://github.com/MSOpenTech/redis/releases. 解压之后,运行 redis-server.exe redis.windows.conf ...
- 转_Greenplum 数据库安装部署(生产环境)
Greenplum 数据库安装部署(生产环境) 硬件配置: 16 台 IBM X3650, 节点配置:CPU 2 * 8core,内存 128GB,硬盘 16 * 900GB,万兆网卡. 万兆交换机. ...
- 在linux上安装MySQL数据库,并简单设置用户密码,登录MySQL
在新装的Centos系统上安装MySQL数据库. <p><a href="http://www.cnblogs.com/tijun/">提君博客原创< ...
- python操作三大主流数据库(7)python操作mongodb数据库①mongodb的安装和简单使用
python操作mongodb数据库①mongodb的安装和简单使用 参考文档:中文版:http://www.mongoing.com/docs/crud.html英文版:https://docs.m ...
- Oracle数据库学习(一)安装和简单使用
新公司的新项目,需要用到Oracle数据库,所以现在便来解除此数据库,不得不说,这个数据库还这是麻烦. 安装倒是简单,就是中间会遇到各种问题. 安装步骤参考:https://blog.csdn.net ...
随机推荐
- mac系统下Eclipse + pydev配置python Interpreter
mac系统下Eclipse + pydev配置python Interpreter 之前都在windows下使用Eclipse + pydev 进行开发,未发现什么异常,最近对wxpy.itcha ...
- 23、GoAccess分析Nginx日志
1.GoAccess基本概述 GoAccess是一个基于终端的快速日志分析器.其核心思想是实时快速分析和查看Web服务器统计信息. 1.安装简单: 2.操作容易: 3.界面酷炫:  2.GoAcce ...
- python、mysql三-3:完整性约束
一 介绍 约束条件与数据类型的宽度一样,都是可选参数 作用:用于保证数据的完整性和一致性主要分为: PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录 FOREIGN KEY ...
- PIL:处理图像的好模块
介绍 PIL是一个专门用来处理图像的模块,可以对图象进行各种各样的变换 打开一张图片 from PIL import Image # 调用Image下的open方法,即可打开一张图片 # 得到的im便 ...
- requests:用于发送http请求,专为人类设计
介绍 requests模块是一个专门用来发送http请求的模块 如何发送请求 import requests """ 使用requests模块发送请求非常简单 首先请求有 ...
- deep_learning_Function_tensorflow_reshape()
numpy.reshape(a, newshape, order='C')[source],参数`newshape`是啥意思? 根据Numpy文档(https://docs.scipy.org/doc ...
- Charles中使用Map Local提高测试效率
书接上回,上次说到Charles中可以使用修改返回值来模拟接口返回,这次我们来说一下Charles中另外一个强大的功能. 我们用手机连接Charles,具体可以参考上一篇<借助Charles来测 ...
- jquery die()方法 语法
jquery die()方法 语法 作用:die() 方法移除所有通过 live() 方法向指定元素添加的一个或多个事件处理程序.直线电机参数 语法:$(selector).die(event,fun ...
- C# 5.0
序言 异步成员 但是 async 和 await 才是此版本真正的主角. C# 在 2012 年推出这些功能时,将异步引入语言作为最重要的组成部分,另现状大为改观. 如果你以前处理过冗长的运行操作以及 ...
- php上传大文件1G
前段时间做视频上传业务,通过网页上传视频到服务器. 视频大小 小则几十M,大则 1G+,以一般的HTTP请求发送数据的方式的话,会遇到的问题:1,文件过大,超出服务端的请求大小限制:2,请求时间过长, ...