配置操作系统满足安装要求
硬件环境要求 (全部节点)
内存8GB,4核心CPU,900G磁盘
# 检查CPU核数
cat /proc/cpuinfo | grep processor
# 检查内存大小
free -m
# 检查系统版本
cat /etc/redhat-release
注:
Linux操作系统:
- ARM:
- openEuler 20.03LTS(推荐采用此操作系统)
- 麒麟V10
- Asianux 7.5
- x86:
- openEuler 20.03LTS
- CentOS 7.6
- Asianux 7.6
说明:
当前安装包只能在英文操作系统上安装使用。
若不是上述环境,则预安装时,会产生异常如下:
openGauss-企业版-3.1.0
Exception:[GAUSS-51900]:The current os is not supported platforms are ['suse', 'rehat', 'centos', 'euleros', 'debian', 'ubuntu']
目前openGauss并不适配一些环境,在选择使用之前,需做好调研。
配置环境 (全部节点)
- 修改/etc/hosts
# 检查主机名和IP地址是否配置正确 需要配置主机名
hostname && ifconfig | grep broadcast | awk '{print $2}'
# 添加Hosts解析(假设主机名host-192-168-1-1 IP地址为192.168.1.1) 替换host-192-168-1-1这行
sed -i '/host-192-168-1-1/d' /etc/hosts
#新增一行记录
echo "192.168.1.1 host-192-168-1-1 ##openGauss OM IP Hosts Mapping" >>/etc/hosts
# 检查增加的记录
cat /etc/hosts|grep openGauss
- 关闭防火墙
# 停止firewall
systemctl stop firewalld.service
# 禁止防火墙开机自启
systemctl disable firewalld.service
# 检查防火墙是否关闭
systemctl status firewalld
- 关闭selinux
getenforce
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
setenforce 0
getenforce
# 检查
cat /etc/selinux/config | grep SELINUX
- 设置root用户远程登录
# 配置SSH服务(允许root登录 关闭Banner)
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
# 生效
systemctl restart sshd.service
# 检查
cat /etc/ssh/sshd_config | grep -v ^#| grep -E 'PermitRootLogin|Banner'
- 字符集参数
将数据库节点的字符集设置为相同的字符集
# 修改
cat>> /etc/profile<<EOF
export LANG=en_US.UTF-8
EOF
# 检查
cat /etc/profile|grep LANG
- 设置时区和时间(可选)
将数据库节点的字符集设置为相同的时区
rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
date -R
hwclock
echo -e "\n"
- 操作系统参数
# 手动修改值
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
net.ipv4.tcp_fin_timeout = 60
EOF
# 生效
sysctl -p
- 修改系统资源限制
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
- 关闭透明页(仅对CentOS)
# 临时关闭透明页
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
# 编译grub 内核层面关闭透明页
sed -i '/^GRUB_CMDLINE_LINUX/d' /etc/default/grub
echo "GRUB_CMDLINE_LINUX=\"rhgb quiet transparent_hugepage=never\"" >> /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg
软件包
# 检查软件依赖包
rpm -qa libaio-devel flex bison ncurses-devel glibc-devel patch redhat-lsb-core readline-devel bzip2 python3 java-1.8.0-openjdk*
# 如果少 则安装 或 全部安装
yum install -y lksctp*
yum install -y java-1.8.0-openjdk* psmisc bzip2 python3 python3-devel
yum install libaio-devel flex bison ncurses-devel glibc-devel patch readline-devel redhat-lsb-core libnsl
# 再次检查
rpm -qa libaio-devel flex bison ncurses-devel glibc-devel patch redhat-lsb-core readline-devel bzip2 python3 java-1.8.0-openjdk* libnsl
必须软件环境:bzip2、Python3
若为内网/离线环境无法在线安装python,则可通过以下步骤安装
-
上传
/usr/local/
-
解压
tar -zxvf Python-3.6.10.tgz
,并改名mv Python-3.6.10 python3
-
安装
./configure --prefix=/usr/local/python3 --enable-shared CFLAGS=-fPIC make && make install ln -s /usr/local/python3/bin/python3 /usr/bin/python3 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
-
设置环境变量
cat >>/etc/profile<<EOF export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/python3/bin EOF source /etc/profile echo "/usr/local/python3/lib/" >> /etc/ld.so.conf ldconfig
安装前准备 (主节点)
目录规划
目录名称 | 名称 | 作用 |
---|---|---|
/opt/software/openGauss | software | 安装软件存放目录 |
/opt/gaussdb/install/app | gaussdbAppPath | 数据库安装目录 |
/opt/gaussdb/log | gaussdbLogPath | 日志目录 |
/opt/gaussdb/install/data/db1 | dataNode1 | 主备节点数据存放目录 |
/opt/gaussdb/tmp | tmpMppdbPath | 临时文件目录 |
/opt/gaussdb/gausstools/om | gaussdbToolPath | 数据库工具目录 |
/opt/gaussdb/corefile | corePath | 数据库core文件目录 |
/opt/gaussdb/install/data/cm | cmDir | CM数据目录 |
# 创建安装包的存放目录
mkdir -p /opt/software/openGauss
chmod 755 -R /opt/software
上传openGauss-3.1.0-CentOS-64bit-all.tar.gz到/opt/software/openGauss目录下
- 解压
cd /opt/software/openGauss
tar -zxvf openGauss-3.1.0-CentOS-64bit-all.tar.gz
tar -zxvf openGauss-3.1.0-CentOS-64bit-om.tar.gz
- 创建xml文件
在/opt/software/openGauss 目录下创建 cluster_config.xml配置文件
vim cluster_config.xml
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<!-- openGauss整体信息 -->
<CLUSTER>
<!-- 数据库名称 -->
<PARAM name="clusterName" value="dbCluster" />
<!-- 数据库节点名称(hostname) -->
<PARAM name="nodeNames" value="node1_hostname,node2_hostname" />
<!-- 数据库安装目录-->
<PARAM name="gaussdbAppPath" value="/opt/gaussdb/install/app" />
<!-- 日志目录-->
<PARAM name="gaussdbLogPath" value="/opt/gaussdb/log" />
<!-- 临时文件目录-->
<PARAM name="tmpMppdbPath" value="/opt/gaussdb/tmp"/>
<!-- 数据库工具目录-->
<PARAM name="gaussdbToolPath" value="/opt/gaussdb/gausstools/om" />
<!-- 数据库core文件目录-->
<PARAM name="corePath" value="/opt/gaussdb/corefile"/>
<!-- 节点IP,与数据库节点名称列表一一对应 -->
<PARAM name="backIp1s" value="192.168.0.1,192.168.0.2"/>
</CLUSTER>
<!-- 每台服务器上的节点部署信息 -->
<DEVICELIST>
<!-- 节点1上的部署信息 -->
<DEVICE sn="node1_hostname">
<!-- 节点1的主机名称 -->
<PARAM name="name" value="node1_hostname"/>
<!-- 节点1所在的AZ及AZ优先级 -->
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 节点1的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<PARAM name="backIp1" value="192.168.0.1"/>
<PARAM name="sshIp1" value="192.168.0.1"/>
<!--dn-->
<PARAM name="dataNum" value="1"/>
<PARAM name="dataPortBase" value="5432"/>
<PARAM name="dataNode1" value="/opt/gaussdb/install/data/db1,node2_hostname,/opt/gaussdb/install/data/db1"/>
<PARAM name="dataNode1_syncNum" value="0"/>
</DEVICE>
<!-- 节点2上的节点部署信息,其中“name”的值配置为主机名称 -->
<DEVICE sn="node2_hostname">
<!-- 节点2的主机名称 -->
<PARAM name="name" value="node2_hostname"/>
<!-- 节点2所在的AZ及AZ优先级 -->
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 节点2的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<PARAM name="backIp1" value="192.168.0.2"/>
<PARAM name="sshIp1" value="192.168.0.2"/>
</DEVICE>
</DEVICELIST>
</ROOT>
重要提示:
1. 配置数据库节点名称时,请通过hostname命令获取数据库节点的主机名称,替换示例中的node1_hostname,node2_hostname。
2. backIp1s、sshIp1对应节点
3. dataPortBase端口号根据需要调整
-
配置环境变量
cat>> /etc/profile<<EOF export LD_LIBRARY_PATH=/opt/software/openGauss/script/gspylib/clib:$LD_LIBRARY_PATH EOF # 重启生效 echo $LD_LIBRARY_PATH
-
进行交互式检查
cd /opt/software/openGauss/script ./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster_config.xml # 查看具体的检查信息 /opt/software/openGauss/script/gs_checkos -i A -h node1 --detail
-
交互模式安装openGauss
#使用root执行如下命令 cd /opt/software/openGauss/script chmod -R 775 /opt/software/openGauss/script chown -R omm:dbgrp /opt/software/openGauss/script #使用omm用户安装openGauss DBMS和创建openGauss数据库 su - omm cd /opt/software/openGauss/script cp ../cluster_config.xml .
-
安装
如果内存为8G,则可以采用默认安装方式#使用omm用户安装openGauss DBMS和创建openGauss数据库 cd /opt/software/openGauss/script gs_install -X /opt/software/openGauss/script/cluster_config.xml
注:若低于8G,则需调整参数
4G参数模板如下:su - omm cd /opt/software/openGauss/script gs_install -X /opt/software/openGauss/script/cluster_config.xml \ --gsinit-parameter="--encoding=UTF8" \ --dn-guc="max_connections=5000" \ --dn-guc="max_process_memory=2GB" \ --dn-guc="shared_buffers=1GB" \ --dn-guc="bulk_write_ring_size=2GB" \ --dn-guc="cstore_buffers=1GB"
重要提示:用户需根据提示输入数据库的密码,密码需要具有一定的复杂度,为保证用户正常使用该数据库,请记住输入的数据库密码。
# 查看数据库状态
gs_om -t status --detail
# 遇到情况 重启数据库
gs_om -t stop && gs_om -t start
# 首次登录数据库
gsql -d postgres -p 5433 -r
# 登录之后若想退出 \q
参考链接