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

openGauss安装

原创 喵呜 2025-01-16
103

[TOC]
## 一、参考资料
```
1. 一键部署脚本:https://www.modb.pro/db/52552
2. 华为openGauss(GaussDB)v2.1使用手册:https://www.bookstack.cn/read/openGauss-2.1-zh
3. OpenGauss学习笔记之:OpenGauss 1.1.0 “一主一备一级联” HA安装(Centos 7.6):https://www.modb.pro/db/48731
```
## 二、硬件要求
```
1. 至少4核8G
2. 不要swap分区
3. 推荐使用openEuler操作系统,建议英文语言。
```
## 三、安装 openGauss 企业版单机数据库
### 2.1 手动安装
```
1. openGauss数据库软件和工具(data studio)下载地址:
https://opengauss.org/zh/download/archive/
```
#### 2.1.1 安装过程中需注意事项
```
1. 设置网卡MTU值
1.1 查看网卡ens33的mtu
[root@node1 ~]# ifconfig |grep ens33 |grep mtu
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
1.2 给网卡ens33配置mtu
[root@node1 ~]# ifconfig ens33 mtu 1500
【官方文档推荐】
对于X86,MTU值推荐1500(默认值,可不修改);
对于ARM,MTU值推荐8192。
有其他文档说明:对于10GB网卡设置8192,对于1GB网卡设置1500,未在10GB上验证。
```
### 2.2 脚本安装
```
#!/bin/bash

## Author: 贾军锋
## Date: 2021-04-15
## OS: openEuler20.03LTS x86_64[最小硬件配置:2c/4G]
## Database:openGauss 2.0.0
## Description:一键式实现操作系统环境配置、openGauss软件下载、openGauss软件安装等步骤,帮助大家提升安装openGauss数据库效率
## Tips: 请确保操作系统可以连接外网

############################################################
## 说明:ARM架构的操作系统需要修改脚本的URL地址和YUM源地址。
## 第1步操作修改内容:
## export openGauss_Download_url=https://opengauss.obs.cn-south-1.myhuaweicloud.com/2.0.0/arm/openGauss-2.0.0-openEuler-64bit-all.tar.gz
## 第8步操作修改内容:
## wget -O /etc/yum.repos.d/openEulerOS.repo https://repo.huaweicloud.com/repository/conf/openeuler_aarch64.repo
############################################################


## 0.关闭virbr0网卡 [本地虚拟机软件标准化安装openEuler系统会默认存在virbr0网卡,删除该网卡以避免干扰数据库的安装]
## virsh net-destroy default
## virsh net-list
## echo "Net device virbr0 is disabled."

## 1.定义主机信息[请根据实际情况修改]
export MY_HOSTNAME=node1 ## 主机名
export MY_HOSTIP=$(ip addr show|grep -w inet|grep -v '127.0.0.1'|awk '{print $2}'|awk -F '/' '{print $1}'|head -n 1) ## IP地址
export MY_SOFTWARE_DIRECTORY=/soft/openGauss ## 软件包所在目录
export MY_XML=/soft/openGauss/clusterconfig.xml ## 集群配置文件XML
export openGauss_Download_url=https://opengauss.obs.cn-south-1.myhuaweicloud.com/2.0.0/x86_openEuler/openGauss-2.0.0-openEuler-64bit-all.tar.gz ## openGauss软件包下载地址

## 1. 设置主机名并配置hosts文件
hostnamectl set-hostname $MY_HOSTNAME
sed -i '/$MY_HOSTIP/d' /etc/hosts
echo "$MY_HOSTIP $MY_HOSTNAME #Gauss OM IP Hosts Mapping" >> /etc/hosts
cat /etc/hosts
echo "1.Configure /etc/hosts completed."
echo -e "\n"

## 2. 关闭防火墙
systemctl disable firewalld.service
systemctl stop firewalld.service
echo "Firewalld " `systemctl status firewalld|grep Active`
echo "2.Disable firewalld service completed."
echo -e "\n"

## 3. 关闭SELinux
sed -i '/^SELINUX=/d' /etc/selinux/config
echo "SELINUX=disabled" >> /etc/selinux/config
cat /etc/selinux/config|grep "SELINUX=disabled"
echo "3.Disable SELINUX completed."
echo -e "\n"


## 4. 设置操作系统字符集编码
echo "LANG=en_US.UTF-8" >> /etc/profile
source /etc/profile
echo $LANG
echo "4.Configure encoding completed."
echo -e "\n"

## 5. 设置操作系统时区
rm -fr /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
date -R
hwclock
echo "5.Configure Timezone completed."
echo -e "\n"

## 6. 关闭SWAP分区 [对于2G内存的设备,建议待安装完毕后再打开SWAP以间接 “扩容内存容量”]
sed -i '/swap/s/^/#/' /etc/fstab
swapoff -a
free -m
echo "6.Close swap partition completed."
echo -e "\n"


## 7. 配置SSH服务,关闭Banner,允许root远程登录
sed -i '/Banner/s/^/#/' /etc/ssh/sshd_config
sed -i '/PermitRootLogin/s/^/#/' /etc/ssh/sshd_config
echo -e "\n" >> /etc/ssh/sshd_config
echo "Banner none " >> /etc/ssh/sshd_config
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
cat /etc/ssh/sshd_config |grep -v ^#|grep -E 'PermitRoot|Banner'
echo "7.Configure SSH Service completed."
echo -e "\n"

## 8. 配置YUM源、安装依赖包、修改默认Python3版本
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/
wget -O /etc/yum.repos.d/openEulerOS.repo https://repo.huaweicloud.com/repository/conf/openeuler_x86_64.repo
yum clean all
yum install -y bzip2 python3
yum install -y libaio-devel libnsl flex bison ncurses-devel glibc-devel patch readline-devel net-tools tar
mv /usr/bin/python /usr/bin/python2_bak
ln -s /usr/bin/python3 /usr/bin/python
python -V
echo "8.Configure Install Packages and change default Python version completed."
echo -e "\n"


## 9. 配置 sysctl.conf 和 performance.sh
cat >> /etc/sysctl.conf << EOF
net.ipv4.tcp_retries1 = 5
net.ipv4.tcp_syn_retries = 5
net.sctp.path_max_retrans = 10
net.sctp.max_init_retransmits = 10
EOF
sysctl -p

sed -i '/vm.min_free_kbytes/s/^/#/' /etc/profile.d/performance.sh ## Only for openEuler
cat /etc/profile.d/performance.sh|grep vm.min_free_kbytes

echo "9.Configure sysctl.conf and performance.sh completed."
echo -e "\n"


## 10. 配置资源限制
echo "* soft stack 3072" >> /etc/security/limits.conf
echo "* hard stack 3072" >> /etc/security/limits.conf
echo "* soft nofile 1000000" >> /etc/security/limits.conf
echo "* hard nofile 1000000" >> /etc/security/limits.conf
echo "* soft nproc unlimited" >> /etc/security/limits.d/90-nproc.conf
tail -n 4 /etc/security/limits.conf
tail -n 1 /etc/security/limits.d/90-nproc.conf
echo "10.Configure resource limits completed."
echo -e "\n"

## 11. 关闭透明大页[Only for CentOS]
cat >>/etc/rc.d/rc.local<<EOF
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
EOF
chmod +x /etc/rc.d/rc.local
/usr/bin/sh /etc/rc.d/rc.local
cat /sys/kernel/mm/transparent_hugepage/enabled
cat /sys/kernel/mm/transparent_hugepage/defrag
echo "11.Close transparent_hugepage completed."
echo -e "\n"


## 12. 禁用RemoveIPC[Only for openEuler]
sed -i '/^RemoveIPC/d' /etc/systemd/logind.conf
sed -i '/^RemoveIPC/d' /usr/lib/systemd/system/systemd-logind.service
echo "RemoveIPC=no" >> /etc/systemd/logind.conf
echo "RemoveIPC=no" >> /usr/lib/systemd/system/systemd-logind.service
systemctl daemon-reload
systemctl restart systemd-logind
loginctl show-session | grep RemoveIPC
systemctl show systemd-logind | grep RemoveIPC
echo "12.Disable RemoveIPC completed."
echo -e "\n"


## 13. 下载openGauss软件包
mkdir -p $MY_SOFTWARE_DIRECTORY
cd $MY_SOFTWARE_DIRECTORY
wget $openGauss_Download_url
echo "13.openGauss software download completed."
echo -e "\n"

## 14. 配置XML文件
rm -fr $MY_XML
cat >> $MY_XML <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<!-- openGauss整体信息 -->
<CLUSTER>
<PARAM name="clusterName" value="dbCluster" />
<PARAM name="nodeNames" value="$MY_HOSTNAME" />
<PARAM name="backIp1s" value="$MY_HOSTIP"/>
<PARAM name="gaussdbAppPath" value="/gaussdb/app" />
<PARAM name="gaussdbLogPath" value="/gaussdb/log" />
<PARAM name="gaussdbToolPath" value="/gaussdb/om" />
<PARAM name="corePath" value="/gaussdb/corefile"/>
<PARAM name="clusterType" value="single-inst"/>
</CLUSTER>
<!-- 每台服务器上的节点部署信息 -->
<DEVICELIST>
<!-- node1上的节点部署信息 -->
<DEVICE sn="1000001">
<PARAM name="name" value="$MY_HOSTNAME"/>
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<PARAM name="backIp1" value="$MY_HOSTIP"/>
<PARAM name="sshIp1" value="$MY_HOSTIP"/>

<!--dbnode-->
<PARAM name="dataNum" value="1"/>
<PARAM name="dataPortBase" value="26000"/>
<PARAM name="dataNode1" value="/gaussdb/data/db1"/>
</DEVICE>
</DEVICELIST>
</ROOT>
EOF
cat $MY_XML
echo "14.Configure XML file completed."
echo -e "\n"


## 15. 解压安装包并修改目录权限
echo "Begin to Uncompress openGauss Package and Modify directory permissions:"
cd $MY_SOFTWARE_DIRECTORY
tar -zxvf *all.tar.gz
tar -zxvf *om.tar.gz
ls -l
chmod -R 777 $MY_SOFTWARE_DIRECTORY/../
echo "15.Uncompress openGauss Package completed."
echo -e "\n"

## 16. 执行 gs_preinstall
echo "Begin to execute openGauss preinstall:"
python $MY_SOFTWARE_DIRECTORY/script/gs_preinstall -U omm -G dbgrp -X $MY_XML
echo "16.openGauss preinstall completed."
echo -e "\n"


## 17. 检查预安装环境
echo "Begin to Check OS environment:"
$MY_SOFTWARE_DIRECTORY/script/gs_checkos -i A -h $MY_HOSTNAME --detail

## 18. 执行 gs_install
echo "Begin to execute openGauss install:"
touch /home/omm/install_db
cat >> /home/omm/install_db <<EOF
source ~/.bashrc
gs_install -X $MY_XML --gsinit-parameter="--encoding=UTF8" --dn-guc="max_process_memory=2GB" --dn-guc="shared_buffers=128MB" --dn-guc="cstore_buffers=16MB"
EOF
chown -R omm:dbgrp /home/omm/install_db
su - omm -c "sh /home/omm/install_db"
echo "17.openGauss install completed."
echo -e "\n"

## 安装完毕!
echo "openGauss Install completed.congratulations"
echo "Congratulations!!!"
```
## 四、服务端工具
### 4.1 gs_om
#### 4.1.1 背景信息
```
openGauss提供了gs_om工具帮助对openGauss进行维护,包括
启动openGauss、停止openGauss、查询openGauss状态、
查询静态配置、生成静态配置文件、查询openGauss状态详细信息、
生成动态配置文件、SSL证书替换、显示帮助信息和显示版本号信息等功能。
```
#### 4.1.2 前提条件
```
需以操作系统用户omm执行gs_om命令。
```
#### 4.1.3 语法
```
1. 启动openGauss
[omm@node1 ~]$ gs_om -t start
2. 查看openGuass各个实例的状态情况
[omm@node1 ~]$ gs_om -t status --detail
3. 查看openGuass详细状态
[omm@node1 ~]$ gs_om -t status --all
[omm@node1 ~]$ gs_om -t query
4. 关闭openGuass
[omm@node1 ~]$ gs_om -t stop
5. 重启openGauss
[omm@node1 ~]$ gs_om -t restart
```
## 五、客户端工具
### 5.1 gsql 简介
```
gsql 是openGauss提供在命令行下运行的数据库连接工具,可以通过此工具连接服务器并对其进行操作和维护,除了具备操作数据库的基本功能,gsql还提供了若干高级特性,便于用户使用。
```
### 5.2 使用 gsql 连接数据库 - 本地连接
```
1. 以操作系统用户omm登录数据库主节点。

2. 查看帮助
[omm@node1 ~]$ gsql --help

3. gsql常用参数
-d 要连接的数据库名
-p 数据库端口号
-U 指定数据库用户名,默认omm,omm用户是管理员用户。
-h 指定主机名
-r 根据openGauss语法规则,gsql支持使用Tab键进行命令的自动补齐,当编译时指定了选项—with-readline,且客户端连接时指定“-r”参数,此功能被打开。

4. 连接数据库
说明:数据库安装完成后,默认生成名称为postgres的数据库。第一次连接数据库时可以连接到此数据库。

常用如下命令连接数据库:
语法1:gsql -d 要连接的数据库名 -p 数据库端口号 -r
语法2:gsql -d 要连接的数据库名 -p 数据库端口号 -U 数据库用户名 -h 主机名 -r

范例1、使用omm用户连接到本机postgres数据库的26000端口
[omm@node1 ~]$ gsql -d postgres -p 26000 -r

范例2、使用jack用户连接到远程主机192.168.0.5 postgres数据库的26000端口
[omm@node1 ~]$ gsql -h 192.1680.5 -d postgres -p 26000 -U jack -r

范例3、当参数postgres和omm不属于任何选项时,分别被解释为数据库名和用户名
[omm@node1 ~]$ gsql postgres omm -p 26000 等效于 gsql -d postgres -U omm -p 26000

5. 连接成功后,系统显示类似如下信息:
[omm@node1 ~]$ gsql -d postgres -p 26000
postgres=#

说明:
omm用户是管理员用户,因此系统显示“DBNAME=#”。若使用普通用户身份登录和连接数据库,系统显示“DBNAME=>”。

6. 列出当前所有数据库
postgres=# \l

7. 创建用户jack并设置密码为 gauss@123,并给与系统管理员权限。
postgres=# create user jack with sysadmin identified by 'gauss@123';

8. 退出数据库
postgres=# \q

9. openGauss 的连接ip白名单
配置文件为:data_pat/pg_hba.conf

...
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all 192.168.0.11/32 trust
#添加ip192.168.0.5到白名单,注意远程登录不能使用trust
#METHOD can be "trust", "reject", "md5", "sha256" or "cert".
host all all 192.168.0.5/32 sha256
...
```




最后修改时间:2025-01-22 11:39:52
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论