Greenplum6安装部署实战

2022-06-06 00:00:00 文件 节点 设置 配置 安装

Greenplum6安装部署实战

安装后添加standby节点
http://www.dbdream.com.cn/2016/02/greenplum%E6%95%B0%E6%8D%AE%E5%BA%93master%E8%8A%82%E7%82%B9%E6%90%AD%E5%BB%BAstandby/


Greenplum
专栏收录该内容
2 篇文章0 订阅
订阅专栏
文章目录
1.系统参数配置
1.1 关闭防火墙
1.2 配置hosts文件
1.3 配置参数
1.3.1 sysctl.conf
1.3.2 20-nproc.conf
2.账号免密配置
2.1 添加gpadmin账号
2.2 生成sshkey
2.3 设置sudo权限
3. 开始安装
3.1 分发安装文件
3.2 yum安装
3.3 设置文件权限
3.4 设置免密
3.5 确认安装完成
4.设置数据存储区域
4.1 创建目录
4.2 副主节点下
4.3 Segment设置
5. 数据库初始化
5.1 配置hostfile_gpinitsystem
5.2 配置gpinitsystem_config
5.3 执行初始化
5.4 TimeZone 设置
5.5 设置环境变量 MASTER_DATA_DIRECTORY
6. psql连接

说明
拿自己的3台虚拟机(1主2从),花了4天时间,参照官方文档,装了一套Greenplum6.10(下载链接:https://pan.baidu.com/s/1_GFVanc64ionI5X28W1A2A
提取码:v42d )。
默认情况下,一些文件操作的命令均需要在所有节点、单独执行
1.系统参数配置
1.1 关闭防火墙
-- 以root用户执行
systemctl stop firewalld.service
systemctl disable firewalld.service
-- 查看状态
systemctl status firewalld

1.2 配置hosts文件
-- 添加 mdw、sdw1和sdw2 节点信息
vi /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.211.3 mdw
192.168.211.4 sdw1
192.168.211.5 sdw2


1.3 配置参数
1.3.1 sysctl.conf
/etc/sysctl.conf

# kernel.shmall = _PHYS_PAGES / 2 # See Shared Memory Pages
kernel.shmall = 197951838
# kernel.shmmax = kernel.shmall * PAGE_SIZE
kernel.shmmax = 810810728448
kernel.shmmni = 4096
vm.overcommit_memory = 2 # See Segment Host Memory
vm.overcommit_ratio = 95 # See Segment Host Memory
net.ipv4.ip_local_port_range = 10000 65535 # See Port Settings --不要和greenplum的冲突
kernel.sem = 500 2048000 200 4096
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_max_syn_backlog = 4096
net.ipv4.conf.all.arp_filter = 1
net.core.netdev_max_backlog = 10000
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
vm.swappiness = 10
vm.zone_reclaim_mode = 0
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
vm.dirty_background_ratio = 0 # See System Memory
vm.dirty_ratio = 0
vm.dirty_background_bytes = 1610612736
vm.dirty_bytes = 4294967296

端口设置样例:
系统端口 --》sysctl.conf 设置
net.ipv4.ip_local_port_range = 3000 65535
gp端口 --》gp参数文件设置
PORT_BASE=2000
MIRROR_PORT_BASE=2100
REPLICATION_PORT_BASE=2200
MIRROR_REPLICATION_PORT_BASE=2300

1.3.2 20-nproc.conf
设置OS文件和进程的大数量

/etc/security/limits.d/20-nproc.conf
# 注意:这里的 * 也是内容
* soft nofile 524288
* hard nofile 524288
* soft nproc 131072
* hard nproc 131072
1.3.3 修改/etc/fstab文件
将相关目录的挂载参数加上--rw,noatime,inode64

UUID=910f686d-ed06-45ac-b4a5-12384bc8984d /data xfs rw,noatime,inode64 1 2

1.3.4 io配置

在含有数据目录的设备上,blockdev预读尺寸应该被设置为16384。
[root@gp1 gpseg-1]# /sbin/blockdev --setra 16384 /dev/sda
[root@gp1 gpseg-1]# /sbin/blockdev --getra /dev/sda
16384

应该为所有数据目录设备设置死线IO调度器。
[root@gp1 gpseg-1]# cat /sys/block/sda/queue/scheduler
noop [deadline] cfq

应该在/etc/security/limits.conf文件中增加OS文件和进程的大数量。
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072

让内核文件输出到一个已知的位置并且确保limits.conf允许内核文件。
kernel.core_pattern = /var/core/core.%h.%t
# grep core /etc/security/limits.conf
* soft core unlimited

共享内存设置
Greenplum数据库使用共享内存在postgres进程之间通信,这些进程是同一个postgres实例的组成部分。下面的共享内存设置应该在sysctl中设定并且很少会被修改。
kernel.shmmax = 500000000
kernel.shmmni = 4096
kernel.shmall = 4000000000




2.账号免密配置
2.1 添加gpadmin账号
添加gpadmin账号,不能以root启动Greenplum

-- 添加用户组gpadmin
groupadd gpadmin
-- 添加账户gpadmin
useradd gpadmin -r -m -g gpadmin
-- 设置gpadmin的密码
passwd gpadmin
New password: <changeme>
Retype new password: <changeme>

-r : 建立系统账号
-m : 自动建立用户的登入目录
-g : 指定用户所属的群组
1
2
3
4
5
6
7
8
9
10
11
12
2.2 生成sshkey
账号切换为gpadmin ,生成sshkey

su gpadmin
ssh-keygen -t rsa -b 4096

Generating public/private rsa key pair.
Enter file in which to save the key (/home/gpadmin/.ssh/id_rsa):
Created directory '/home/gpadmin/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
1
2
3
4
5
6
7
8
2.3 设置sudo权限
Grant sudo access to the gpadmin user

-- 切换为root
sudo - root
-- 执行命令
visudo
-- 取消如下行的注销
%wheel ALL=(ALL) NOPASSWD: ALL
1
2
3
4
5
6
3. 开始安装
3.1 分发安装文件
预先下载好安装文件,复制到所有机器的/home/gpadmin/

下载链接,请参考:

https://network.pivotal.io/products/pivotal-gpdb#/releases/158026/file_groups/1083

3.2 yum安装
也可以使用yum安装,默认会被安装 在 /usr/local/

yum install -y greenplum-db-6.10.0-rhel7-x86_64.rpm
1
3.3 设置文件权限
修改安装文件的归属权限为gpadmin,不能用默认的root

$ sudo chown -R gpadmin:gpadmin /usr/local/greenplum*
$ sudo chgrp -R gpadmin /usr/local/greenplum*
1
2
3.4 设置免密
在主节点,切换为gpadmin

设置会话的临时环境变量

添加 pgadmin的 public key 到所有其它机器

执行完成后,确认/home/gpadmin/.ssh/known_hosts 有新内容

su - gpadmin

source /usr/local/greenplum-db-6.10.0/greenplum_path.sh

-- 依次执行命令: 1-N
ssh-copy-id sdw1
ssh-copy-id sdw2

cat /home/gpadmin/.ssh/known_hosts


分发至所有节点 N-N

-- 编辑文件
vi /home/gpadmin/hostfile_exkeys
-- 参照 /etc/hosts,添加如下节点内容
mdw
sdw1
sdw2

-- 执行命令
gpssh-exkeys -f /home/gpadmin/hostfile_exkeys

3.5 确认安装完成
-- 在主节点下:
su - gpadmin

gpssh -f /home/gpadmin/hostfile_exkeys -e 'ls -l /usr/local/greenplum-db-6.10.0'

-- 如果还提示要输入密码,则redo ssh key exchange
gpssh-exkeys -f hostfile_exkeys

4.设置数据存储区域
4.1 创建目录
-- 在主节点 ,root登录
mkdir -p /data/master
chown gpadmin:gpadmin /data/master

-- 所有Segment,root登录
mkdir -p /data
chown gpadmin:gpadmin /data

4.2 副主节点下
– 此处安装 没有副节点,忽略

source /usr/local/greenplum-db/greenplum_path.sh
gpssh -h smdw -e 'mkdir -p /data/master'
gpssh -h smdw -e 'chown gpadmin:gpadmin /data/master'

4.3 Segment设置
主节点下,root 登录
su - root
vi /home/gpadmin/hostfile_gpssh_segonly
-- 只添加Segment的内容
sdw1
sdw2

-- 执行如下命令
source /usr/local/greenplum-db/greenplum_path.sh
gpssh -f /home/gpadmin/hostfile_gpssh_segonly -e 'mkdir -p /data/primary'
gpssh -f /home/gpadmin/hostfile_gpssh_segonly -e 'mkdir -p /data/mirror'
gpssh -f /home/gpadmin/hostfile_gpssh_segonly -e 'chown -R gpadmin /data/*'
gpssh -f /home/gpadmin/hostfile_gpssh_segonly -e 'mkdir -p /data/primary'

sshRoot设置

1)vi /etc/ssh/sshd_config,将PermitRootLogin的值改成yes,并保存
PermitRootLogin yes

2)service sshd restart

5. 数据库初始化
5.1 配置hostfile_gpinitsystem
A Greenplum Database system must contain a master instance and at least two segment instances (even if setting up a single node system)

-- 只包含segment节点,主节点,pgadmin 登录
vi /home/gpadmin/hostfile_gpinitsystem

sdw1
sdw2

5.2 配置gpinitsystem_config
-- 先拿到备份:
cp $GPHOME/docs/cli_help/gpconfigs/gpinitsystem_config /home/gpadmin/gpconfigs/gpinitsystem_config
--修改为:
ARRAY_NAME="Greenplum Data Platform"
SEG_PREFIX=gpseg
PORT_BASE=6000
-- 修改1
declare -a DATA_DIRECTORY=(/data/primary)
MASTER_HOSTNAME=mdw
-- 修改2
MASTER_DIRECTORY=/data/master
MASTER_PORT=5432
TRUSTED SHELL=ssh
CHECK_POINT_SEGMENTS=8
ENCODING=UNICODE

15
5.3 执行初始化
-- 先把主节点的 /data 改为可写入 chmod
chmod -R 777 /data

--在/home/gpadmin下执行- 这是无 standby master时
gpinitsystem -c gpconfigs/gpinitsystem_config -h gpconfigs/hostfile_gpinitsystem

-- 如果是带standby的:则
gpinitsystem -c gpconfigs/gpinitsystem_config -h gpconfigs/hostfile_gpinitsystem -standby_master_hostname -S

--保存配置信息,可以作为新cluster的输入参数
gpinitsystem -c gpconfigs/gpinitsystem_config -O gpconfigs/config_template

-- 查看状态
gpstate
-- 启动Greenplum
gpstart -a

5.4 TimeZone 设置
$ gpconfig -s TimeZone
$ gpconfig -c TimeZone -v 'US/Pacific'

5.5 设置环境变量 MASTER_DATA_DIRECTORY
-- 在主节点,gpadmin下
vi ~/.bashrc

-- 追加:
source /usr/local/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/data/master/gpseg-1

-- 生效:
source ~/.bashrc

-- If you have a standby master host, copy your environment file to the standby master as well. For example:
$ cd ~
$ scp .bashrc standby_hostname:`pwd`

6. psql连接
psql -h mdw -p 5432 -d postgres

-- 看下版本

demo=# select version();
version

---------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------
PostgreSQL 9.4.24 (Greenplum Database 6.10.0 build commit:cced3a78d1a0650ba21205438955d2df06644bc8) on x86_64-unknow
n-linux-gnu, compiled by gcc (GCC) 6.4.0, 64-bit compiled on Aug 5 2020 23:41:43
(1 row) 

来源 https://www.modb.pro/db/376975 

相关文章