暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Greenplum数据库扩容安装方案-4.3.32.0

原创 陈耀斌 2025-07-22
139

Greenplum数据库扩容安装方案

目录

第一章 概述 3

第二章 GreenpluP扩容环境搭建 4

2.1 操作系统安装 4

2.2 修改主机名 4

2.3 修改/etc/hosts文件 5

2.4 关闭相关服务 5

2.5 修改系统参数(Redhat) 5

2.5.1 修改系统参数/etc/sysctl.conf 5

2.5.2 修改系统参数/etc/security/limits.conf 7

2.5.3 修改磁盘预读参数 7

2.5.4 修改配置/boot/grub/grub.conf 7

2.6 修改启动配置 8

2.7 关闭非必要的服务 8

2.8 重启各台服务器 8

2.9 创建gpadmin用户 9

2.9.1 新建用户组 9

2.9.2 新建用户 9

2.10 时钟同步 10

第三章 Greenplum数据库扩容 11

3.1 gpssh创建主机间信任关系 11

3.2 创建相关目录 12

3.3 Greenplum扩容 12

第四章 Greenplum扩容回退 14

4.1 数据库扩容回退 14

4.2 删除相关目录 14

概述

本次Greenplum数据库集群原有10台服务器构成,2+8模式安装,即2台Master和6台Segment。本次项目扩容6台服务器到原有集群,使GreenPlum集群达到16台服务器,构成2+14集群模式。在扩容之前需要确认以下准备工作已完成。

  • 数据安全

为保证在数据库扩容期间,数据始终安全,需要对数据库全部数据进行备份,并保证备份数据安全可恢复。

备份方案主要包括:

1.根据需求备份到

  • 硬件条件

在对新增的服务器设备,进行GP软甲扩容之前,必须保证硬件实施条件的满足,主要包括以下内容:

  1. 服务器上架,将服务器、交换机等扩容设备,安装到指定的机房/机柜位置。
  2. 网络连通,任意两台服务器(包括与原集群)网络连通,带宽一致,网卡配置/连接规范与原集群保持一致。并且提前规划好IP分配。
  3. 服务器设备健康,保证所有服务器(各个模块)设备,可以正常使用。如果不对新增的服务器有特殊的负载需求,尽量保证新增服务器配置不低于原服务器,包括磁盘存储、CPU数量/规格、内存和网卡。

GreenpluP扩容环境搭建

关闭相关服务

【涉及机器】:所有新添加的服务器

关闭防火墙

service iptables save

service iptables stop

chkconfig iptables off

service ip6tables save

service ip6tables stop

chkconfig ip6tables off

修改系统参数(Redhat)

【涉及机器】:所有服务器

使用root用户进行修改,重启后生效。

修改系统参数/etc/sysctl.conf

(Sysctl是一个允许您改变正在运行中的Linux系统的接口。它包含一些 TCP/IP 堆栈和虚拟内存系统的高级选项,具体实施参考原集群的配置)

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.ip_forward = 0

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_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

修改系统参数/etc/security/limits.conf

* soft nproc 131072

* hard nproc 131072

* soft nofile 131072

* hard nofile 131072

修改磁盘预读参数

在参数文件/etc/rc.d/rc.local中增加

blockdev --setra 16384 /dev/sd*

修改配置/boot/grub/grub.conf

增加elevator=deadline

sed -i "s/rhgb/elevator=deadline rhgb/g" /boot/grub/grub.conf

如果是EFI启动系统时,修改/boot/efi/EFI/redhat/grub.conf

sed -i "s/rhgb/elevator=deadline rhgb/g" /boot/efi/EFI/redhat/grub.conf

修改启动配置

修改/etc/inittab

id:3:initdefault: (修改运行级别为3,多用户命令行模式)

关闭非必要的服务

chkconfig avahi-daemon off

chkconfig avahi-dnsconfd off

chkconfig conman off

chkconfig bluetooth off

chkconfig cpuspeed off

chkconfig setroubleshoot off

chkconfig hidd off

chkconfig hplip off

chkconfig isdn off

chkconfig kudzu off

chkconfig yum-updatesd off

重启服务器

必须完成上述步骤之后,才重启各台服务器。

创建gpadmin用户

新建用户组

groupadd -g 3030 gpadmin

新建用户

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

useradd -u 3040 -g gpmon -d /home/gpmon -s /bin/bash -m gpmon

echo gpadmin |passwd --stdin gpadmin

echo gpmon |passwd --stdin gpmon

修改环境变量

echo “source /usr/local/greenplum-db/greenplum_path.sh” >> /home/gpadmin/.bashrc

echo “ source /usr/local/greenplum-cc-web/gpcc_path.sh” >> /home/gpadmin/.bashrc

echo “source /usr/local/greenplum-db/greenplum_path.sh” >> /home/ gpmon /.bashrc

echo “ source /usr/local/greenplum-cc-web/gpcc_path.sh” >> /home/ gpmon /.bashrc

时钟同步

所有新增加服务器如下配置,进行时钟同步。

1、备份原ntp配置文件:

mv /etc/ntp.conf /etc/ntp.conf.bak

2、重新创建一个配置文件vi /etc/ntp.conf,内容如下:

server mdw

3、启动服务:

chmod 644 /etc/ntp.conf

chkconfig ntpd on

service ntpd restart

稍等几分钟即可同步时钟。检查时钟同步结果

gpssh -f all_hosts

=>date (查看各台服务器时间是否一致)

Greenplum数据库扩容

该操作尽量停止数据库的业务加工,大概时间需要1~2小时完成。

gpssh创建主机间信任关系

登录master服务区,切换到gpadmin用户

# su - gpadmin

编辑all_expand_file

Sdw9

Sdw10

sdw11

sdw12

sdw13

sdw14

新增节点和原有节点建立信任关系:

hostfile_exkeys:集群内部已经存在的所有主机(地址);

all_expand_file:新增主机的所有地址;

gpssh-exkeys -e /home/gpadmin/hostfile_exkeys –x /home/gpadmin/ all_expand_file

例如以下示例:

$ cat hostfile_exkeys

mdw

mdw-1

mdw-2

smdw

smdw-1

smdw-2

sdw1

sdw1-1

sdw1-2

sdw2

sdw2-1

sdw2-2

sdw3

sdw3-1

sdw3-2

sdw4

sdw4-1

sdw4-2

sdw5

sdw5-1

sdw5-2

sdw6

sdw6-1

sdw6-2

sdw7

sdw7-1

sdw7-2

sdw8

sdw8-1

sdw8-2

$ cat hostfile_gpexpand

sdw9

sdw9-1

sdw9-2

sdw10

sdw10-1

sdw10-2

sdw11

sdw11-1

sdw11-2

sdw12

sdw12-1

sdw12-2

sdw7

sdw13-1

sdw13-2

sdw14

sdw14-1

sdw14-2

$ gpssh-exkeys -e hostfile_exkeys -x hostfile_gpexpand

创建相关目录

创建初始化文件中相关目录并对所有Greenplum相关目录更改属主和赋权,如:

新增节点上:

mkdir /vol1/p1

mkdir /vol1/p2

mkdir /vol1/p3

mkdir /vol1/p4

mkdir /vol1/m1

mkdir /vol1/m2

mkdir /vol1/m3

mkdir /vol1/m4

mkdir /vol2/p5

mkdir /vol2/p6

mkdir /vol2/p7

mkdir /vol2/p8

mkdir /vol2/m5

mkdir /vol2/m6

mkdir /vol2/m7

mkdir /vol2/m8

具体实施参考原有集群配置。

Greenplum扩容测试

为保证在生产系统进行扩容时,能够一次完成,并成功。谨慎的方法是在新曾集群中进行初始化一个数据库实例。

gpseginstall -f /home/gpadmin/gpdb/expand

Greenplum扩容

在Master节点:

切换回gpadmin用户,启动扩容:

1

创建扩容实施用数据库exp

createdb exp

2

新节点加入集群(初始化新扩容的segment instance)

gpseginstall -f /home/gpadmin/all_expand_file

gpexpand -f /home/gpadmin/all_expand_file
生成配置文件
gpexpand -i gpexpand_inputfile -D exp

3

重分布数据表

$ gpexpand -d 05:00:00

4

验证数据是否重分布完成正确

gpstate -e

select * from gpexpand.expansion_progress;

SELECT status, expansion_started, source_bytes

FROM gpexpand.status_detail

WHERE fq_name = 'XXX';

select status,count(1),round(sum(source_bytes/1024/1024/1024),2) as size_giga from gpexpand.status_detail group by status order by 1;

select fq_name,expansion_started,expansion_finished,source_bytes from gpexpand.status_detail where status='IN PROGRESS';

5

清除扩展Schema

数据重分布完成后清除扩容时创建的临时对象;

$gpexpand -c -D exp

$dropdb exp

Greenplum扩容回退

数据库扩容回退

在Master节点的gpadmin用户下:

$gpexpand –r

删除相关目录

彻底删除相关节点的gp_init_config文件中的相关路径以及/usr/local下greenplum相关目录即可完全卸载Greenplum软件;

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论