Greenplum集群安装-无root账号但存在sodu权限(redhat系统)
此笔记记录在客户不提供root账号,切禁止root直接登录的情况下,使用sodu 来进行部署Greenplum集群安装
如果机器是最小化安装的化(Bin安装方式必须!)
sodu yum install ed openssh-clients zip unzip perl bind-utils net-tools -y
1.所有服务器关闭防火墙
涉及机器:所有服务器
# contos7:
systemctl stop firewalld
systemctl disable firewalld
firewall-cmd --state
# contos7以下:
service iptables stop
service iptables status
chkconfig iptables off(永久性生效,重启后不会复原)
#service iptables stop(即时生效,重启后复原)
2.修改主机名
涉及机器:所有服务器
修改各台主机的主机名称。一般建议的命名规则如下:
sudo hostnamectl set-hostname mdw4
sudo hostnamectl --static
sudo hostnamectl set-hostname mdw4
sudo hostnamectl set-hostname swd5
sudo hostnamectl set-hostname swd6
sudo hostnamectl set-hostname swd7
sudo hostnamectl set-hostname swd8
3.修改/etc/hosts文件
涉及机器:所有服务器
sudo vi /etc/hosts
10.221.71.4 mdw4
10.221.71.5 sdw5
10.221.71.6 sdw6
10.221.71.7 sdw7
10.221.71.8 sdw8
4.检查时间
涉及机器:所有服务器
#检查ntp主机时间是否为当前北京时间
date
#如不是都需要同步到一致:
date -s "2020-05-15 16:11:00"
#修改系统时间date后加clock -w 理由-->为了保险,需要使用 clock -w 把当前系统时间写入到CMOS中
clock -w
5.修改系统参数
涉及机器:所有服务器
5.1修改系统参数/etc/sysctl.conf
sudo vi /etc/sysctl.conf
添加:
注意:如下的内容根据内存的实际情况进行修改
#system
# Controls source route verification
net.ipv4.conf.default.rp_filter = 1
# Disable netfilter on bridges.
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
#官方文档:
#gp,64G内存—shmmax :68719476736,128G内存-- shmmax :137438953472,物理内存*0.9*1024*1024*1024
#kernel.shmmax = 57438953472 # 是全部允许使用的共享内存大小,shmmax 是单个段允许使用的大小。
kernel.shmmax = 5000000000
kernel.shmmni = 4096
# # kernel.shmall = # shmmax /4k(4096:getconf PAGESIZE可得到)
kernel.shmall = 40000000000 # 共享内存
#kernel.sem = 50100 128256000 50100 2560
#kernel.sem = 500 2048000 200 40960
kernel.sem = 250 5120000 100 20480
kernel.sysrq = 1
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.msgmni = 2048
kernel.pid_max = 1000000
vm.overcommit_memory = 2 # 主机内存
vm.overcommit_ratio = 95 # 主机内存
vm.swappiness = 10
net.ipv4.tcp_syncookies = 1
net.ipv4.ip_forward = 0
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 = 3000 65535
net.core.netdev_max_backlog = 10000
net.core.rmem_default = 256960
net.core.rmem_max = 2097152
net.core.wmem_default = 256960
net.core.wmem_max = 2097152
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_sack = 0
net.ipv4.tcp_window_scaling = 1
# 系统内存大于64G ,建议以下配置
vm.dirty_background_ratio = 0
vm.dirty_ratio = 0
vm.dirty_background_bytes = 1610612736 # 1.5GB
vm.dirty_bytes = 4294967296 # 4GB
修改postgres进程的oom_score:
sudo echo -1000 > /proc/self/oom_score_adj
注意:
gp-->kernel.shmmax的值:64G内存—shmmax :68719476736,128G内存-- shmmax :137438953472,即物理内存*0.9*1024*1024*1024,如我的机器全是256G的:256*1024*1024*1024*0.9 , 其实只要超过128G 都可以默认得了...
然后
sysctl -p
生效cat /proc/sys/kernel/sem
查看
5.2修改系统参数/etc/security/limits.conf
sudo vi /etc/security/limits.conf
在最后增加:
#增加:
#gp
gpadmin soft nofile 65536
gpadmin hard nofile 65536
gpadmin soft nproc 131072
gpadmin hard nproc 131072
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
注意:
对于RedHat6.x/CENTOS 6.X系统,还需要将vi /etc/security/limits.d/90-nproc.conf文件中的1024修改为131072。
对于RedHat7.x/CENTOS 7.X系统,还需要将vi 录vi /etc/security/limits.d/20-nproc.conf文件中的4096修改为131072。
5.3修改磁盘预读参数(看了官网配置-sudo可省略吧?)
在参数文件sudo vi /etc/rc.d/rc.local
中增加:
/dev/sd*
为硬盘设备标识
#添加:
#gp
/sbin/blockdev --setra 16384 /dev/sd*
保存修改后单独执行命令:sodu权限无法执行-->echo "/sbin/blockdev --setra 16384 /dev/sd*" >> /etc/rc.d/rc.local
echo 1 > /proc/sys/vm/overcommit_memory
5.4修改启动配置,可省略
vi /etc/inittab
#在最后增加:
id:3:initdefault:
5.5修改最大连接限制
sudo vi /etc/ssh/sshd_config
[找到MaxStartups去掉#并修改为如下参数]
MaxStartups=1000:30:5000
5.6修改SELINUX
sudo vi /etc/sysconfig/selinux
#找到SELINUX修改:
SELINUX=disabled
5.7网络参数调整
echo "10000 65535" > /proc/sys/net/ipv4/ip_local_port_range #net.ipv4.ip_local_port_range,定义了地tcp/udp的端口范围。可以理解为系统中的程序会选择这个范围内的端口来连接到目的端口。
echo 1024 > /proc/sys/net/core/somaxconn #net.core.somaxconn,服务端所能accept即处理数据的最大客户端数量,即完成连接上限。默认值是128,建议修改成1024。
echo 16777216 > /proc/sys/net/core/rmem_max #net.core.rmem_max,接收套接字缓冲区大小的最大值。默认值是229376,建议修改成16777216。
echo 16777216 > /proc/sys/net/core/wmem_max #net.core.wmem_max,发送套接字缓冲区大小的最大值(以字节为单位)。默认值是229376,建议修改成16777216。
echo "4096 87380 16777216" > /proc/sys/net/ipv4/tcp_rmem #net.ipv4.tcp_rmem,配置读缓冲的大小,三个值,第一个是这个读缓冲的最小值,第三个是最大值,中间的是默认值。默认值是"4096 87380 6291456",建议修改成"4096 87380 16777216"。
echo 360000 > /proc/sys/net/ipv4/tcp_max_tw_buckets #net.ipv4.max_tw_buckets,表示系统同时保持TIME_WAIT套接字的最大数量。默认值是2048,建议修改成360000
6.创建GP用户
涉及机器:所有服务器
建立用户组gpadmin,gpadmin
sudo groupadd gpadmin
sudo useradd -m -g gpadmin gpadmin
sudo passwd gpadmin
or
echo 'rlyE9WUbOFr^4By*' | passwd gpadmin --stdin
如果服务器之前已经部署过,但是未清除干净,可能用到的一些命令:
sudo userdel -r gpadmin sudo userdel -f gpadmin sudo groupdel gpadmin sudo userdel -r gpadmin sudo groupdel gpadmin
7.所有机器执行挂载
涉及机器:所有服务器
#正常情况下:
#查看磁盘
sudo fdisk -l
#查看已挂载磁盘对应目录
df -h
#进入根目录
cd /
#创建目录
mkdir data
#格式化磁盘(如果是挂在两个盘,则需要格式两个磁盘:/dev/sdb /dev/sdc)
mkfs.xfs -f /dev/sdb
#mkfs.xfs -f /dev/sdc
#将信息写入fstab,让系统开启自动挂载
echo "
/dev/sdb /data xfs rw,nodev,noatime,nobarrier,inode64,allocsize=16m 1 1
" >>/etc/fstab
#挂载磁盘
mount -a
#检查是否挂载成功
df -h
7.1 数据盘数据存储文件夹的创建
master和standby(master备份机)服务器的存储创建:
sudo mkdir -p /data/master
sudo mkdir -p /data/master/space_fastdisk
sudo chown gpadmin /data/master
sudo chown -R gpadmin:gpadmin /data/master
segment存储创建:(如果计划master也需要存储数据也需要创建上)
mkdir -p /data/gp/primary
mkdir -p /data/gp/mirror
mkdir -p /data/gp/primary/space_fastdisk
mkdir -p /data/gp/mirror/space_fastdisk
chown -R gpadmin:gpadmin /data/gp
chown -R gpadmin:gpadmin /data/gp
8.安装Greenplum
Master安装greenplum
Bin的二进制安装方式
将安装 greenplum-db-5.28.5-rhel7-x86_64.zip
上传到/home/gpadmin目录下。
解压 greenplum-db-5.28.5-rhel7-x86_64.zip
得到greenplum-db-5.28.5-rhel7-x86_64.bin
用gpadmin
用户执行这个bin文件:
./greenplumdb-5.28.5-rhel7-x86_64.bin
显示一堆文字,按回车键直到显示:直到安装完成(默认安装在/usr/local目录)
chown -R gpadmin:gpadmin /usr/local/greenplum*
RPM包安装方式
上传greenplum-db-5.28.5-rhel7-x86_64.rpm
安装:yum install -y greenplum-db-5.28.5-rhel7-x86_64.rpm
默认安装在/usr/local目录下,安装greenpum需要很多依赖,但是通过这样安装默认自动安装需要的依赖。
安装完毕后会出现目录:/usr/local/greenplum-db
chown -R gpadmin:gpadmin /usr/local/greenplum*
读取变量
数据库安装在那就修改,如这边安装在/data数据盘下:
source /usr/local/greenplum-db/greenplum_path.sh
配置全部服务器列表(在master-gpadmin上创建)
cd /home/gpadmin/gp_install
vi all_hosts
#添加:
mdw29
sdw30
sdw31
sdw32
sdw33
sdw34
配置全部segment的服务器列表(在master-gpadmin上创建)
cd /home/gpadmin/gp_install
vi all_segs
#添加:
sdw30
sdw31
sdw32
sdw33
sdw34
同步master安装的greenplum到各个主机
这里主要是同步:/usr/local/greenplum-db文件到其他的主机上,不管使用什么方式,只要最终在每个机器上都要有greenplum即可
可以使用scp,也可以使用gp的方式(需要root账号)注意:这里会涉及到权限的问题,所以使用root就好,最后通过chown去修改为gpadmin即可
# 打包:
cd /usr/local && tar -cf /usr/local/gp5.tar greenplum-db-5.28.5
# 分发:
# root账号
gpscp -f /home/gpadmin/all_segs /usr/local/gp5.tar =:/usr/local
# 或者
scp /usr/local/gp5.tar all_segs:/usr/local/
cd /usr/local
tar -xf gp5.tar
ln -s greenplum-db-5.28.5 greenplum-db
chown -R gpadmin:gpadmin /usr/local/greenplum*
设置安装用户的环境变量
涉及机器:所有服务器gpadmin账号
cd /home/gpadmin
vi /home/gpadmin/.bash_profile
# 添加:放对地方
# PATH=$PATH:$HOME/bin
source /usr/local/greenplum-db/greenplum_path.sh
# export PATH
# 执行一下:
source /home/gpadmin/.bash_profile
涉及机器:master服务器gpadmin账号
vi /home/gpadmin/.bashrc
#添加:
export GPHOME=/usr/local/greenplum-db
source $GPHOME/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/data/master/gpseg-1
export PGPORT=5432
export PGUSER=gpadmin
# export PGDATABASE=postgres
#读取变量
source /home/gpadmin/.bashrc
9.建立多机信任(重要步骤)
Master主机gpadmin
用户建立多机信任
gpssh-exkeys -f /home/gpadmin/gp_install/all_hosts
建立多机信任完毕后,测试各个节点是否能连通
gpssh -f ./all_hosts
[gpadmin@mdw gpconfigs]$ gpssh -h mdw
=> echo $HOSTNAME
[mdw] mdw
=> exit
10.参数配置检查(可省略)
在Master上使用gpadmin用户登录执行系统检查
#新建check文件
vi check
#添加:
/sbin/sysctl -p
/sbin/blockdev --setra 16384 /dev/sd*
blockdev --getra /dev/sd*
df -h
/etc/init.d/iptables stop
/etc/init.d/iptables status
chkconfig iptables off
chkconfig --list iptables
setenforce 0
getenforce
cat /etc/sysconfig/network
cat /etc/hosts
grep MaxStartups /etc/ssh/sshd_config
#执行
gpssh -f all_hosts -v < check
11.初始化数据库 (非常重要...)
#读取变量
source /home/gpadmin/.bashrc
创建配置文件
#添加节点服务器:
vi hostfile_gpinitsystem
mdw29
sdw30
sdw31
sdw32
sdw33
sdw34
注意:
如果想要master也做存储则加上,反之可剔除掉,原因如下:
加上主服务器,可以当作一个
seg节点
,数据就可以存到主服务器(主要看性能)
#配置实例对应的磁盘:
1.实例数不用太多
2.DATA_DIRECTORY 一个目录代表一个实例
vi gpinitsystem_config
ARRAY_NAME="Greenplum Data Platform"
SEG_PREFIX=gpseg
PORT_BASE=40000
declare -a DATA_DIRECTORY=(/data/gp/primary)
MASTER_HOSTNAME=mdw29
MASTER_DIRECTORY=/data/master
MASTER_PORT=5432
TRUSTED_SHELL=ssh
CHECK_POINT_SEGMENTS=8
ENCODING=UTF8
MIRROR_PORT_BASE=50000
REPLICATION_PORT_BASE=41000
MIRROR_REPLICATION_PORT_BASE=51000
declare -a MIRROR_DATA_DIRECTORY=(/data/gp/mirror)
DATABASE_NAME=lte_mr
### 去了上面就别要下面 二者取一个
#####只有pri##########
RRAY_NAME="EMC Greenplum DW"
SEG_PREFIX=gpseg
PORT_BASE=40000
declare -a DATA_DIRECTORY=(/data/gp/primary)
MASTER_HOSTNAME=mdw29
MASTER_DIRECTORY=/data/master
MASTER_PORT=5432
TRUSTED_SHELL=ssh
CHECK_POINT_SEGMENTS=8
ENCODING=UTF8
#MIRROR_PORT_BASE=50000
#REPLICATION_PORT_BASE=41000
#MIRROR_REPLICATION_PORT_BASE=51000
#declare -a MIRROR_DATA_DIRECTORY=(/data1/gp/m /data2/gp/m /data3/gp/m)
DATABASE_NAME=lte_mr
注意修改:
declare -a DATA_DIRECTORY=(
/data/gp/primary
)MASTER_HOSTNAME=
mdw29
MASTER_DIRECTORY=/data/master
declare -a MIRROR_DATA_DIRECTORY=(
/data/gp/mirror
)
执行初始化
gpinitsystem -c gpinitsystem_config -h hostfile_gpinitsystem
运行结果中如出现如下信息则创建成功!
Greenplum Database instance successfully created
安装master standby
master的standby都可以在初始化的时候安装,也可以在安装好了手动添加master standby,参考:http://docs-cn.greenplum.org/v6/utility_guide/admin_utilities/gpinitstandby.html
安装master standby:gpinitstandby -s seg_name
[gpadmin@hljydwxywgzt4-7 ~]$ gpinitstandby -s hljydwxywgzt-8
20220121:11:21:46:129795 gpinitstandby:hljydwxywgzt4-7:gpadmin-[INFO]:-Validating environment and parameters for standby initialization...
20220121:11:21:46:129795 gpinitstandby:hljydwxywgzt4-7:gpadmin-[INFO]:-Checking for filespace directory /data/master/gpseg-1 on hljydwxywgzt-8
20220121:11:21:47:129795 gpinitstandby:hljydwxywgzt4-7:gpadmin-[INFO]:------------------------------------------------------
20220121:11:21:47:129795 gpinitstandby:hljydwxywgzt4-7:gpadmin-[INFO]:-Greenplum standby master initialization parameters
20220121:11:21:47:129795 gpinitstandby:hljydwxywgzt4-7:gpadmin-[INFO]:------------------------------------------------------
20220121:11:21:47:129795 gpinitstandby:hljydwxywgzt4-7:gpadmin-[INFO]:-Greenplum master hostname = hljydwxywgzt4-7
20220121:11:21:47:129795 gpinitstandby:hljydwxywgzt4-7:gpadmin-[INFO]:-Greenplum master data directory = /data/master/gpseg-1
20220121:11:21:47:129795 gpinitstandby:hljydwxywgzt4-7:gpadmin-[INFO]:-Greenplum master port = 5432
20220121:11:21:47:129795 gpinitstandby:hljydwxywgzt4-7:gpadmin-[INFO]:-Greenplum standby master hostname = hljydwxywgzt-8
20220121:11:21:47:129795 gpinitstandby:hljydwxywgzt4-7:gpadmin-[INFO]:-Greenplum standby master port = 5432
20220121:11:21:47:129795 gpinitstandby:hljydwxywgzt4-7:gpadmin-[INFO]:-Greenplum standby master data directory = /data/master/gpseg-1
20220121:11:21:47:129795 gpinitstandby:hljydwxywgzt4-7:gpadmin-[INFO]:-Greenplum update system catalog = On
20220121:11:21:47:129795 gpinitstandby:hljydwxywgzt4-7:gpadmin-[INFO]:------------------------------------------------------
20220121:11:21:47:129795 gpinitstandby:hljydwxywgzt4-7:gpadmin-[INFO]:- Filespace locations
20220121:11:21:47:129795 gpinitstandby:hljydwxywgzt4-7:gpadmin-[INFO]:------------------------------------------------------
20220121:11:21:47:129795 gpinitstandby:hljydwxywgzt4-7:gpadmin-[INFO]:-pg_system -> /data/master/gpseg-1
Do you want to continue with standby master initialization? Yy|Nn (default=N):
> y
20220121:11:21:51:129795 gpinitstandby:hljydwxywgzt4-7:gpadmin-[INFO]:-Syncing Greenplum Database extensions to standby
20220121:11:21:51:129795 gpinitstandby:hljydwxywgzt4-7:gpadmin-[INFO]:-The packages on hljydwxywgzt-8 are consistent.
20220121:11:21:51:129795 gpinitstandby:hljydwxywgzt4-7:gpadmin-[INFO]:-Adding standby master to catalog...
20220121:11:21:51:129795 gpinitstandby:hljydwxywgzt4-7:gpadmin-[INFO]:-Database catalog updated successfully.
20220121:11:21:51:129795 gpinitstandby:hljydwxywgzt4-7:gpadmin-[INFO]:-Updating pg_hba.conf file...
20220121:11:21:52:129795 gpinitstandby:hljydwxywgzt4-7:gpadmin-[INFO]:-pg_hba.conf files updated successfully.
20220121:11:21:53:129795 gpinitstandby:hljydwxywgzt4-7:gpadmin-[INFO]:-Updating filespace flat files...
20220121:11:21:53:129795 gpinitstandby:hljydwxywgzt4-7:gpadmin-[INFO]:-Filespace flat file updated successfully.
20220121:11:21:53:129795 gpinitstandby:hljydwxywgzt4-7:gpadmin-[INFO]:-Starting standby master
20220121:11:21:53:129795 gpinitstandby:hljydwxywgzt4-7:gpadmin-[INFO]:-Checking if standby master is running on host: hljydwxywgzt-8 in directory: /data/master/gpseg-1
20220121:11:21:54:129795 gpinitstandby:hljydwxywgzt4-7:gpadmin-[WARNING]:-Unable to cleanup previously started standby: 'You have logged onto a secured server..All accesses logged
'
20220121:11:21:55:129795 gpinitstandby:hljydwxywgzt4-7:gpadmin-[INFO]:-Cleaning up pg_hba.conf backup files...
20220121:11:21:55:129795 gpinitstandby:hljydwxywgzt4-7:gpadmin-[INFO]:-Backup files of pg_hba.conf cleaned up successfully.
20220121:11:21:55:129795 gpinitstandby:hljydwxywgzt4-7:gpadmin-[INFO]:-Successfully created standby master on hljydwxywgzt-8
12.远程访问设置(master-gpadmin上执行)
cd $MASTER_DATA_DIRECTORY
vi pg_hba.conf
host all gpadmin 0.0.0.0/0 md5
13.配置GP数据库登录密码(master-gpadmin上执行)
登录数据库:psql -d lte_mr
>alter role gpadmin with password 'gpadmin_GP$';
gpadmin_GP$
为连接数据库的密码,输入:\q
退出数据库
14.GP数据库参数配置(master-gpadmin上执行)
https://greenplum.org/calc/ 这是计算器,直接参考
gp_vmem_protect_limit = gp_vmem / max_acting_primary_segments
(内存总量/实例数+2(格外加2个容错的primary))
gp_vmem(Greenplum数据库可用的主机内存):
gp_vmem = ((SWAP + RAM) – (7.5GB + 0.05 * RAM)) / 1.7
如现在我500G可用内存:gp_vmem = (500 -(7.5+0.05*500))/1.7 = 275G
实例数为4:max_acting_primary_segments = 4 (格外加2个容错的primary)=6
gp_vmem_protect_limit = gp_vmem / max_acting_primary_segments
= 275/6=46G = 46933MB
gpconfig -c gp_vmem_protect_limit -v 46933
statement_mem =((gp_vmem_protect_limit * .9) / max_expected_concurrent_queries)
= 46933*0.9/30 =1408MB
#以下操作gpadmin用户在mdw上执行:因为这次就一个盘所以默认即可
https://blog.csdn.net/dockj/article/details/88697460
#gpconfig -c gp_vmem_protect_limit -v 65536
#gpconfig -c gp_vmem_protect_limit -v 49152
gpconfig -c gp_vmem_protect_limit -v 32768 #为在每个segment数据库中完成的所有 工作分配的最大内存
gpconfig -c max_statement_mem -v 21333MB # 设置查询的最大内存限制 基本上我设置是gp_vmem_protect_limit*0.3
#gpconfig -c max_statement_mem -v 16GB
#gpconfig -c max_statement_mem -v 25600MB
# statement_mem设置必须小于max_statement_mem。否则报错
gpconfig -c statement_mem -v 2000MB #statement_mem服务器配置参数是分配给segment数据库中任何单个查询的内存量
#gpconfig -c statement_mem -v 3072MB
#gpconfig -c statement_mem -v 512MB
gpconfig -c max_connections -v 1000 -m 200 #segment为master的5-10倍
#gpconfig -c max_connections -v 3000 -m 1000 #segment为master的5-10倍
gpconfig -c shared_buffers -v 15625MB #至少>max_connections*16k
gpconfig -c max_prepared_transactions -v 1000 #和master的max_connections参数配置一致
gpconfig -c effective_cache_size -v 250GB # 250GB (物理内存一半),设置有关Postgres查询优化器(计划程序)的单个查询可用的磁盘高速缓存的有效大小的假设,估算使用指数的成本的因素; 较高的值使得更有可能使用索引扫描,较低的值使得更有可能使用顺序扫描
# gpconfig -c work_mem -v 5120MB #设置每个segment内存排序的大小,先测试为系统总内存的1%=1%*500=5G=5*1024=5120MB
gpconfig -c temp_buffers -v 2048 #默认1024,以允许每个数据库会话使用临时缓冲区。 这些是仅用于访问临时表的会话本地缓冲区
gpconfig -c gp_fts_probe_threadcount -v 32 #默认16个,故障检测的线程数。大于等于每个节点的segment数。
gpconfig -c gp_fts_probe_interval -v 120 -m 120 #默认值是10,最大值是3600单位秒 指定故障检测过程的轮询间隔(ftsprobe)。 该 ftsprobe 进程大概需要此量的时间来检测分段故障。
gpconfig -c gp_fts_probe_timeout -v 60 # 默认20s 允许FTS完成探测段的最大时间(以秒为单位)
gpconfig -c gp_fts_probe_retries -v 10 -m 10 # 默认5次,在报告段失败之前,指定故障检测进程(ftsprobe)尝试连接到段的次数
# gpconfig -c gp_fts_probe_threadcount -v 90 -m 90
# gpconfig -c gp_hashjoin_tuples_per_bucket -v 5 #默认5,设置HashJoin操作使用的哈希表的目标密度。 较小的值往往会产生较大的哈希表,这可以提高连接性能
# gpconfig -c gp_interconnect_setup_timeout -v 2h #默认2h,指定在超时之前等待Greenplum数据库interconnect完成设置的时间
gpconfig -c gp_resqueue_priority_cpucores_per_segment -v 6 #默认4,指定每个segment实例分配的CPU单元数
gpconfig -c maintenance_work_mem -v 12GB #默认16MB,指定要在维护操作中使用的最大内存量,例如VACUUM和CREATE INDEX。指定要在维护操作中使用的最大内存量,例如VACUUM和CREATE INDEX。
gpconfig -c gp_vmem_protect_segworker_cache_limit -v 2048 #默认500,如果查询执行程序进程消耗的数量超过此配置的数量,则在进程完成后,将不会高速缓存该进程以用于后续查询。
gpconfig -c max_appendonly_tables -v 50000 -m 50000 # 默认10000 设置可以写入或更新追加优化表的并发事务的最大数量。超过最大数量的事务将返回错误。
# gpconfig -c filerep_socket_timeout -v 350
gpconfig -c gp_segment_connect_timeout -v 600 #默认10min 在超时之前,Greenplum互连将尝试通过网络连接到段实例的时间。控制主段(master)和主要段(primary)之间的网络连接超时,以及主要段(primary)到镜像段之间的复制进程。
# gpconfig -c vacuum_freeze_min_age -v 999999999 -m 999999999 #默认100000000 指定事务中的截止年龄,当扫描表的时候,VACUUM 应该使用该年龄来决定是否使用 FrozenXID 替代事务ID。
#gpconfig -c autovacuum_freeze_max_age -v 2000000000 -m 2000000000 # pg_class.relfrozenxid的最大值,如果超出此值则重置xid
#gpconfig -c autovacuum_vacuum_cost_delay -v '0'
#gpconfig -c autovacuum -v 'on'
查看参数是否配置成功,可到每个data下面的配置文件查看:
如/data/gp/mirror/gpseg01/postgresql.conf
15.重启GP数据库(master-gpadmin上执行)
#以下步骤gpadmin用户在mdw执行,切换用户:su - gpadmin
停数据库:gpstop -M fast
启数据库:gpstart -a
查看各节点状态:gpstate –m