给公司运维写的部署文档,初学者也可以看以下,自己尝试在虚拟机上搭一下。
***注:本文的"例如"都不可以直接复制使用,需要结合具体环境自行做出调整***
系统要求
内存在不考虑其他服务共存的情况下,至少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/*