Greenplum集群安装-无root账号但存在sodu权限(redhat系统)
此笔记记录在客户不提供root账号,切禁止root直接登录的情况下,使用sodu 来进行部署Greenplum集群安装
如果机器是最小化安装的化(Bin安装方式必须!)
sodu yum install ed openssh-clients zip unzip perl bind-utils net-tools -y
1.所有服务器关闭防火墙
涉及机器:所有服务器
2.修改主机名
涉及机器:所有服务器
修改各台主机的主机名称。一般建议的命名规则如下:
3.修改/etc/hosts文件
涉及机器:所有服务器
sudo vi /etc/hosts
4.检查时间
涉及机器:所有服务器
5.修改系统参数
涉及机器:所有服务器
5.1修改系统参数/etc/sysctl.conf
sudo vi /etc/sysctl.conf
添加:
注意:如下的内容根据内存的实际情况进行修改
修改postgres进程的oom_score:
sudo echo -1000 > /proc/self/oom_score_adj
注意:
gp–>kernel.shmmax的值:64G内存—shmmax :68719476736,128G内存– shmmax :137438953472,即物理内存*0.9*1024*1024*1024,如我的机器全是256G的:256*1024*1024*1024*0.9 , 其实只要超过128G 都可以默认得了…
然后
sysctl -p
生效cat /proc/sys/kernel/sem
查看
5.2修改系统参数/etc/security/limits.conf
sudo vi /etc/security/limits.conf
在最后增加:
注意:
对于RedHat6.x/CENTOS 6.X系统,还需要将vi /etc/security/limits.d/90-nproc.conf文件中的1024修改为131072。
对于RedHat7.x/CENTOS 7.X系统,还需要将vi 录vi /etc/security/limits.d/20-nproc.conf文件中的4096修改为131072。
5.3修改磁盘预读参数(看了官网配置-sudo可省略吧?)
在参数文件sudo vi /etc/rc.d/rc.local
中增加:
/dev/sd*
为硬盘设备标识
保存修改后单独执行命令:sodu权限无法执行–>echo "/sbin/blockdev --setra 16384 /dev/sd*" >> /etc/rc.d/rc.local
echo 1 > /proc/sys/vm/overcommit_memory
5.4修改启动配置,可省略
vi /etc/inittab
#在最后增加:
id:3:initdefault:
5.5修改最大连接限制
sudo vi /etc/ssh/sshd_config
[找到MaxStartups去掉#并修改为如下参数]
MaxStartups=1000:30:5000
5.6修改SELINUX
sudo vi /etc/sysconfig/selinux
#找到SELINUX修改:
SELINUX=disabled
5.7网络参数调整
6.创建GP用户
涉及机器:所有服务器
建立用户组gpadmin,gpadmin
如果服务器之前已经部署过,但是未清除干净,可能用到的一些命令:
7.所有机器执行挂载
涉及机器:所有服务器
7.1 数据盘数据存储文件夹的创建
master和standby(master备份机)服务器的存储创建:
segment存储创建:(如果计划master也需要存储数据也需要创建上)
8.安装Greenplum
Master安装greenplum
Bin的二进制安装方式
将安装 greenplum-db-5.28.5-rhel7-x86_64.zip
上传到/home/gpadmin目录下。
解压 greenplum-db-5.28.5-rhel7-x86_64.zip
得到greenplum-db-5.28.5-rhel7-x86_64.bin
用gpadmin
用户执行这个bin文件:
./greenplumdb-5.28.5-rhel7-x86_64.bin
显示一堆文字,按回车键直到显示:直到安装完成(默认安装在/usr/local目录)
chown -R gpadmin:gpadmin /usr/local/greenplum*
RPM包安装方式
上传greenplum-db-5.28.5-rhel7-x86_64.rpm
安装:yum install -y greenplum-db-5.28.5-rhel7-x86_64.rpm
默认安装在/usr/local目录下,安装greenpum需要很多依赖,但是通过这样安装默认自动安装需要的依赖。
安装完毕后会出现目录:/usr/local/greenplum-db
chown -R gpadmin:gpadmin /usr/local/greenplum*
读取变量
数据库安装在那就修改,如这边安装在/data数据盘下:
source /usr/local/greenplum-db/greenplum_path.sh
配置全部服务器列表(在master-gpadmin上创建)
配置全部segment的服务器列表(在master-gpadmin上创建)
同步master安装的greenplum到各个主机
这里主要是同步:/usr/local/greenplum-db文件到其他的主机上,不管使用什么方式,只要最终在每个机器上都要有greenplum即可
可以使用scp,也可以使用gp的方式(需要root账号)注意:这里会涉及到权限的问题,所以使用root就好,最后通过chown去修改为gpadmin即可
设置安装用户的环境变量
涉及机器:所有服务器gpadmin账号
涉及机器:master服务器gpadmin账号
9.建立多机信任(重要步骤)
Master主机gpadmin
用户建立多机信任
gpssh-exkeys -f /home/gpadmin/gp_install/all_hosts
建立多机信任完毕后,测试各个节点是否能连通
gpssh -f ./all_hosts
10.参数配置检查(可省略)
在Master上使用gpadmin用户登录执行系统检查
#新建check文件
vi check
#添加:
/sbin/sysctl -p
/sbin/blockdev --setra 16384 /dev/sd*
blockdev --getra /dev/sd*
df -h
/etc/init.d/iptables stop
/etc/init.d/iptables status
chkconfig iptables off
chkconfig --list iptables
setenforce 0
getenforce
cat /etc/sysconfig/network
cat /etc/hosts
grep MaxStartups /etc/ssh/sshd_config
#执行
gpssh -f all_hosts -v < check
11.初始化数据库 (非常重要…)
#读取变量
source /home/gpadmin/.bashrc
创建配置文件
#添加节点服务器:
vi hostfile_gpinitsystem
注意:
如果想要master也做存储则加上,反之可剔除掉,原因如下:
加上主服务器,可以当作一个
seg节点
,数据就可以存到主服务器(主要看性能)
#配置实例对应的磁盘:
1.实例数不用太多
2.DATA_DIRECTORY 一个目录代表一个实例
vi gpinitsystem_config
注意修改:
declare -a DATA_DIRECTORY=(
/data/gp/primary
)MASTER_HOSTNAME=
mdw29
MASTER_DIRECTORY=/data/master
declare -a MIRROR_DATA_DIRECTORY=(
/data/gp/mirror
)
执行初始化
gpinitsystem -c gpinitsystem_config -h hostfile_gpinitsystem
运行结果中如出现如下信息则创建成功!
Greenplum Database instance successfully created
安装master standby
master的standby都可以在初始化的时候安装,也可以在安装好了手动添加master standby,参考:http://docs-cn.greenplum.org/v6/utility_guide/admin_utilities/gpinitstandby.html
安装master standby:gpinitstandby -s seg_name
12.远程访问设置(master-gpadmin上执行)
cd $MASTER_DATA_DIRECTORY
vi pg_hba.conf
13.配置GP数据库登录密码(master-gpadmin上执行)
登录数据库:psql -d lte_mr
>alter role gpadmin with password ‘gpadmin_GP$’;
gpadmin_GP$
为连接数据库的密码,输入:\q
退出数据库
14.GP数据库参数配置(master-gpadmin上执行)
https://greenplum.org/calc/ 这是计算器,直接参考
gp_vmem_protect_limit = gp_vmem / max_acting_primary_segments
(内存总量/实例数+2(格外加2个容错的primary))
gp_vmem(Greenplum数据库可用的主机内存):
gp_vmem = ((SWAP + RAM) – (7.5GB + 0.05 * RAM)) / 1.7
如现在我500G可用内存:gp_vmem = (500 -(7.5+0.05*500))/1.7 = 275G
实例数为4:max_acting_primary_segments = 4 (格外加2个容错的primary)=6
gp_vmem_protect_limit = gp_vmem / max_acting_primary_segments
= 275/6=46G = 46933MB
gpconfig -c gp_vmem_protect_limit -v 46933
statement_mem =((gp_vmem_protect_limit * .9) / max_expected_concurrent_queries)
= 46933*0.9/30 =1408MB
#以下操作gpadmin用户在mdw上执行:因为这次就一个盘所以默认即可
https://blog.csdn.net/dockj/article/details/88697460
查看参数是否配置成功,可到每个data下面的配置文件查看:
如/data/gp/mirror/gpseg01/postgresql.conf
15.重启GP数据库(master-gpadmin上执行)
#以下步骤gpadmin用户在mdw执行,切换用户:su – gpadmin
停数据库:gpstop -M fast
启数据库:gpstart -a
查看各节点状态:gpstate –m