服务器配置
8物理核,8逻辑核,16G内存
改主机名 hostname
#hostnamectl set-hostname gp
vim /etc/hosts
192.168.200.178 gp1.linezonedata.com
192.168.200.186 gp2.linezonedata.com
192.168.200.187 gp3.linezonedata.com
192.168.200.213 gp4.linezonedata.com
192.168.200.214 gp5.linezonedata.com
192.168.200.215 gp6.linezonedata.com
master节点
第一台
# 查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq
# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l
# 查看内存
free -m
data节点
参数设置(所有主机)
关闭selinux
vim /etc/selinux/config
SELINUX=disabled
关闭防火墙
# iptables
/sbin/chkconfig iptables off
/sbin/chkconfig --list iptables
# centos7:firewall
systemctl status firewalld
systemctl stop firewalld.service
systemctl disable firewalld.service
修改内核参数
vim /etc/sysctl.conf
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.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 = 10000 65535
net.core.netdev_max_backlog = 10000
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
vm.overcommit_memory = 2
# 使生效
sysctl -p
修改linux限制
vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
CentOS7.2+需要加入服务logind
echo "RemoveIPC=no" >> /etc/systemd/logind.conf
service systemd-logind restart
I/O调整优化
vim /boot/grub/menu.lst
elevator=deadline
或
echo "elevator=deadline" > /boot/grub/menu.lst
vim /etc/sysconfig/network
gp1.linezonedata.com
gp2.linezonedata.com
gp3.linezonedata.com
gp4.linezonedata.com
gp5.linezonedata.com
gp6.linezonedata.com
创建用户及用户组 (/home目录空间最大)
groupdel gpadmin
userdel gpadmin
groupadd -g 530 gpadmin
useradd -g 530 -u 530 -m -d /home/gpadmin -s /bin/bash gpadmin
passwd gpadmin
(看哪个分区最大lzsj2021)
安装(master主机操作)
安装包
上传rpm包到root目录下
rpm -Uvh greenplum-db-6.12.1-rhel7-x86_64.rpm
(缺包:yum install apr apr-util libyaml libevent)
#默认安装到/usr/local,授权给gpadmin
chown -R gpadmin /usr/local/greenplum*
chgrp -R gpadmin /usr/local/greenplum*
#设置环境变量
source /usr/local/greenplum-db/greenplum_path.sh
打通互联(需切换到gpadmin用户)
su gpadmin
cd
#配置
vim hostlist
gp1.linezonedata.com
gp2.linezonedata.com
gp3.linezonedata.com
gp4.linezonedata.com
gp5.linezonedata.com
gp6.linezonedata.com
vim seg_hosts
gp2.linezonedata.com
gp3.linezonedata.com
gp4.linezonedata.com
gp5.linezonedata.com
gp6.linezonedata.com
#互信
## 与旧版本差异点
gp6 之前,gpadmin 用户的 免密登录步骤由gpseginstall 工具自动处理,gp6 需要人工处理。
https://blog.csdn.net/lalala3_3/article/details/106685186
ssh-keygen
ssh-copy-id gp2.linezonedata.com
ssh-copy-id gp3.linezonedata.com
...
gpssh-exkeys -f hostlist
#打包
cd /usr/local/
su root
tar -cf gp.tar greenplum-db-6.12.1/* (无权限,先用root打包再改)
chown gpadmin:gpadmin gp.tar
#其他机器
chown -R gpadmin /usr/local/
#批量gcp未成功
gpscp -f hostlist /usr/local/gp.tar =:/usr/local
(planB:
scp /usr/local/gp.tar gp2.linezonedata.com:/usr/local
scp /usr/local/gp.tar gp3.linezonedata.com:/usr/local
)
解压,,建软链(子节点)
su gpadmin
cd /usr/local
tar -xf gp.tar
ln -s greenplum-db-6.11.1 greenplum-db
互联后批量操作
gpssh -f hostlist
=> pwd (在=>下运行)
创建instance需要的目录(4p4m)
mkdir -p /home/gpadmin/gpmaster
mkdir -p /home/gpadmin/gpdatap0
mkdir -p /home/gpadmin/gpdatap1
mkdir -p /home/gpadmin/gpdatap2
mkdir -p /home/gpadmin/gpdatap3
mkdir -p /home/gpadmin/gpdatam0
mkdir -p /home/gpadmin/gpdatam1
mkdir -p /home/gpadmin/gpdatam2
mkdir -p /home/gpadmin/gpdatam3
# 失败清目录重装
rm -rf /home/gpadmin/gpdatap0/*
rm -rf /home/gpadmin/gpdatap1/*
rm -rf /home/gpadmin/gpdatap2/*
rm -rf /home/gpadmin/gpdatap3/*
rm -rf /home/gpadmin/gpdatam0/*
rm -rf /home/gpadmin/gpdatam1/*
rm -rf /home/gpadmin/gpdatam2/*
rm -rf /home/gpadmin/gpdatam3/*
配置用户变量(主节点gpadmin用户)
vim ~/.bash_profile
vim ~/.bashrc
source /usr/local/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/home/gpadmin/gpmaster/gpseg-1
export PGPORT=2345
export PGDATABASE=gpdb
gp初始化配置文件
vim initgp_config
(在vim内复制多行假如复制的行带有#号会导致其他不带#号的行自动加#解决办法,输入一下命令再粘贴即可
:set paste
)
#数据库的代号
ARRAY_NAME=”Greenplum”
MACHINE_LIST_FILE=/home/gpadmin/seg_hosts
#Segment 的名称前缀
SEG_PREFIX=gpseg
#Primary Segment 起始的端口号
PORT_BASE=33000
#指定Primary Segment 的数据目录
declare -a DATA_DIRECTORY=(/home/gpadmin/gpdatap1 /home/gpadmin/gpdatap2 /home/gpadmin/gpdatap3 /home/gpadmin/gpdatap0)
#Master 所在机器的Hostname
MASTER_HOSTNAME=gp1.linezonedata.com
#指定Master 的数据目录
MASTER_DIRECTORY=/home/gpadmin/gpmaster
#Master 的端口
MASTER_PORT=2345
#指定Bash 的版本
TRUSTED_SHELL=/usr/bin/ssh
#字符集ENCODING=UNICODE
#Mirror Segment 起始的端口号
MIRROR_PORT_BASE=43000
#Primary Segment 主备同步的起始端口号
REPLICATION_PORT_BASE=34000
#Mirror Segment 主备同步的起始端口号
MIRROR_REPLICATION_PORT_BASE=44000
#Mirror Segment 的数据目录
declare -a MIRROR_DATA_DIRECTORY=(/home/gpadmin/gpdatam1 /home/gpadmin/gpdatam2 /home/gpadmin/gpdatam3 /home/gpadmin/gpdatam0)
初始化(gp2兼做stand_by)
#再次确认防火墙已关闭(-s指定stand_by)
gpinitsystem -c initgp_config -s gp2.linezonedata.com
远程访问设置
#配置远程访问
vim ~/gpmaster/gpseg-1/postgresql.conf
去掉listen_addresses = '*'前的#
vim ~/gpmaster/gpseg-1/pg_hba.conf 添加
host all all 0.0.0.0/0 md5
#加载配置
gpstop -u
psql -d postgres --设置了默认库名gpdb,但还是生产的postgres
ALTER USER gpadmin WITH PASSWORD '你的密码';