CentOS7安装openGauss5.0.2LTS版本(主备)
一、安装规划
序号 | 主机名 | ip地址 | 软件版本 | |
---|---|---|---|---|
1 | opengauss1 | 192.168.59.131 | openGauss-5.0.2 | 主 |
2 | opengauss2 | 192.168.59.132 | openGauss-5.0.2 | 备 |
安装规划项 | 安装规划项值 | 备注 |
---|---|---|
openGauss安装目录 | /software/opengauss | |
openGauss数据目录 | /data/opengauss/corefile | |
openGauss临时目录 | /data/opengauss/tmp | |
openGauss 日志目录 | /data/opengauss/log | |
开放端口 | 5432 | |
openGauss账号/密码 | opengauss/opengauss@123 | 可以根据自己需要设置,记好就行 |
二、安装准备
2.1 修改主机相关信息
192.168.65.131(opengauss1)执行:
hostnamectl set-hostname opengauss1
cat >> /etc/hosts << EOF
192.168.59.131 opengauss1
192.168.59.132 opengauss2
EOF
192.168.65.132(opengauss2)执行:
hostnamectl set-hostname opengauss2
cat >> /etc/hosts << EOF
192.168.59.131 opengauss1
192.168.59.132 opengauss2
EOF
2.2 安装依赖
(opengauss1,opengauss2)主备执行。
yum -y install readline-devel zlib-devel gettext-devel openssl openssl-devel pam pam-devel libxml2 libxml2-devel libxslt libxslt-devel perl perl-devel tcl-devel uuid-devel gcc gcc-c++ make perl-ExtUtils* ntpdate wget curl sqlite-devel libaio-devel flex bison ncurses-devel glibc-devel patch libnsl bzip2 net-tools vim ntp\* expect*
2.3 同步时间
(opengauss1,opengauss2)主备执行。
systemctl restart ntpd
systemctl enable ntpd
#这个可以不执行
ntpdate ntp.aliyun.com && hwclock -w
2.4 关闭防火墙
(opengauss1,opengauss2)主备执行。
systemctl stop firewalld.service
systemctl disable firewalld.service
firewall-cmd --state #not running,即为关闭成功
2.5 关闭selinux
(opengauss1,opengauss2)主备执行。
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
getenforce #Disabled,即为关闭成功,如果不成功,重启一下服务器。
2.6 关闭透明大页
(opengauss1,opengauss2)主备执行。
sed -i "s/quiet/quiet numa=off transparent_hugepage=never/g" /etc/default/grub
#重新做grub
grub2-mkconfig -o /boot/grub2/grub.cfg
2.7 设置网卡MTU
(opengauss1,opengauss2)主备执行。
ens33要根据自己的实际网卡调整。
ifconfig ens33 mtu 8192
2.8 设置字符集
(opengauss1,opengauss2)主备执行。
echo LANG=en_US.UTF-8 >> /etc/profile
source /etc/profile
2.9 安装Python3.6.9
(opengauss1,opengauss2)主备执行。
2.9.1 下载Python3.6.9
mkdir -p /opt/software/python3
wget -P /opt/software/python3 https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tgz
2.9.2 解压编译
tar -xvf /opt/software/python3/Python-3.6.9.tgz -C /opt/software/python3/
#进入到Python源代码目录
cd /opt/software/python3/Python-3.6.9
./configure --prefix=/usr/local/python3 --enable-shared CFLAGS=-fPIC
make && make install
2.9.3 配置环境
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip
cp /usr/local/python3/lib/libpython3.6m.so.1.0 /usr/lib64
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/python3/lib' >> /etc/profile
source /etc/profile
三、openGauss安装
3.1 内核参数调整
(opengauss1,opengauss2)主备执行。
cat >> /etc/sysctl.conf << EOF
fs.file-max = 76724200
kernel.sem = 10000 10240000 10000 1024
kernel.shmmni = 4096
kernel.shmall = 1152921504606846720
kernel.shmmax = 18446744073709551615
net.ipv4.ip_local_port_range = 26000 65535
net.ipv4.tcp_fin_timeout=60
net.ipv4.tcp_retries1=5
net.ipv4.tcp_syn_retries=5
net.core.rmem_default = 21299200
net.core.wmem_default = 21299200
net.core.rmem_max = 21299200
net.core.wmem_max = 21299200
fs.aio-max-nr = 40960000
vm.dirty_ratio=20
vm.dirty_background_ratio=3
vm.dirty_writeback_centisecs=100
vm.dirty_expire_centisecs=500
vm.swappiness=10
vm.min_free_kbytes=193053
EOF
#查看调整的参数
sysctl -p
3.2 用户limit调整
(opengauss1,opengauss2)主备执行。
cat >> /etc/security/limits.conf << EOF
omm soft nofile 1048576
omm hard nofile 1048576
omm soft nproc 131072
omm hard nproc 131072
omm soft memlock unlimited
omm hard memlock unlimited
omm soft core unlimited
omm hard core unlimited
omm soft stack unlimited
omm hard stack unlimited
* soft nofile 1048576
* hard nofile 1048576
EOF
3.3 创建用户和组
(opengauss1,opengauss2)主备执行。
groupadd dbgroup -g 1000
useradd omm --gid 1000 --uid 1000 --create-home
echo "omm" | passwd omm --stdin
#重启服务器
reboot
3.4 规划目录
(opengauss1)主节点执行。
#源文件目录,用来存放下载的安装包
mkdir -p /opt/software/openGauss
#安装目录,用来将openGauss安装到该目录下
mkdir -p /software/openGauss
#数据目录,用来存放openGauss相关的数据
mkdir -p /data/openGauss
chown -R omm:dbgroup /opt/software/openGauss
chown -R omm:dbgroup /software/openGauss
chown -R omm:dbgroup /data/openGauss
chmod -R 775 /opt/software/
chmod -R 777 /opt/software/openGauss
(opengauss2)备节点执行。
#安装目录,用来将openGauss安装到该目录下
mkdir -p /software/openGauss
#数据目录,用来存放openGauss相关的数据
mkdir -p /data/openGauss
chown -R omm:dbgroup /software/openGauss
chown -R omm:dbgroup /data/openGauss
3.5 下载openGauss5.0.2
(opengauss1)主节点执行。
wget -P /opt/software/openGauss https://opengauss.obs.cn-south-1.myhuaweicloud.com/5.0.2/x86/openGauss-5.0.2-CentOS-64bit-all.tar.gz
3.6 解压文件
(opengauss1)主节点执行。
tar -xvf /opt/software/openGauss/openGauss-5.0.2-CentOS-64bit-all.tar.gz -C /opt/software/openGauss
tar -zxvf /opt/software/openGauss/openGauss-5.0.2-CentOS-64bit-om.tar.gz -C /opt/software/openGauss
3.7 编辑cluster_config.xml文件
(opengauss1)主节点执行。
该文档要根据自己的实际情况调整ip地址。其它内容无需修改。
cat > /opt/software/openGauss/cluster_config.xml << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<!-- openGauss整体信息 -->
<CLUSTER>
<!-- 数据库名称 -->
<PARAM name="clusterName" value="dbCluster"/>
<!-- 数据库节点名称(hostname) -->
<PARAM name="nodeNames" value="opengauss1,opengauss2"/>
<!-- 数据库安装目录-->
<PARAM name="gaussdbAppPath" value="/software/openGauss/install/app"/>
<!-- 日志目录-->
<PARAM name="gaussdbLogPath" value="/data/openGauss/log/omm"/>
<!-- 临时文件目录-->
<PARAM name="tmpMppdbPath" value="/data/openGauss/tmp"/>
<!-- 数据库工具目录-->
<PARAM name="gaussdbToolPath" value="/software/openGauss/om"/>
<!-- 数据库core文件目录-->
<PARAM name="corePath" value="/data/openGauss/corefile"/>
<!-- 节点IP,与数据库节点名称列表一一对应 -->
<PARAM name="backIp1s" value="192.168.59.131,192.168.59.132"/>
</CLUSTER>
<!-- 每台服务器上的节点部署信息 -->
<DEVICELIST>
<!-- 节点1上的部署信息 -->
<DEVICE sn="opengauss1">
<!-- 节点1的主机名称 -->
<PARAM name="name" value="opengauss1"/>
<!-- 节点1所在的AZ及AZ优先级 -->
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 节点1的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<PARAM name="backIp1" value="192.168.59.131"/>
<PARAM name="sshIp1" value="192.168.59.131"/>
<!--dbnode-->
<PARAM name="dataNum" value="1"/>
<PARAM name="dataPortBase" value="5432"/>
<PARAM name="dataNode1" value="/software/openGauss/install/data/dn,opengauss2,/software/openGauss/install/data/dn"/>
<PARAM name="dataNode1_syncNum" value="0"/>
</DEVICE>
<!-- 节点2上的节点部署信息,其中name的值配置为主机名称 -->
<DEVICE sn="opengauss2">
<!-- 节点2的主机名称 -->
<PARAM name="name" value="opengauss2"/>
<!-- 节点2所在的AZ及AZ优先级 -->
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 节点2的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<PARAM name="backIp1" value="192.168.59.132"/>
<PARAM name="sshIp1" value="192.168.59.132"/>
</DEVICE>
</DEVICELIST>
</ROOT>
EOF
3.8 执行预安装
(opengauss1)主节点执行。
注意:
只能使用root用户执行gs_preinstall命令。
Are you sure you want to create the user[omm] (yes/no)? no 这里输入no
/opt/software/openGauss/script/gs_preinstall -U omm -G dbgroup -X /opt/software/openGauss/cluster_config.xml
#调整权限
chown -R omm:dbgroup /opt/software/openGauss
注意:
Are you sure you want to create trust for root (yes/no)?yes
Please enter password for root
Password: 这里的密码是备节点的ssh登陆密码。
3.9 切换用户执行安装
(opengauss1)主节点执行。
注意:
这里要用操作系统的omm用户来操作。
su - omm
/opt/software/openGauss/script/gs_install -X /opt/software/openGauss/cluster_config.xml
#中间有交互过程,让输入密码,按要求输入
3.10 配置远程访问
(opengauss1,opengauss2)主备节点执行。
sed -i '91 a\host all all 0.0.0.0/0 md5' /software/openGauss/install/data/dn/pg_hba.conf
#修改密码为MD5模式
sed -i "s/#password_encryption_type = 2/password_encryption_type = 0/g" /software/openGauss/install/data/dn/postgresql.conf
#启动备机可读
sed -i "s/#hot_standby_feedback = off/hot_standby_feedback = on/g" /software/openGauss/install/data/dn/postgresql.conf
3.11 操作数据库
(opengauss1-omm用户执行 )主节点执行。
#start|stop|restart
gs_om -t restart
[omm@opengauss1 ~]$ gs_om -t status --detail
[ Cluster State ]
cluster_state : Normal
redistributing : No
current_az : AZ_ALL
[ Datanode State ]
node node_ip port instance state
---------------------------------------------------------------------------------------------------------
1 opengauss1 192.168.59.131 5432 6001 /software/openGauss/install/data/dn P Primary Normal
2 opengauss2 192.168.59.132 5432 6002 /software/openGauss/install/data/dn S Standby Normal
3.12 创建数据库用户
(opengauss1)主节点执行。
su - omm
gsql -d postgres #登陆openGauss
CREATE USER opengauss WITH PASSWORD 'opengauss@123'; #创建用户
GRANT ALL PRIVILEGES TO opengauss;
3.13 添加系统服务
root用户执行。
(opengauss1)主节点执行。
添加系统服务:
cat > /etc/systemd/system/opengauss.service << EOF
[Unit]
Description=openGauss Database Service
After=network.target
[Service]
Type=forking
User=omm
Group=dbgroup
Environment="GPHOME=/software/openGauss/om"
ExecStart=/software/openGauss/om/script/gs_om -t start
ExecStop=/software/openGauss/om/script/gs_om -t stop
ExecRestart=/software/openGauss/om/script/gs_om -t restart
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
设置开机自启:
systemctl enable opengauss
#启动、停止、重启服务
systemctl start|stop|restart opengauss
#查看opengauss服务状态
systemctl status opengauss
四、openGauss卸载
4.1 omm用户所载
(opengauss1)主节点执行。注意:要以omm用户执行。
/opt/software/openGauss/script/gs_uninstall --delete-data
4.2 root 用户清理
(opengauss1)主节点执行。注意:这里要在主节点的root用户下执行。
/opt/software/openGauss/script/gs_postuninstall -U omm -X /opt/software/openGauss/cluster_config.xml --delete-user --delete-group
4.3 root用户清理目录
(opengauss1,opengauss2)主备节点执行。注意:这里要在主备节点的root用户下执行。
rm -rf /opt/software/openGauss/
rm -rf /data/openGauss/
rm -rf /software/openGauss/
主节点执行。注意:要以omm用户执行。
/opt/software/openGauss/script/gs_uninstall --delete-data
4.2 root 用户清理
(opengauss1)主节点执行。注意:这里要在主节点的root用户下执行。
/opt/software/openGauss/script/gs_postuninstall -U omm -X /opt/software/openGauss/cluster_config.xml --delete-user --delete-group
4.3 root用户清理目录
(opengauss1,opengauss2)主备节点执行。注意:这里要在主备节点的root用户下执行。
rm -rf /opt/software/openGauss/
rm -rf /data/openGauss/
rm -rf /software/openGauss/