Greenplum数据库扩容安装方案
目录
2.5.1 修改系统参数/etc/sysctl.conf 5
2.5.2 修改系统参数/etc/security/limits.conf 7
2.5.4 修改配置/boot/grub/grub.conf 7
概述
本次Greenplum数据库集群原有10台服务器构成,2+8模式安装,即2台Master和6台Segment。本次项目扩容6台服务器到原有集群,使GreenPlum集群达到16台服务器,构成2+14集群模式。在扩容之前需要确认以下准备工作已完成。
- 数据安全
为保证在数据库扩容期间,数据始终安全,需要对数据库全部数据进行备份,并保证备份数据安全可恢复。
备份方案主要包括:
1.根据需求备份到
- 硬件条件
在对新增的服务器设备,进行GP软甲扩容之前,必须保证硬件实施条件的满足,主要包括以下内容:
- 服务器上架,将服务器、交换机等扩容设备,安装到指定的机房/机柜位置。
- 网络连通,任意两台服务器(包括与原集群)网络连通,带宽一致,网卡配置/连接规范与原集群保持一致。并且提前规划好IP分配。
- 服务器设备健康,保证所有服务器(各个模块)设备,可以正常使用。如果不对新增的服务器有特殊的负载需求,尽量保证新增服务器配置不低于原服务器,包括磁盘存储、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用户,启动扩容:
Greenplum扩容回退
数据库扩容回退
在Master节点的gpadmin用户下:
$gpexpand –r
删除相关目录
彻底删除相关节点的gp_init_config文件中的相关路径以及/usr/local下greenplum相关目录即可完全卸载Greenplum软件;




