部署环境准备
systemctl status firewalld
systemctl disabled firewalld
systemctl stop firewalld
cat /etc/selinux/config |grep -i SELINUX
vi /etc/selinux/config
SELINUX=disabled
setenforce 0
cp ../usr/share/zoneinfo/Asia/Shanghai etc/localtime
date -s “Mon Mar 11 10:00:00 CST 2024”
hostnamectl set-hostname xxx
vi /etc/hosts
*.*.*.107 node1
*.*.*.108 node2
*.*.*.109 node3
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
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
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
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
python3 --version
groupadd -g 1101 dbgrp
useradd -g dbgrp -u 1101 -m omm
echo '********'|passwd --stdin omm
mkdir -p /opt/panweidb
mkdir -p /opt/panweidb/archive
mkdir -p /opt/panweidb/pg_audit
主 mkdir -p /opt/panweidb/soft
cd /opt/panweidb/soft
tar -xf Panweidb . . . . . xxx.xxx . . . .tar.gz
tar -xf Panweidb . . . . . xxx.xxx . . . .om.tar.gz
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>
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>
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>
chown -R omm:dbgrp /opt/panweidb
chmod -R 755 /opt/panweidb
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
ssh-keygen
cd .ssh
mv id_rsa.pub authorized_keys
vi authorized_keys 把三台的密钥粘贴在一起
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"
gs_om -t status –detail
gs_uninstall --delete-data
vip配置
visudo
omm ALL=(ALL) NOPASSWD: ALL
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
vi /opt/panweidb/cm/cm_agent/cm_agent.conf
callback_bin_path = /opt/panweidb/cm/cm_agent/cm_callback.sh
vi $GAUSSHOME/bin/alarmConfig.conf
callback_bin_path=/opt/panweidb/cm/cm_agent/cm_callback.sh
cm_ctl stop && cm_ctl start
gs_om -t status --detail && ip a | grep -i *.*.*.111

本文作者:王鑫雨(上海新炬中北团队)
本文来源:“IT那活儿”公众号

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




