Greenplum一主两从集群安装配置全过程(图文并茂)

概要

本文章中图片仅做参考,具体设置内容需结合自己所创建的内容来实际设置,本次安装中,主机仅做节点分发,不做数据存储,由从机做数据存储,安装教程适用于Greenplum5.13、Greenplum6.10、Greenplum6.81等版本,因为安装过程中需要频繁的切换用户以及环境变量是否存在等问题,所以需要格外注意

系统信息

三台Ubuntu操作系统(18.04)
数据库:Greenplum5.13.0

节点IP内存硬盘
mdw192.168.1.1116G500G
sdw1192.168.1.1316G500G
sdw2192.168.1.1516G500G

配置网络

将网络配置成手动模式的固定网络,因为在内网中,所以我们需要将每台机器的网络都设置成为固定的IP,点击网络连接 – 有线连接 已连接 – 有线设置 – ipv4
在这里插入图片描述

安装文件授权解压

将安装的文件拷贝上去,然后解压到 /usr/local/ 文件夹下
首先需要给用户授权:

sudo chown -R mdw /usr/local/

然后解压到 /usr/local/ 文件夹下,我们的文件路径为: /usr/local/greenplum-db-5.13.0 处

将安装包放入服务器中,并解压安装

一定要提前将安装包解压安装好,否者用户会出现一些权限的错误导致安装时需要认证

配置SSH

安装所缺的依赖,每台机器都需要安装,确保工具远程连接能够连接到,安装并输入密码

sudo apt-get install net-tools vim -y

安装ssh服务器,并确认

sudo apt-get install openssh-server

检查防火墙设置,关闭防火墙

sudo ufw disable

检验是否成功,运行下面的命令

ssh localhost

创建root用户密码

创建密码:

sudo passwd root

输入密码:111111
切换用户:

su root

输入密码:111111

编辑hosts文件

将主机和从机的ip以及别名添加到该文件中

vim /etc/hosts

添加内容,根据实际IP情况进行设置

192.168.1.11    mdw
192.168.1.13    sdw1
192.168.1.15    sdw2

在这里插入图片描述

配置系统参数

设置共享内存参数以及网络的参数配置

vim /etc/sysctl.conf

每一台主机上都要在最后方添加

kernel.shmmax = 500000000
kernel.shmmni = 4096
kernel.shmall = 4000000000
kernel.sem = 250 512000 100 2048
kernel.sysrq = 1
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.msgmni = 2048
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.conf.all.arp_filter = 1
net.ipv4.ip_forward=0
net.ipv4.ip_local_port_range = 1025 65535
net.core.netdev_max_backlog = 10000
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
vm.overcommit_memory = 2

在这里插入图片描述

修改limits.conf文件

vim /etc/security/limits.conf

将以下文件写入该文件中

* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072

在这里插入图片描述

设置预读块的值
查看预读块大小,此时预读块大小应该为 256

/sbin/blockdev --getra /dev/sda

设置预读块大小为16384

/sbin/blockdev --setra 16384 /dev/sda
/sbin/blockdev --setra 16384 /dev/sda1
/sbin/blockdev --setra 16384 /dev/sda2

然后重启,让相关的文件生效

shutdown -r now

建立专有用户gpadmin

切换root用户

su root

输入密码: 111111
进行用户创建

sudo groupadd -g 530 gpadmin

sudo useradd -g 530 -u 530 -m -d /home/gpadmin -s /bin/bash gpadmin

授权

sudo chown -R gpadmin:gpadmin /home/gpadmin/

sudo passwd gpadmin

为GPCC的文件夹授权(如不安装GPCC可不做此操作)

chown -R gpadmin:gpadmin /usr/local/

密码:111111
再次输入密码:111111在这里插入图片描述

如出现错误提示:

问题一:sudo: 致命错误,无法加载插件

执行下面两个命令修改文件权限

$ chmod 644 /usr/lib/sudo/sudoers.so
$ chown -R root /usr/lib/sudo

问题二:sudo: /usr/bin/sudo 必须属于用户 ID 0(的用户)并且设置 setuid 位

切换root用户

su root 
111111

修改greenplum_path.sh中的GPHOME

vim /usr/local/greenplum-db-5.13.0/greenplum_path.sh

修改成自己的版本

GPHOME=/usr/local/greenplum-db-5.13.0

在这里插入图片描述

切换用户:

su gpadmin

让资源生效:

source /usr/local/greenplum-db-5.13.0/greenplum_path.sh

查看环境变量

env

如果环境变量中有 GPHOME 的信息,及代表环境变量生效,并且要注意是否能够通过 GPHOME 所显示的路径找到你所安装的地址,如找不到,需要进入你所安装的文件夹中修改 greenplum_path.sh 里面的内容指向信息

验证安装及免密登陆

创建主机文件all_hosts,将各个主机的别名写入,配置免密

vim all_hosts

source /usr/local/greenplum-db-5.13.0/greenplum_path.sh

gpssh-exkeys -f all_hosts

在这里插入图片描述
在这里插入图片描述

验证安装及免密登录2

有可能上述免密方法执行不成功,上述方法在5.2.1中执行是可以的,后来装6.2.0执行不成功,所以用了下面这种方法来授权免密:
配置ssh直接访问,进行操作之前需要切换用户为gpadmin:gpadmin,毕竟我们接下来的操作是要在gpadmin的权限下进行的

su gpadmin

在xiaoyao上执行如下命令来生成唯一密钥(之后将会scp到另外三台电脑上):

ssh-keygen
cp ~/.ssh/id_isa.pub ~/.ssh/authorized_keys
chomd 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh/

在其他三台电脑上通过命令:

scp -r gpadmin@mdw:~/.ssh/authorized_keys ~/.ssh/authorized_keys
scp -r gpadmin@mdw:~/.ssh/id_rsa ~/.ssh/id_rsa
scp -r gpadmin@mdw:~/.ssh/id_rsa.pub ~/.ssh/id_rsa.pub

然后ssh配置文件拷贝到本地。
接下来,便可以通过在任意一台电脑上以gpadmin的身份执行:

ssh gpadmin@mdw,
ssh gpadmin@sdw1,
ssh gpadmin@sdw2,
ssh gpadmin@sdw3

你必须首次创建.ssh目录和authorized_keys文件,否则将不会出现authorized_keys

解决方法, 创建authorized_keys文件

touch ~/.ssh/authorized_keys

设置正确的权限,权限很重要,如果没有权限,则无法工作!

chmod 600 ~/.ssh/authorized_keys

现在你可以将公钥添加到authorized_keys文件

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

创建数据目录/存储区域,并进行授权

使用root用户创建文件夹,在所有节点执行下面的操作,并查看是否创建成功

su root

密码:111111

sudo mkdir -p /data/greenplum_data/primary

sudo mkdir -p /data/greenplum_data/mirror

sudo mkdir -p /data/greenplum_data/gpmaster

sudo chown -R gpadmin:gpadmin /data/

cd /data/greenplum_data/

ls

在这里插入图片描述

同步系统时间

在各个机器安装 ntp

apt install -y ntp

修改/etc/ntp.conf :

vim /etc/ntp.conf

添加 :

server mdw

在这里插入图片描述
执行命令生效

ntpd

初始化GP数据库系统

su gpadmin

cp  /usr/local/greenplum-db-5/docs/cli_help/gpconfigs/gpinitsystem_config ~/gpinitsystem_config

chmod 775 gpinitsystem_config

vim gpinitsystem_config

具体配置内容如下,需要换成自己的路径,图片仅做参考
在这里插入图片描述
编辑所有子节点文件

vim all_segs

在这里插入图片描述
运行初始化工具

gpinitsystem -c gpinitsystem_config -h all_segs

开启远程访问

在mdw节点执行

vim /data/greenplum_data/gpmaster/gpseg-1/pg_hba.conf

在文件最后加上

host     all         all         0.0.0.0/0     trust

reload配置文件,在不停止集群情况下,reload配置文件,编辑文件

vim ~/.bashrc

添加插入

MASTER_DATA_DIRECTORY=/data/greenplum_data/gpmaster/gpseg-1

执行生效该配置

export MASTER_DATA_DIRECTORY

资源载入

source /home/gpadmin/.bashrc

重启数据库

关闭数据库

gpstop

重启数据库

gpstart

完成操作后,您可以创建数据库,登录并开始执行查询和插入数据。

操作数据库

创建数据库

createdb demo

进入数据库

psql demo

在这里插入图片描述

常用命令

电脑重启

 shutdown -r now

查看集群状态

gpstate –m | -e

重启集群

gpstop –a –r

停止集群

gpstop –a

psql命令行退出

\q

停止数据库后再次启动如报错可能还需执行

source /usr/local/greenplum-db-6.2.1/greenplum_path.sh

export MASTER_DATA_DIRECTORY

source /home/gpadmin/.bashrc

然后执行

gpstart

启动数据库

停止cus服务,不让它写日志

如果不做此操作,系统可能会一直写错误日志,导致内存不断减少,最终磁盘空间不足导致从机宕机,原因可能是上面授权时,权限授的过大,导致无用日志写入

sudo service cups stop

文件下载

可从官网进行下载,Greenplum为Ubuntu操作系统提供了一个二进制文件 。可以通过apt-get命令将其安装在Ubuntu Personal Package Archive系统中,也可以在官网下载某一个版本的 rpm 文件进行安装,我上传了5.13.0版本的安装文件

Greenplum 集群之间同步数据方法及性能.....................................................................................1 1 概述.................................................................................................................................................2 2 相同集群相同数据库不同 SCHEMA 之间同步数据....................................................................2 2.1 查看原始表的大小行数与结构......................................................................................... 2 2.2 同步语句..............................................................................................................................2 2.3 查看 cpu 与内存的使用情况..............................................................................................3 2.3.1 查看 Master CPU 与内存使用情况.........................................................................3 2.3.2 查看数据节点的 CPU 使用情况..............................................................................3 2.3.3 查看数据节点的内存与磁盘使用情况..................................................................6 2.4 查看耗时与表的大小..........................................................................................................7 3 相同集群不同数据库之间同步数据.............................................................................................8 3.1 使用 pg_dum 方式同步数据..............................................................................................8 3.1.1 查看原始表的信息...................................................................................................8 3.1.2 把数据下载到磁盘...................................................................................................9 3.1.2.1 下载数据语句............................................................................................... 9 3.1.2.2 查看 Master 节点详细信息.........................................................................9 3.1.3 把数据导入到数据库中........................................................................................ 10 3.1.3.1 导入数据库语句......................................................................................... 10 3.1.3.2 查看 Master 节点的详细信息...................................................................11 3.1.3.3 查看数据节点的详细信息.........................................................................11 3.1.4 验证数据的准确性................................................................................................ 13 3.1.5 pg_dump 同步数据总结........................................................................................13 3.2 使用 dblink 同步数据........................................................................................................13 3.2.1 dblink 同步相同集群不同数据库数据.............................................................13 3.2.1.1 同步语句......................................................................................................13 3.2.1.2 查看 Master 节点的详细信息...................................................................15 3.2.1.3 查看数据节点的详细信息.........................................................................15 3.2.2 验证数据的准确性................................................................................................ 17 3.2.3 dblink 使用总结......................................................................................................17 3.3 使用 gptransfer 同步数据.................................................................................................17 3.3.1 gptransfer 介绍.......................................................................................................17 3.3.2 gptransfer 命令参数介绍.......................................................................................18 3.3.3 查看集群及硬件信息............................................................................................ 19 3.3.4 同集群之间同步数据............................................................................................ 19 3.3.4.1 查看表的详细信息..................................................................................... 19 3.3.4.2 进行表数据同步......................................................................................... 19 3.3.4.3 查看硬件详细信息..................................................................................... 21 3.3.4.4 查看数据的准确性..................................................................................... 23 3.3.4.5 使用 gptransfer 总结...................................................................................23 3.3.5 不同集群之间同步数据........................................................................................ 24
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值