安装示例的服务器配置如下:
|节点类型|主机名|IP地址|是否联网|
|:—:|:—:|:—:|:—:|
|编译服务器|cmake|10.10.10.1|联网|
|主节点|mdw|10.10.10.2|离线|
|从节点1|sdw1|10.10.10.3|离线|
|从节点2|sdw2|10.10.10.4|离线|
1. 配置安装环境
在cmake、mdw、sdw1和sdw2都进行如下操作:
1.关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
2.关闭SELinux
setenforce 0 && sed -i 's/enforcing/disabled/' /etc/selinux/config
3.修改Linux内核
1 |
|
1 |
|
4.创建gpadmin
用户并设置密码
useradd gpadmin && passwd gpadmin
5.下载psutil-5.9.8.tar.gz并进入解压目录安装
tar -zxvf psutil-5.9.8.tar.gz && cd psutil-5.9.8 && python setup.py install
2. 编译安装
目前Greenplum没有提供ARM发行版,需要编译Greenplum源代码自行构建ARM版本。
编译过程在cmake服务器进行
1.建立联网yum源(aarch64)
1 |
|
2.安装依赖软件包
yum groupinstall 'Development Tools'
yum install curl-devel bzip2-devel python-devel openssl-devel readline-devel perl-ExtUtils-Embed libxml2-devel perl-devel
3.下载gpdb-6.25.3.tar.gz并解压进入
tar -zxvf gpdb-6.25.3.tar.gz && cd gpdb-6.25.3
4.配置安装环境,生成Makefile
1 |
|
5.配置成功后,编译软件
make
6.安装编译好的软件
sudo make install
4. 集群初始化
将make install
生成的/usr/local/grenplum
复制到mdw、sdw1和sdw2服务器的相同路径
1..在sdw1配置主机名和主机名解析
hostnamectl set-hostname sdw1
echo "10.10.10.2 mdw" | sudo tee -a /etc/hosts
echo "10.10.10.3 sdw1" | sudo tee -a /etc/hosts
echo "10.10.10.4 sdw2" | sudo tee -a /etc/hosts
2.在sdw1创建数据目录
mkdir -p /data/gpdata/primary
3.在sdw2配置主机名和主机名解析
hostnamectl set-hostname sdw2
echo "10.10.10.2 mdw" | sudo tee -a /etc/hosts
echo "10.10.10.3 sdw1" | sudo tee -a /etc/hosts
echo "10.10.10.4 sdw2" | sudo tee -a /etc/hosts
4.在sdw2创建数据目录
mkdir -p /data/gpdata/primary
5.在mdw配置主机名和主机名解析
hostnamectl set-hostname mdw
echo "10.10.10.2 mdw" | sudo tee -a /etc/hosts
echo "10.10.10.3 sdw1" | sudo tee -a /etc/hosts
echo "10.10.10.4 sdw2" | sudo tee -a /etc/hosts
6.在mdw创建数据目录
mkdir -p /data/gpdata/master
7.在mdw登录gpadmin
用户
su - gpadmin
8.在mdw配置免密登录sdw1和sdw2
ssh-keygen -t rsa
ssh-copy-id gpadmin@sdw1
ssh-copy-id gpadmin@sdw2
9.在mdw加载环境变量
source /usr/local/greenplum/greenplum_path.sh
10.在mdw创建初始化文件gpinitsystem_config
vi /home/gpadmin/gpinitsystem_config
1 |
|
11.在mdw创建Segment主机列表文件hosts_file
Segment主机需要大容量硬盘,示例中未将mdw作为Segment主机,实际生产环境如有需要,则在创建/data/gpdata/master
时一并创建/data/gpdata/primary
vi /home/gpadmin/hosts_file
1 |
|
12.在mdw初始化集群
/usr/local/greenplum/bin/gpinitsystem -c /home/gpadmin/gpinitsystem_config
13.允许外部IP访问Greenplum数据库
1 |
|
14.重载pg_hba.conf
和postgresql.conf
配置文件
/usr/local/greenplum/bin/pg_ctl reload -D /data/gpdata/master/gpseg-1/
4. 配置系统服务
1.创建greenplum.service
系统服务文件
vi /etc/systemd/system/greenplum.service
1 |
|
2.重新加载全部系统服务配置文件
systemctl daemon-reload
3.启动greenplum系统服务
systemctl start greenplum
4.使greenplum系统服务开机自启
systemctl enable greenplum
5. 常用命令
1.快速停止Greenplum
/usr/local/greenplum/bin/gpstop -M fast
2.强制杀死Greenplum进程
ps -ef | grep gpadmin | grep postgres | awk '{print "kill -9 "$2}'
3.启动Greenplum
/usr/local/greenplum/bin/gpstart
4.启动Greenplum并带有详细日志
/usr/local/greenplum/bin/gpstart -v
5.全量备份
gpbackup --leaf-partition-data --dbname 库名 --backup-dir 备份目录 --jobs 并发数
6.恢复备份
gprestore -backup-dir 备份目录 --create-db --timestamp 备份时间戳