【小白】Greenplum集群数据库搭建指南已搭建5次,参照网上教程3次,后续整理本教程,参照本教程完成2次,可放心使用!!
一、环境说明本次搭建共两台Linuex服务器,一台Master节点,二台Segment节点,其中sdw2为master的standby(备份)所在的节点(以下IP为修改后的ip):
192.168.14.155 mdw
192.168.14.156 sdw1
192.168.14.157 sdw2
GP版本:greenplum-db-6.16.2-rhel7-x86_64.rpm
安装包下载(官网):Download VMware Tanzu™ Greenplum® — VMware Tanzu Network
二、安装前服务器准备1.关闭防火墙(所有)
启动:systemctl start firewalld
关闭:systemctl stop firewalld
查看状态:systemctl status firewalld
开机禁用:systemctl disable firewalld
开机启用:systemctl enable firewalld
其中Active状态为dead则防火墙为关闭状态,如不是关闭状态则需要执行关闭防火墙的代码;同时建议执行开机禁用防护墙命令,以确保防火墙为关闭状态。
2.配置hosts(所有)
/ect/hosts添加:
192.168.14.155 mdw192.168.14.156 sdw1192.168.14.157 sdw2确保所有机器ping所有的hostname都是通的
3.修改内核(所有)
/etc/sysctl.conf 中追加
kernel.shmmax = 500000000kernel.shmmni = 4096kernel.shmall = 4000000000kernel.sem = 500 1024000 200 4096kernel.sysrq = 1kernel.core_uses_pid = 1kernel.msgmnb = 65536kernel.msgmax = 65536kernel.msgmni = 2048net.ipv4.tcp_syncookies = 1net.ipv4.conf.default.accept_source_route = 0net.ipv4.tcp_tw_recycle = 1net.ipv4.tcp_max_syn_backlog = 4096net.ipv4.conf.all.arp_filter = 1net.ipv4.ip_local_port_range = 10000 65535net.core.netdev_max_backlog = 10000net.core.rmem_max = 2097152net.core.wmem_max = 2097152vm.overcommit_memory = 2vm.swappiness = 10vm.dirty_expire_centisecs = 500vm.dirty_writeback_centisecs = 100vm.dirty_background_ratio = 0vm.dirty_ratio=0vm.dirty_background_bytes = 1610612736vm.dirty_bytes = 4294967296
添加后执行:
sysctl -p4.修改文件打开限制(所有)
vi /etc/security/limits.conf
* soft nofile 65536* hard nofile 65536* soft nproc 131072* hard nproc 131072加在“# End of file”内容之前
5.创建用户和用户组(所有)
groupadd -g 530 gpadminuseradd -g 530 -u530 -m -d /home/gpadmin -s /bin/bash gpadminchown -R gpadmin:gpadmin /home/gpadmin/passwd gpadmin6.创建安装目录,并赋权限(所有)
mkdir /opt/greenplumchown -R gpadmin:gpadmin /opt/greenplum/7.修改主机名(所有)
hostnamectl set-hostname 主机名8.授权问题(所有)
/etc/sudoers下添加(注:在同格式 root 后添加)
gpadmin ALL=(ALL) ALL9.重启(所有)
reboot三、开始安装1.上传安装文件到主节点(master)
greenplum-db-5.7.1-rhel7-x86_64.zip 上传到/home/pgadmin 下
2.在线情况使用yum直接进行安装定位到当前安装包所在目录执行(没有yum?参考附录)(master):
yum install greenplum-db-6.16.2-rhel7-x86_64.rpm -y安装过程选择安装目录:/opt/greenplum
rpm -ivh –-prefix=/opt/greenplum greenplum-db-6.16.2-rhel7-x86_64.rpm3.离线情况
将整理好的依赖包拽到mdw中并定位到依赖所在目录下,执行
yum clean all ;yum localinstall –y --skip-broken ./*依赖安装完成后定位到greenplum安装包路径,执行
rpm -ivh -–prefix=/opt/greenplum greenplum-db-6.16.2-rhel7-x86_64.rpm处理依赖包备用方案执行(不推荐)
rpm -Uvh --force --nodeps *.rpm一些会用的命令整合(参考使用)
rpm -ivh *.rpm #安装rpm依赖rpm -Uvh *.rpm #更新rpm依赖
tar -xvf *.tar #解压tar包
#使用环境 安装的目标服务器为离线 提前使用有网的服务器使用此命令#命令功能为将“要安装的包”所需依赖下载并保存到“保存路径”下,以供离线安装依赖yum -y install 要安装的包 --downloadonly --downloaddir=保存路径4.安装完成后应用下环境变量(master):
source /opt/greenplum/greenplum-db/greenplum_path.sh5.配置hostlist文件记录所有节点,seg_hosts文件只记录segment节点(master)
[gpadmin@mdw ~]$ cat hostlist mdw sdw1 sdw2
[gpadmin@mdw ~]$ cat seg_hosts sdw1 sdw26.gpssh-exkeys 打通服务器,即服务器间免密码登陆(master)
gpssh-exkeys -f hostlist打通前可能需要ssh秘钥实现免密登录具体实现步骤如下:
情况一,秘钥问题
(1)使用ssh-keygen生成ssh秘钥(一直回车就行)
(2)使用ssh-copy-id 用户名@主机名进行公钥分发(master分发给所有节点)
情况二,子节点与子节点之间报错
(1)修改hosts文件,减少节点,尝试主节点和台先打通,之后再加一台,依次进行打通(每次都重新生成秘钥并分发)
(2)可能是公钥分发失败,可以使用命令尝试是否可以免密连接
ssh sdw17.打通后就可以使用gpssh命令对所有节点进行批量操作(master):
[gpadmin@mdw ~]$ gpssh -f hostlist => pwd [sdw3] /home/gpadmin [sdw1] /home/gpadmin [sdw2] /home/gpadmin [ mdw] /home/gpadmin8.压缩主节点数据库文件
tar -cf gp6.16.tar greenplum-db-6.16.2/ master节点压缩后把主节点tar压缩包手动上传到每个子节点的opt/greenplum下并解压
也可通过如下命令进行压缩(可选操作,因为本次就三个节点所以未使用此方式)
[gpadmin@mdw ~]$ gpssh -f hostlist=> pwd[sdw3] /home/gpadmin[sdw1] /home/gpadmin[sdw2] /home/gpadmin[ mdw] /home/gpadmin=> tar -cf gp6.16.tar greenplum-db-6.16.2/ #压缩=> gpscp -f /home/gpadmin/hostlist gp6.16.tar =:/opt/greenplum/ #分发=> tar -xf gp6.16.tar9.创建数据库数据目录(注:一定要使用gpadmin进行创建,不然在初始化会报权限不足)(所有都需要创建)
=> mkdir -p /home/gpadmin/gpdata/gpmaster => mkdir -p /home/gpadmin/gpdata/gpdatap1 => mkdir -p /home/gpadmin/gpdata/gpdatap2 => mkdir -p /home/gpadmin/gpdata/gpdatam1 => mkdir -p /home/gpadmin/gpdata/gpdatam210.进行软连接(子节点)
注: 子节点执行,master不执行
ln -s /opt/greenplum/greenplum-db-6.16.2 /opt/greenplum/greenplum-db命令执行后在子节点opt/greenplum下会出现一个greenplum-db文件
11.配置 .bash_profile 环境变量(master)
source /opt/greenplum/greenplum-db/greenplum_path.shexport MASTER_DATA_DIRECTORY=/home/gpadmin/gpdata/gpmaster/gpseg-1export PGPORT=5432export PGDATABASE=testDB #默认进入的dbsource .bash_profile12.配置初始化配置文件,模板:/opt/greenplum/greenplum-db/docs/cli_help/gpconfigs/gpinitsystem_config(master)
可以使用以配好的模板文件gpinit_config
ARRAY_NAME="Greenplum"SEG_PREFIX=gpsegPORT_BASE=40000declare -a DATA_DIRECTORY=(/home/gpadmin/gpdata/gpdatap1 /home/gpadmin/gpdata/gpdatap2)MASTER_HOSTNAME=mdwMASTER_DIRECTORY=/home/gpadmin/gpdata/gpmasterMASTER_PORT=5432TRUSTED_SHELL=/usr/bin/sshCHECK_POINT_SEGMENTS=8ENCODING=UNICODEMIRROR_PORT_BASE=50000REPLICATION_PORT_BASE=41000MIRROR_REPLICATION_PORT_BASE=51000declare -a MIRROR_DATA_DIRECTORY=(/home/gpadmin/gpdata/gpdatam1 /home/gpadmin/gpdata/gpdatam2)MACHINE_LIST_FILE=/home/gpadmin/seg_hosts
13.初始化数据库(master)
gpinitsystem -c /home/gpadmin/gpinit_config -s sdw3其中sdw3是指master的standby(备份)所在的节点,书上和网上的一些资料都将standby放在后一个节点,可能是约定俗成
如提示::是否覆盖"/home/gpadmin/gpinit_config",而不理会权限模式0644 (rw-r--r--)? 输入 y
初始化根据脚本提示操作即可,如果上面有一些配置有问题,gpinitsystem就不能成功,日志在/home/gpadmin/gpAdminLogs中,认真查看日志,一味重复安装无意义
14.初始化报错:
可参考:
Greenplum初始化gpinitsystem报错解决_你好我是李白-CSDN博客https://blog.csdn.net/jwocnimabi/article/details/106864905
可参考:
gpstart error: Do not have enough valid segments to start the array._蚁人的博客-CSDN博客https://blog.csdn.net/u010429286/article/details/72903322
#初始化报错汇总(遇到过的) 1.master与segment节点的gp安装包要路径一致 2.报错权限不足------参考上边的授权问题以及参考上边创建数据库目录的注意事项15.测试验证数据库(master)
登陆默认数据库postgres
[gpadmin@mdw gpAdminLogs]$ psql -d postgres psql (8.3.23) Type "help" for help.postgres=#select datname,datdba,encoding,datacl from pg_database;显示信息如下
四、基本操作1、启动数据库
gpstart2、重启
gpstop -r3、仅重新载入配置文件的更改
gpstop -u4、停止数据库
gpstop5、创建数据库
createdb test_database -E utf-86、创建用户(测试使用Navcat进行数据库连接 则使用 6 - 8 进行数据库配置)
执行 psql, 进入到数据库(进入指定数据库:psql -d databasename),执行:
create role test password 'test' login;7、退出数据库
\q8、允许某用户远程登录
/gpdata/master/gpseg-1/pg_hba.conf 文末添加:
host all gpadmin 0.0.0.0/1 md5host all test 0.0.0.0/0 md5执行:
gpstop –u#如果执行后还是连接不上可以关闭数据库在启动gpstopgpstart配置后就可进行连接
主机为 : master 地址
端口 : 5432
初始数据库 : postgres
用户名 : test
密码 : test
附录ssh参考资料:SSH原理与运用(一):远程登录 - 阮一峰的网络日志http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html
yum安装:
-bash: yum: command not found_邓国胜的博客_新浪博客http://blog.sina.com.cn/s/blog_643754960102w82m.html
附录2
1.二次连接 gpstart 或者 gpstop 报错:
-gpstop failed. (Reason='Environment Variable MASTER_DATA_DIRECTORY not set!') exiting...解决方案:
vim ~/.bashrc添加内容:
MASTER_DATA_DIRECTORY=/home/gpadmin/gpdata/gpmaster/gpsne-1export MASTER_DATA_DIRECTORY添加后执行命令:
source .bashrc2.vim命令简单使用
vim 命令打开某个文件后,点击 i 键 进入编辑模式,此时进行编辑,编辑完成后使用 esc 键退出编辑模式,输入 :wq 进行保存退出。
本文来源:https://blog.csdn.net/zzbbhhh/article/details/120365861