给公司运维写的部署文档,初学者也可以看以下,自己尝试在虚拟机上搭一下。

 

***注:本文的"例如"都不可以直接复制使用,需要结合具体环境自行做出调整***

系统要求

内存在不考虑其他服务共存的情况下,至少64GB,推荐128GB
网口和网线至少10Gbps,否则数据库性能会有极大的性能影响,推荐七类网线
磁盘格式必须为XFS,否则数据库性能会有极大的性能影响
检查方法:



[root@localhost ~]# df -T
Filesystem    Type    1K-blocks    Used Available    Use%    Mounted on
/dev/sda1    xfs    000    000    0%    /
.....



系统版本必须为centos6.5 ALL以上,推荐centos6.9,原则:所有服务器系统内核版本一致即可



[root@localhost ~]# cat /etc/redhat-release
CentOS release 6.9 (Final)
[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.32-696.13.2.el6.x86_64 ...



 

 

一、系统优化调整

*以下操作在所有要部署gp的主机上以root执行

设置hostname,设置IP,生成hosts文件
例如:



[root@localhost ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=mdw
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-em1
DEVICE=em1
HWADDR=00:00:00:00:00:00
Type=Ethernet
UUID=1234abcd-56ef-78gh-90ij-1234klmn
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=10.0.0.2
NETMASK=255.255.255.0
GATEWAY=10.0.0.1
DNS1=10.0.0.1
echo '
#Greenplum
10.0.0.2    mdw gp gp.sinoaudit.cn
10.0.0.3    sdw1
10.0.0.4    sdw2
' >> /etc/hosts



禁用selinux



sed -i 's/^SELINUX.*/SELINUX=disabled/g' /etc/selinux/config
setenforce 0



关闭防火墙



service iptables stop
chkconfig iptables off



设置时区&时钟同步



\cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtim
sed -i 's/^server/#&/g' /etc/ntp.conf
vi /etc/ntp.conf
在server下方添加
server 10.254.17.253 prefer
server 10.254.96.101
重启ntp
service ntpd restart
chkconfig nptd on
使用date命令检查每个服务器上的时间是否一致
clock -w



修改内核参数



echo '
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
' > /etc/sysctl.conf 
sysctl -p



修改用户限制



echo '
gpadmin soft nofile 65536
gpadmin hard nofile 65536
gpadmin soft nproc 131072
gpadmin hard nproc 131072
' >> /etc/security/limits.conf
echo '
gpadmin soft nproc 131072
gpadmin hard nproc 131072
' >> /etc/security/limits.d/90-nproc.conf



如果是xfs文件系统执行下边操作



vi /etc/fstab



修改数据目录所在挂载点文件系统参数选项为 rw,nodev,noatime,nobarrier,inode64

例如:



/dev/sda / xfs nodev,noatime,nobarrier,inode64 0 0



修改预读取块大小



/sbin/blockdev --setra 16384 /dev/sda



修改IO调度



echo deadline > /sys/block/sda/queue/scheduler



配置grub



vi /boot/grub/grub.conf



在数据目录所在挂载点之后追加选项 elevator=deadline transparent_hugepage=never

例如



kernel /vmlinuz-2.6.18-274.3.1.el5 ro root=LABEL=/ elevator=deadline crashkernel=128M@16M quiet console=tty1 console=ttyS1,115200 panic=30 transparent_hugepage=never initrd /initrd-2.6.18-274.3.1.el5.img



添加用户



groupadd -g 520 gpadmin
useradd -u 520 -g gpadmin gpadmin
passwd gpadmin # 密码必须统一



添加数据目录



mkdir -p /data/gpdata
chown -R gpadmin:gpadmin /home/gpadmin
chown -R gpadmin:gpadmin /data/gpdata



重启系统



reboot



验证



echo 'mdw
sdw1
sdw2' > hostlist
gpcheck -f hostlist -m mdw



以没有报错为最佳,出现什么错误就调什么

 

二、安装软件

安装主节点
在master节点所在主机以root执行
上传安装包



unzip greenplum-db-5.3.0-rhel6-x86_64.zip
./greenplum-db-5.3.0-rhel6-x86_64.bin
# q yes enter yes yes



安装其他节点



source /usr/local/greenplum-db/greenplum_path.sh
mkdir /home/gpadmin/gpconfigs
cd /home/gpadmin/gpconfigs
echo 'mdw
sdw1
sdw2' > hostlist
echo 'sdw1
sdw2' > seglist
gpssh-exkeys -f hostlist # 需要输入密码的地方输入密码
gpssh -f hostlist -e date # 验证免密登陆是否成功
gpseginstall -f hostlist -u gpadmin -p gpadmin #这个密码是系统密码



等待完成

修改所有者
以下四条命令在所有主机上以root执行



chown -R gpadmin:gpadmin /home/gpadmin
chown -R gpadmin:gpadmin /data/gpdata
chown -R gpadmin:gpadmin /usr/local/greenplum*
echo '
source /usr/local/greenplum-db/greenplum_path.sh
'>> /home/gpadmin/.bash_profile



 

三、初始化数据库

在主节点以gpadmin登陆,如su - gpadmin



cd;cd gpconfig
gpssh-exkeys -f hostlist
gpssh -f hostlist -e date
gpssh -f hostlist -e 'mkdir -p /data/gpdata/master'
gpssh -f hostlist -e 'mkdir -p /data/gpdata/primary'
gpssh -f hostlist -e 'mkdir -p /data/gpdata/mirror'



生成初始化配置文件



cp /usr/local/greenplum-db/docs/cli_help/gpconfigs/gpinitsystem_config .
vi gpinitsystem_config



主要有以下几个地方可能需要修改(禁止复制)



declare -a DATA_DIRECTORY=(/data/gpdata/primary /data/gpdata/primary) # 这里一个机器初始化几个primary就写几个
MASTER_HOSTNAME=mdw #改成自己的主节点的主机名hostname
MASTER_DIRECTORY=/data/gpdata/master
如果需要做高可用就解注释MIRROR的选项
MIRROR_PORT_BASE=50000
REPLICATION_PORT_BASE=41000
MIRROR_REPLICATION_PORT_BASE=51000
declare -a MIRROR_DATA_DIRECTORY=(/data/gpdata/mirror /data/gpdata/mirror) # 这里要和primary目录个数一致



执行初始化



gpinitsystem -c gpinitsystem_config -h seglist -n zh_CN.utf8 # -n选项设置数据库字符集,默认en_US.utf8,例子是中文,推荐中文,主要是涉及到排序



期间会暂停让你确认,你看以下初始化配置是否正常后输入Y即可



echo '
export MASTER_DATA_DIRECTORY=/data/gp/master/gpseg-1
export PGPORT=5432
' >> ~/.bash_profile
source ~/.bash_profile



查看数据库状态



gpstate -s



简单优化



gpconfig -c max_connections -v 2500 -m 500
gpconfig -c max_prepared_transactions -v 1000
gpconfig -c gp_vmem_protect_limit -v 65536
gpconfig -c max_statement_mem -v 16GB
gpconfig -c statement_mem -v 1GB
echo '
host    all    all    0.0.0.0/0    md5' >> $MASTER_DATA_DIRECTORY/pg_hba.conf
gpstop -a -r



 

greenplum command center的安装参考 

 

附暴力卸载(新手严禁在非虚拟机环境使用)



# 卸载(暴力卸载)
kill -9 `ps -elf | grep gpadmin | grep -v grep | awk '{print $4}'`
rm -f /tmp/.s.PGSQL*
rm -rf /data/gpdata/master/*
rm -rf /data/gpdata/primary/*
rm -rf /data/gpdata/mirror/*
rm -rf /usr/local/greenplum-cc-web/instances/*
rm -rf /data/gp/greenplum-cc-web*
rm -rf /usr/local/greenplum*
rm -rf /root/.ssh/*
rm -rf /home/gpadmin/.ssh/*