# Greenplum 部署 - 单主机
https://abc.htmltoo.com/thread-46195.htm
# dbswitch 部署 - 异构数据库数据与结构同步工具
https://abc.htmltoo.com/thread-46197.htm
# Greenplun集群监控: prometheus - greenplum_exporter
https://abc.htmltoo.com/thread-44925.htm
cd /opt
git clone -b 6.13.0 https://gitee.com/inrgihc/greenplum_installer.git
cd greenplum_installer && make all
tree bin/
.
├── account.txt
└── greenplum6-centos7-release.bin
-首先安装如下account.txt文件格式组织多个主机的IP及账号密码,然后执行命令一键安装多台主机
cat account.txt
10.101.1.10 root 123321 //第1个主机的IP,账号,密码
10.101.1.11 root 123321 //第2个主机的IP,账号,密码
10.101.1.12 root 123321 //第3个主机的IP,账号,密码
10.101.1.13 root 123321 //第4个主机的IP,账号,密码 (至少四个主机)
(1)文件中的节点间存在顺序关系,
其中第一个为master节点,第二个为standby节点,第三个到最后均为segment节点。
(2) 账号配置文件account.txt中配置的账号必须为root,否在安装前的检查会报错。
-安装
sh greenplum6-centos7-release.bin ./account.txt install
-卸载
sh ./greenplum6-centos7-release.bin ./account.txt uninstall
-参数
安装过程大约要花费10~30分钟左右,具体与安装的服务器数量和网络速度有关,安装完成后的相关参数如下:
参数 名称 取值 备注说明
Install Path 软件路径 /usr/local/greenplum-db greenplum程序软件安装所在目录,目前无法定制配置
Data Path 数据路径 /usr/local/gpdb/data greenplum数据库数据安装所在目录, 该参数可在打包时定制配置
GPDB Admin User GPDB超管账号 gpadmin 登录Greenplum数据库的超级管理员账号为gpadmin
GPDB Admin Password GPDB超管密码 g0csWpW78Sm2 登录Greenplum数据库的超级管理员gpadmin的密码
GPDB Test User GPDB测试账号名称 study 登录Greenplum数据库的测试账号为study
GPDB Test Password GPDB测试账号密码 123321 登录Greenplum数据库的测试账号study的密码为123321
# 数据库常用操作
-数据库启动:gpstart
该命令在master服务器上切换到gpadmin账号下操作,用于启动greenplum数据库。
gpstart -a : 直接启动,不提示终端用户输入确认
gpstart -m: 只启动master 实例,主要在故障处理时使用
-数据库停止:gpstop
该命令在master服务器上切换到gpadmin账号下操作,用于停止greenplum数据库。
gpstop -a:直接停止,不提示终端用户输入确认
gpstop -m:只停止master 实例,与gpstart –m 对应使用
gpstop -f:停止数据库,中断所有数据库连接,回滚正在运行的事务
gpstop -u:不停止数据库,只加载pg_hba.conf 和postgresql.conf中运行时参数,当改动参数配置时候使用。
-数据库状态:gpstate
该命令在master服务器上切换到gpadmin账号下操作,默认列出数据库运行状态汇总信息,常用于日常巡检。
gpstate -c:primary instance 和 mirror instance 的对应关系
gpstate -m:只列出mirror 实例的状态和配置信息
gpstate -f:显示standby master 的详细信息
-连接会话查询:
通过系统表pg_stat_activity能查看到当前数据库连接的IP 地址,用户名,提交的查询等。
select * from pg_stat_activity
# Standby激活与master恢复原角色
当Greenplum segment的segement primary出现问题时,Greenplum集群FTS模块会监测并自动激活segement mirror。
但是对于Greenplum 的master节点,虽然有standby,但是Greenplum 并不会自动来完成master和standby master的角色自动切换,需要通过gpactivatestandby命令来完成这个过程。
假设定义如下:
| Greenplum节点角色 | 主机名 | 备注 |
|---|
| master节点 | mdw | Greenplum Master Node |
| standby节点 | smdw | Greenplum Standby Master Node |
---Standby激活成为master
-登陆smdw
su - gpadmin
-检查~/.bashrc是否配置
检查~/.bashrc是否配置MASTER_DATA_DIRECTORY等环境变量,如果没有,请使用如下命令进行环境配置并使用source命令使环境变量生效:
cat >> ~/.bashrc <<EOF
source /usr/local/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/usr/local/gpdb/data/master/gpseg-1/
export PGPORT=5432
export PGUSER=gpadmin
export PGDATABASE=postgres
EOF
source ~/.bashrc
-激活standby成为master角色
echo "host all all 0.0.0.0/0 password" >> $MASTER_DATA_DIRECTORY/pg_hba.conf
gpactivatestandby -a -f
gpstop -u
注意:激活standby前,请确保master与standby保持数据同步的一致。
# Master恢复原角色
当mdw主机故障恢复后,可将其再次恢复为master角色。
首先将mdw主机上的$MASTER_DATA_DIRECTORY目录重命名为其他名称。
-将mdw配置为standby角色
su - gpadmin
gpinitstandby -s mdw -a
gpstop -m -a
-激活mdw为master角色
su - gpadmin
gpactivatestandby -a
-调整smdw为原来的standby角色
删除smdw主机上的$MASTER_DATA_DIRECTORY目录(或重命名为其他名称),然后在mdw主机的gpadmin账号下然后执行如下命令:
su - gpadmin
gpinitstandby -s smdw -a
-在mdw上检查standby状态
su - gpadmin
gpstate -f