greenplum安装过程
1.系统架构
此处采用 mdw+sdw搭建集群
系统为redhat7.9,64G内存
安装包:greenplum-db-6.20.1-rhel7-x86_64.rpm
服务器用户:gpadmin
服务器密码:Gpadmin@2024
2.配置服务器
2.1.IP配置
四台服务器,计划配置为:
主机名 说明 IP地址
mdw Master Segment 10.128.77.58
sdw1 Data Segment 10.128.77.59
sdw2 Data Segment 10.128.77.60
sdw3 Data Segment 10.128.77.61
2.2.host配置
在所有服务器上分别在 /etc/hosts 加⼊如下⾏:vi /etc/hosts #master 10.128.77.58 mdw #segments 10.128.77.59 sdw1 10.128.77.60 sdw2 10.128.77.61 sdw3
2.3.禁⽤selinux以及iptables
在所有服务器上执⾏如下命令:sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config systemctl stop firewalld systemctl disable firewalld setenforce 0 reboot
2.4.修改服务器配置参数
cat >>/etc/sysctl.conf <<EOF
# kernel.shmall = _PHYS_PAGES / 2 # See Shared Memory Pages kernel.shmall = 197951838
# kernel.shmmax = kernel.shmall *
PAGE_SIZE kernel.shmmax = 810810728448
kernel.shmmni = 4096
vm.overcommit_memory = 2
# See Segment Host Memory
vm.overcommit_ratio = 95
# See Segment Host Memory
net.ipv4.ip_local_port_range = 10000 65535
# See Port Settings
kernel.sem = 500 2048000 200 4096
kernel.sysrq = 1
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.msgmni = 2048
net.ipv4.tcp_syncookies = 1 net.ipv4.conf.default.accept_source_route = 0 net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.conf.all.arp_filter = 1
net.core.netdev_max_backlog = 10000
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
vm.swappiness = 10
vm.zone_reclaim_mode = 0
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
vm.dirty_background_ratio = 3
# See System Memory
vm.dirty_ratio = 10
#vm.dirty_background_bytes = 1610612736
#vm.dirty_bytes = 4294967296
EOF
2.5.更新系统资源限制
cat >>/etc/security/limits.conf <<EOF
* soft nofile 524288
* hard nofile 524288
* soft nproc 131072
* hard nproc 131072
EOF
2.6.修改核⼼转储
cat >>/etc/sysctl.conf <<EOF
kernel.core_pattern=/var/core/core.%h.%t
EOF
将以下⾏添加到 :/etc/security/limits.conf
cat >>/etc/security/limits.conf <<EOF
* soft core unlimited
EOF
运⾏以下命令将更改应⽤到实时内核:
sysctl -p
2.7.SSH连接阈值
所有服务器,从/etc/ssh/sshd_config中修改如下参数值:vi /etc/ssh/sshd_config MaxStartups 10:30:200 MaxSessions 200
3.安装Greenplum数据库
3.1.创建Greenplum管理⽤户
在每个节点,分别创建Greenplum管理⽤户
groupadd gpadmin
useradd gpadmin -r -m -g gpadmin passwd gpadmin
3.2.上传安装⽂件到服务器
将安装⽂件上传到opt⽬录
3.3.安装数据库⽂件
yum install greenplum-db-6.20.1-rhel7-x86_64.rpm
赋权安装⽬录给gpadmin⽤户
sudo chown -R gpadmin:gpadmin /usr/local/greenplum*
为安装顺利,应将/data⽬录同时赋权给gpadmin
chown -R gpadmin:gpadmin /data/
3.4.设置SSH免密登录
仅在master上执⾏:
su - gpadmin ssh-keygen -t rsa -b 4096 source /usr/local/greenplum-db-6.20.1/greenplum_path.sh ssh-copy-id mdw ssh-copy-id sdw1 ssh-copy-id sdw2 ssh-copy-id sdw3 cd /home/gpadmin 新建⽂件all-host vi all-host
添加如下主机名:
mdw sdw1 sdw2 sdw3
执⾏以下命令实现各主机间免密打通gpssh-exkeys -f all-host
3.5.配置系统参数路径
echo "source /usr/local/greenplum-db/greenplum_path.sh" >> .bashrc
3.6.检验安装
在master上执⾏如下语句:
gpssh -f all-host -e 'ls -l /usr/local/greenplum-db' gpssh -f all-host -e 'ls -l /usr/local/greenplum-db-6.20.1'
在各个主机上执⾏如下语句,检查⽂件⽬录是否⻬全:ls -l /usr/local/greenplum-db-6.20.1 gpssh -f all-host -e 'ls -l /usr/local/greenplum-db-6.20.1'
3.7.创建数据库存储区
3.7.1.创建master segment的存储
在master host/Standby Master host使⽤root⽤户操作su - root mkdir -p /data/gpdata/greenplum/data/master chown -R gpadmin:gpadmin /data/*
3.7.2.创建data segment存储空间
⽤gpadmin⽤户操作,在master上创建seg_only⽂件对应每个数据段主机。su - gpadmin vi seg_only sdw1 sdw2 sdw3 sdw4
在各节点中创建数据库⽬录并授权;主要是在每⼀个data⽬录(如/data/)下,创建primary, mirror⽬录。
source /usr/local/greenplum-db/greenplum_path.sh gpssh -f seg_only -e 'mkdir -p /data/gpdata/greenplum/data1/primary;mkdir -p /data/gpdata/greenplum/data2/primary' gpssh -f seg_only -e 'mkdir -p /data/gpdata/greenplum/data1/mirror; mkdir -p /data/gpdata/greenplum/data2/mirror' gpssh -f seg_only -e 'sudo chown -R gpadmin:gpadmin /data*'
验证系统: 磁盘验证和内存验证gpcheckperf -f seg_only -r ds -D -d /data/gpdata/greenplum/data1/primary d /data/gpdata/greenplum/data1/mirror
3.8.初始化数据库
在master上使⽤gpadmin进⾏设置。cp $GPHOME/docs/cli_help/gpconfigs/gpinitsystem_config /home/gpadmin/gpinitsystem_config
修改gpinitsystem_config
vi gpinitsystem_config declare -a DATA_DIRECTORY=(/data/gpdata/greenplum/data1/primary /data/greenplum/data2/primary) MASTER_HOSTNAME=mdw MASTER_DIRECTORY=/data/gpdata/greenplum/data/master MIRROR_PORT_BASE=7000 DATABASE_NAME=pgdw declare -a MIRROR_DATA_DIRECTORY=(/data/gpdata/greenplum/data1/mirror /data/gpdata/greenplum/data2/mirror)
在MASTER主机上⽤gpadmin账号执⾏gpinitsystem -c gpinitsystem_config -h seg_only
3.9.配置数据库环境
echo "export MASTER_DATA_DIRECTORY=/data/gpdata/Greenplum/data/master/gpseg-1" >> .bashrc echo "export PGPORT=5432" >> .bashrc echo "export PGUSER=gpadmin" >> .bashrc echo "export PGDATABASE=pgdw" >> .bashrc echo "export LD_PRELOAD=/lib64/libz.so.1 ps" >> .bashrc source ~/.bashrc
环境变量文件分发到其他节点gpscp -f /AppData/seg-host /home/gpadmin/.bashrc gpadmin@=:/home/gpadmin/.bashrc gpssh -f all-host -e 'source /home/gpadmin/.bashrc;'
3.10.psql 登陆gp 并设置密码
psql -h mdw -p 5432 -d pgdw -U gpadmin -W ALTER USER gpadmin WITH PASSWORD 'Gpadmin@2023'; \q
3.11配置 pg_hba.conf
vi $MASTER_DATA_DIRECTORY/pg_hba.conf
配置完成后加载修改的文件 gpstop -u
安装完毕
4. Greenplum数据库参数调优
gpconfig -c gp_vmem_protect_limit -m 78643 -v 39321
gpconfig -c shared_buffers -v 39321MB
gpconfig -c max_connections -m 500 -v 1500