暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Panwei部署

IT那活儿 2024-07-23
112
点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!

部署环境准备

1.1 ip及主机名
主机名
Ip
Vip
数据库角色
node1
*.*.*.107
*.*.*.111
Primary
node2
*.*.*.108
Standby
node3
*.*.*.109
Standby
1.2 文件存放位置
文件系统
路径
存放数据文件
/opt/panweidb/data
存放wal日志文件
/opt/panweidb/data/pg_xlog
存放审计日志
/opt/panweidbpg_audit
存放归档文件
/opt/panweidb/archive
存放备份文件
/opt/panweidb/backup
1.3 排查防火墙
查看防火墙状态:
systemctl  status firewalld
关闭防火墙:
systemctl disabled firewalld
systemctl stop firewalld

1.4 排查selinux
cat  /etc/selinux/config |grep  -i SELINUX
修改:
vi /etc/selinux/config
SELINUX=disabled

关闭SELINUX。
setenforce  0
1.5 设置时间
date如果时间不一致,拷贝时区文件。
cp ../usr/share/zoneinfo/Asia/Shanghai etc/localtime
设置三节点统一时间。
date -s “Mon Mar 11 10:00:00  CST  2024
1.6 修改服务器hostname
hostnamectl set-hostname   xxx
1.7 配置/etc/hosts文件
vi /etc/hosts
*.*.*.107 node1
*.*.*.108 node2
*.*.*.109 node3

1.8 内核参数优化
vi   /etc/sysctl.conf
net.ipv4.tcp_max_tw_buckets = 10000
net.ipv4.tcp_tw_reuse = 1 
net.ipv4.tcp_keepalive_time = 30
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_retries1 = 5
net.ipv4.tcp_syn_retries = 5
net.ipv4.tcp_synack_retries = 5
net.ipv4.tcp_retries2 = 12
vm.overcommit_memory = 0
net.ipv4.tcp_rmem = 8192 250000 16777216
net.ipv4.tcp_wmem = 8192 250000 16777216
net.core.wmem_max = 21299200
net.core.rmem_max = 21299200
net.core.wmem_default = 21299200
net.core.rmem_default = 21299200
net.ipv4.ip_local_port_range = 26000 65535
kernel.sem = 250 6400000 1000 25600
net.core.somaxconn = 65535
net.ipv4.tcp_syncookies = 1
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_fin_timeout = 60
kernel.shmall = 1073741824 
kernel.shmmax = 751619276800 
net.ipv4.tcp_sack = 1
net.ipv4.tcp_timestamps = 1
vm.extfrag_threshold = 500
vm.overcommit_ratio = 90
vm.swappiness = 0

生效sysctl  -p。
注意:
  • kernel.shmall 建议设置80% =系统内存/PAGE_SIZE
  • kernel.shmmax 建议大于shared_buffer等于系统内存*0.5
  • PAGE_SIZE可通过  getconf PAGE_SIZE进行查看
    例如:
    kernel.shmall=200*1024*1024*1024*0.8/4096

    kernel.shmmax=200*1024*1024*1024*0.5

1.9 资源配置

vi /etc/security/limits.conf
* soft nofile 1000000
* hard nofile 1000000
* soft nproc 655360
* hard nproc 655360
* soft memlock unlimited
* hard memlock unlimited
* soft core unlimited
* hard core unlimited
* soft stack unlimited
* hard stack unlimited


安装panweidb

2.1 安装数据库依赖
yum -y install libaio-devel flex bison ncurses-devel glibc-
devel patch readline-devel python3 expect* bzip2 libnsl gcc gcc-c++ zlib-devel ncurses-devel expect

2.2 检查python3
python3  --version
2.3 创建用户及组
groupadd -g 1101 dbgrp
useradd -g dbgrp -u 1101 -m omm
echo '********'|passwd --stdin omm

2.4 创建目录
mkdir -p /opt/panweidb
mkdir -p /opt/panweidb/archive
mkdir -p /opt/panweidb/pg_audit
mkdir -p /opt/panweidb/soft

2.5 上传压缩包
cd /opt/panweidb/soft
tar -xf Panweidb . . . . . xxx.xxx . . . .tar.gz
tar -xf Panweidb . . . . . xxx.xxx . . . .om.tar.gz

2.6 编写XML文件
1)单节点的配置文件如下
vi /opt/panweidb/soft/panweidb1m.xml
<?xml version="1.0" encoding="utf-8"?>
<ROOT>
  <CLUSTER>
    <PARAM name="clusterName" value="panweidb" />
    <PARAM name="nodeNames" value="node1"/>
    <PARAM name="gaussdbAppPath" value="/opt/panweidb/app" />
    <PARAM name="gaussdbLogPath" value="/opt/panweidb/log" />
    <PARAM name="tmpMppdbPath" value="/opt/panweidb/tmp"/>
    <PARAM name="gaussdbToolPath" value="/opt/panweidb/tool" />
    <PARAM name="corePath" value="/opt/panweidb/corefile"/>
    <PARAM name="backIp1s" value="*.*.*.107"/>
  </CLUSTER>
  
  <DEVICELIST>
    <DEVICE sn="node1">
      <PARAM name="name" value="node1"/>
      <PARAM name="azName" value="AZ1"/>
      <PARAM name="azPriority" value="1"/>
      <PARAM name="backIp1" value="*.*.*.107"/>
      <PARAM name="sshIp1" value="*.*.*.107"/>
      <PARAM name="dataNum" value="1"/>
      <PARAM name="dataPortBase" value="17700"/>
      <PARAM name="dataNode1" value="/opt/panweidb/data"/>
    </DEVICE>
  </DEVICELIST>
</ROOT>

2)一主一备两节点的配置文件如下
vi /opt/panweidb/soft/panweidb1m1s.xml

<?xml version="1.0" encoding="utf-8"?>
<ROOT>
  <CLUSTER>
    <PARAM name="clusterName" value="panweidb" />
    <PARAM name="nodeNames" value="node1,node2,node3"/>
    <PARAM name="gaussdbAppPath" value="/opt/panweidb/app" />
    <PARAM name="gaussdbLogPath" value="/opt/panweidb/log" />
    <PARAM name="tmpMppdbPath" value="/opt/panweidb/tmp"/>
    <PARAM name="gaussdbToolPath" value="/opt/panweidb/tool" />
    <PARAM name="corePath" value="/opt/panweidb/corefile"/>
    <PARAM name="backIp1s" value="*.*.*.107,*.*.*.108"/>
  </CLUSTER>
  
  <DEVICELIST>
    <DEVICE sn="node1">
      <PARAM name="name" value="node1"/>
      <PARAM name="azName" value="AZ1"/>
      <PARAM name="azPriority" value="1"/>
      <PARAM name="backIp1" value="*.*.*.107"/>
      <PARAM name="sshIp1" value="*.*.*.107"/>
      <PARAM name="cmsNum" value="1"/>
      <PARAM name="cmServerPortBase" value="18800"/>
      <PARAM name="cmServerListenIp1" value="*.*.*.107,*.*.*.108"/>
      <PARAM name="cmServerHaIp1" value="*.*.*.107,*.*.*.108"/>
      <PARAM name="cmServerlevel" value="1"/>
      <PARAM name="cmServerRelation" value="node1,node2"/>
      <PARAM name="cmDir" value="/opt/panweidb/cm"/>
      <PARAM name="dataNum" value="1"/>
      <PARAM name="dataPortBase" value="17700"/>
      <PARAM name="dataNode1" value="/opt/panweidb/data,node2,/opt/panweidb/data"/>
      <PARAM name="dataNode1_syncNum" value="1"/>
    </DEVICE>
  
    <DEVICE sn="node2">
      <PARAM name="name" value="node2"/>
      <PARAM name="azName" value="AZ1"/>
      <PARAM name="azPriority" value="1"/>
      <PARAM name="backIp1" value="*.*.*.108"/>
      <PARAM name="sshIp1" value="*.*.*.108"/>
      <PARAM name="cmServerPortStandby" value="18800"/>
      <PARAM name="cmDir" value="/opt/panweidb/cm"/>
    </DEVICE>
  </DEVICELIST>
</ROOT>

3)一主两备三节点的配置文件如下
vi /opt/panweidb/soft/panweidb1m2s.xml

<?xml version="1.0" encoding="utf-8"?>
<ROOT>
  <CLUSTER>
    <PARAM name="clusterName" value="panweidb" />
    <PARAM name="nodeNames" value="node1,node2,node3"/>
    <PARAM name="gaussdbAppPath" value="/opt/panweidb/app" />
    <PARAM name="gaussdbLogPath" value="/opt/panweidb/log" />
    <PARAM name="tmpMppdbPath" value="/opt/panweidb/tmp"/>
    <PARAM name="gaussdbToolPath" value="/opt/panweidb/tool" />
    <PARAM name="corePath" value="/opt/panweidb/corefile"/>
    <PARAM name="backIp1s" value="*.*.*.107,*.*.*.108,*.*.*.109"/>
  </CLUSTER>
  
  <DEVICELIST>
    <DEVICE sn="node1">
      <PARAM name="name" value="node1"/>
      <PARAM name="azName" value="AZ1"/>
      <PARAM name="azPriority" value="1"/>
      <PARAM name="backIp1" value="*.*.*.107"/>
      <PARAM name="sshIp1" value="*.*.*.107"/>
      <PARAM name="cmsNum" value="1"/>
      <PARAM name="cmServerPortBase" value="18800"/>
      <PARAM name="cmServerListenIp1" value="*.*.*.107,*.*.*.108,*.*.*.109"/>
      <PARAM name="cmServerHaIp1" value="*.*.*.107,*.*.*.108,*.*.*.109"/>
      <PARAM name="cmServerlevel" value="1"/>
      <PARAM name="cmServerRelation" value="node1,node2,node3"/>
      <PARAM name="cmDir" value="/opt/panweidb/cm"/>
      <PARAM name="dataNum" value="1"/>
      <PARAM name="dataPortBase" value="17700"/>
      <PARAM name="dataNode1" value="/opt/panweidb/data,node2,/opt/panweidb/data,node3,/opt/panweidb/data"/>
      <PARAM name="dataNode1_syncNum" value="1"/>
    </DEVICE>
  
    <DEVICE sn="node2">
      <PARAM name="name" value="node2"/>
      <PARAM name="azName" value="AZ1"/>
      <PARAM name="azPriority" value="1"/>
      <PARAM name="backIp1" value="*.*.*.108"/>
      <PARAM name="sshIp1" value="*.*.*.108"/>
      <PARAM name="cmServerPortStandby" value="18800"/>
      <PARAM name="cmDir" value="/opt/panweidb/cm"/>
    </DEVICE>
  
    <DEVICE sn="node3">
      <PARAM name="name" value="node3"/>
      <PARAM name="azName" value="AZ1"/>
      <PARAM name="azPriority" value="1"/>
      <PARAM name="backIp1" value="*.*.*.109"/>
      <PARAM name="sshIp1" value="*.*.*.109"/>
      <PARAM name="cmServerPortStandby" value="18800"/>
      <PARAM name="cmDir" value="/opt/panweidb/cm"/>
    </DEVICE>
  </DEVICELIST>
</ROOT>

2.7 目录授权
chown -R omm:dbgrp /opt/panweidb
chmod -R 755   /opt/panweidb

2.8 预安装(使用主root用户)
注意:这里使用gs_preinstall 程序自动配置 root 用户互信和 omm 用户互信。
cd /database/panweidb/soft/script
#单节点
./gs_preinstall -U omm -G dbgrp -X /opt/panweidb/soft/panweidb1m.xml

#
两节点:一主一备
./gs_preinstall -U omm -G dbgrp -X /opt/panweidb/soft/panweidb1m1s.xml

#
三节点:一主两备
./gs_preinstall -U omm -G dbgrp -X /opt/panweidb/soft/panweidb1m2s.xml

如果建立互信失败,可以手动建立互信。
在/home/omm 和/home/root下生成密钥(三台都需要操作):
ssh-keygen
cd  .ssh
mv id_rsa.pub authorized_keys
vi  authorized_keys 把三台的密钥粘贴在一起

后续进行验证免密是否生效。
2.9 omm用户安装
su  - omm
#单节点
gs_install -X /opt/panweidb/soft/panweidb1m.xml \
--gsinit-parameter="--encoding=UTF8" \
--gsinit-parameter="--lc-collate=C" \
--gsinit-parameter="--lc-ctype=C" \
--gsinit-parameter="--dbcompatibility=B"

#两节点:一主一备
gs_install -X /opt/panweidb/soft/panweidb1m1s.xml \
--gsinit-parameter="--encoding=UTF8" \
--gsinit-parameter="--lc-collate=C" \
--gsinit-parameter="--lc-ctype=C" \
--gsinit-parameter="--dbcompatibility=PG"

#三节点:一主两备
gs_install -X /opt/panweidb/soft/panweidb1m2s.xml \
--gsinit-parameter="--encoding=UTF8" \
--gsinit-parameter="--lc-collate=C" \
--gsinit-parameter="--lc-ctype=C" \
--gsinit-parameter="--dbcompatibility=B"

注意:如果安装失败可以查看错误/opt/panweidb/log/omm/om。
2.10 查看集群状态
gs_om  -t status –detail
注意合理设置配置参数。
2.11 omm卸载

gs_uninstall --delete-data


vip配置

3.1 配置omm用户sudo权限
visudo
omm ALL=(ALL) NOPASSWD: ALL

3.2 修改回调脚本
vi /opt/panweidb/cm/cm_agent/cm_callback.sh
VIP=*.*.*.111  # vip 地址
VIPBRD=*.*.*.255 # 广播地址
VIPNETMASKBIT=24   # 掩码
VIPDEV=ens33 # 网络接口名称,vip会绑定到该接口

chmod u+x  /opt/panweidb/cm/cm_agent/cm_callback.sh

3.3 修改cm_agent.conf
vi /opt/panweidb/cm/cm_agent/cm_agent.conf
callback_bin_path = /opt/panweidb/cm/cm_agent/cm_callback.sh

3.4 修改
vi $GAUSSHOME/bin/alarmConfig.conf
callback_bin_path=/opt/panweidb/cm/cm_agent/cm_callback.sh

3.5 重启集群
cm_ctl stop && cm_ctl start
查看集群详细信息:
gs_om -t status --detail && ip a | grep -i *.*.*.111

END


本文作者:王鑫雨(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论