【小白Greenplum集群数据库搭建指南

2023年 8月 12日 67.4k 0

【小白】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

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论