基于CentOS7的openGauss5.x极简版安装过程分享

背景:国产信创适配大环境下,安装并体验一下,了解一些数据库适配情况
约束:CentOS Linux release 7.8.2003 (Core)
范围:仅记录上述平台下的简单安装体验过程
目的:节约大家初次体验的时间,为社会发展略尽绵薄之力

1. 系统要求

1.1. 硬件环境要求

表1 列出了openGauss服务器应具备的最低硬件要求。在实际产品中,硬件配置的规划需考虑数据规模及所期望的数据库响应速度。请根据实际情况进行规划。

表 1 硬件环境要求

项目配置描述
内存功能调试建议32GB以上。性能测试和商业部署时,单实例部署建议128GB以上。复杂的查询对内存的需求量比较高,在高并发场景下,可能出现内存不足。此时建议使用大内存的机器,或使用负载管理限制系统的并发。
CPU功能调试最小1×8核,2.0GHz。性能测试和商业部署时,建议1×16核,2.0GHz。CPU超线程和非超线程两种模式都支持。说明:个人开发者最低配置2核4G,推荐配置4核8G。目前,openGauss仅支持ARM服务器和基于x86_64通用PC服务器的CPU。
硬盘用于安装openGauss的硬盘需最少满足如下要求:至少1GB用于安装openGauss的应用程序。每个主机需大约300MB用于元数据存储。预留70%以上的磁盘剩余空间用于数据存储。建议系统盘配置为RAID1,数据盘配置为RAID5,且规划4组RAID5数据盘用于安装openGauss。有关RAID的配置方法在本手册中不做介绍。请参考硬件厂家的手册或互联网上的方法进行配置,其中Disk Cache Policy一项需要设置为Disabled,否则机器异常掉电后有数据丢失的风险。openGauss支持使用SSD盘作为数据库的主存储设备,支持SAS接口和NVME协议的SSD盘,以RAID的方式部署使用。
网络要求300兆以上以太网。建议网卡设置为双网卡冗余bond。有关网卡冗余bond的配置方法在本手册中不做介绍。请参考硬件厂商的手册或互联网上的方法进行配置。

1.2. 软件环境要求

表 2 软件环境要求

软件类型配置描述
Linux操作系统ARM:openEuler 20.03LTS(推荐采用此操作系统)openEuler 22.03LTS麒麟V10Asianux 7.5x86:openEuler 20.03LTSopenEuler 22.03LTSCentOS 7.6Asianux 7.6说明:当前安装包只能在英文操作系统上安装使用。
Linux文件系统剩余inode个数 > 15亿(推荐)
工具bzip2
Python支持Python3.6+

1.3. 软件依赖要求

表 3 软件依赖要求

所需软件建议版本
libaio-devel建议版本:0.3.109-13
flex要求版本:2.5.31 以上
bison建议版本:2.7-4
ncurses-devel建议版本:5.9-13.20130511
glibc-devel建议版本:2.17-111
patch建议版本:2.7.1-10
redhat-lsb-core建议版本:4.1
readline-devel建议版本:7.0-13
libnsl(openEuler+x86环境中)建议版本:2.28-36

2. 安装准备

本节基于root或管理员账户操作。

2.1. 关闭操作系统防火墙

只能在防火墙关闭的情况下安装。

systemctl stop firewalld.service

安装完成后重新开启防火墙

systemctl start firewalld.service

2.2. 校对字符集

使用 locale 命令查看当前系统默认字符集,如果输出的不是 UTF-8,则需要进一步修改。

locale charmap
UTF-8

将各数据库节点的字符集设置为相同的字符集,可以在/etc/profile文件中添加“export LANG=XXX”(XXX为Unicode编码)。

vim /etc/profile
# 加入以下内容并保存
export LANG=UTF-8
# 让配置生效
source /etc/profile

2.3. 检查时区

  1. 检查时区为中国时间标准,如下所示,CST可以认为是中国标准,当然它也可以代表美国等标准

    date
    Fri May 17 16:00:07 CST 2024
    

    通过该命令来保证所有数据库节点的时区一致性,并且保持数据库节点之间的时间误差小于1分钟(30秒内最佳)。

  2. 使用如下命令将各数据库节点/usr/share/zoneinfo/目录下的时区文件拷贝为/etc/localtime文件。

    cp /usr/share/zoneinfo/$地区/$时区 /etc/localtime
    

    说明:$地区/$时区为需要设置时区的信息,例如:/usr/share/zoneinfo/Asia/Shanghai

  3. 使用date -s命令将各数据库节点的时间设置为统一时间,举例如下。

    date -s "Sat Sep 27 16:00:07 CST 2020"
    

2.4. (可选)关闭swap交换内存

关闭

swapoff -a

开启

swapon -a

说明:关闭swap交换内存是为了保障数据库的访问性能,避免把数据库的缓冲区内存淘汰到磁盘上。 如果服务器内存比较小,内存过载时,可打开swap交换内存保障正常运行。

2.5. 安装依赖库

用root账户安装。以下为使用yum进行安装的命令,其他方式略。

yum -y install libaio-devel flex bison ncurses-devel glibc-devel patch redhat-lsb-core readline-devel libnsl

2.6. 用户组及用户

  1. 创建用户组dbgroup。

    groupadd dbgroup
    
  2. 创建用户组dbgroup下的普通用户omm,并设置普通用户omm的密码,密码建议设置为英文、数字、特殊符号的特定组合。

    useradd -g dbgroup omm
    passwd omm
    

备注:可以用以下命令查询组或用户是否存在

cat /etc/group | grep 组名
cat /etc/passwd | grep 用户名

3. 服务器单节点安装

此处基于root或管理员账户操作。

  1. 下载、拷贝安装包

  2. 创建安装目录,以下仅为示例目录

    mkdir -p /opt/software/openGauss
    
  3. 解压包(注意替换实际的包名)

    tar -jxf openGauss-x.x.x-操作系统-64bit.tar.bz2 -C /opt/software/openGauss
    
  4. 目录权限设置

    chown -R omm:dbgroup /opt/software/openGauss
    
  5. 修改文件句柄数量

    # 查看当前操作系统最大上限(虚拟),每次系统启动会自动初始化
    cat /proc/sys/fs/file-max
    # 在设置文件句柄数量的时候,如果服务器只装一个数据库,那么可以将句柄数设置为接近上面的最大值
    # 先为root账户设置最大值(永久)
    vim ~/.bashrc
    # 添加,value是具体数值,默认是1024,按需填写,但不要超过最大值,留有余地
    ulimit -n [value]
    # 保存并退出后刷新此配置
    source ~/.bashrc
    # 到opengauss5 极简安装中的文件句柄数默认是100W,有超过小服务器资源上限的风险,建议调低
    # 切换到opengauss的账户
    su omm
    # 重复配置一遍omm的使用限制
    vim ~/.bashrc
    ulimit -n [value]
    source ~/.bashrc
    # 退出omm,回到root账户
    exit
    
  6. 设置用于控制信号量行为的内核参数。

    # 永久修改
    vim /etc/sysctl.conf
    # 内容如下:
    # kernel.sem = 250 85000 250 330
    # 保存退出后使其生效
    sysctl -p
    

    如果不设置该参数的话大概率会在安装时出现 “On systemwide basis, the maximum number of SEMMNI is not correct. the current SEMMNI value is: 128. Please check it.” 的错误信息。

    ipcs -l 可以查看当前系统的配置。

    说明:

    kernel.sem参数在Linux系统中扮演的角色和包含的子参数如下:

    1. SEMMSL(max semaphores per array) :每个信号集容纳最大信号数量
    2. SEMMNS(max semaphores system wide): 系统中信号总量上限
    3. SEMOPM(max ops per semop call):调用单个信号集中最大信号数量,通常等于SEMMSL
    4. SEMMNI(max number of arrays):信号集总量上限

    总的来说,kernel.sem是Linux内核中用于管理信号量行为的一组参数,它通过各个子参数来控制系统中信号量的创建和使用,以协调多进程之间的资源共享和访问顺序。

  7. 切换数据库管理账户

    su omm
    
  8. 假定解压包的路径为/opt/software/openGauss,进入解压后目录下的simpleInstall。

    cd /opt/software/openGauss/simpleInstall
    
  9. 执行install.sh脚本安装openGauss,xxxx是数据库初始化密码,请妥善保管。

    sh install.sh  -w "xxxx" &&source ~/.bashrc
    

    如果安装结果如下说明非常成功地安装好了:

    [2024-05-21 08:45:17.520][25357][][gs_ctl]:  done
    [2024-05-21 08:45:17.520][25357][][gs_ctl]: server started (/opt/software/openGauss/data/single_node)
    import sql file
    Would you like to create a demo database (yes/no)? yes
    Load demoDB [school,finance] success.
    [complete successfully]: You can start or stop the database server using:
        gs_ctl start|stop|restart -D $GAUSSHOME/data/single_node -Z single_node
    

    这个是一般的服务控制命令:gs_ctl start|stop|restart -D $GAUSSHOME/data/single_node -Z single_node

  10. 检验数据库进程是否正常运行

    ps ux | grep gaussdb
    # 模拟运行中进程信息输出如下
    opengau+ 25360  4.6 10.5 6172412 841880 ?      Ssl  08:45   0:11 /opt/software/openGauss/bin/gaussdb -D /opt/software/openGauss/data/single_node
    opengau+ 25774  0.0  0.0 110476   892 pts/0    S+   08:49   0:00 grep --color=auto gaussdb
    

4. 数据库配置

本节基于数据库专用账户进行操作,基于上文,此处应为omm

  1. 数据库基本配置目录,本文是服务器单节点极简版:/opt/software/openGauss/data/single_node

  2. 数据库客户端的访问权限控制配置文件,pg_hba.conf,以下是示例

    TYPE  DATABASE        USER            ADDRESS                 METHOD
    
    "local" is for Unix domain socket connections only
    #表示只允许以安装时-U参数指定的用户从服务器本机进行连接。
    local   all             all                                     trust
    IPv4 local connections:
    #表示允许jack用户从10.10.0.50主机上连接到任意数据库,使用sha256算法对密码进行加密。
    host    all           jack             10.10.0.50/32            sha256
    #表示允许任何用户从10.10.0.0/24网段的主机上连接到任意数据库,使用sha256算法对密码进行加密,并且经过SSL加密传输。
    hostssl    all             all             10.10.0.0/24            sha256
    #表示禁止任何用户从10.10.0.1/32网段的主机上连接到任意数据库。 
    host    all             all             10.10.0.1/32            reject
    
  3. 开放远程访问权限,postgresql.conf

    vim /opt/
    

    定位 Connection Settings,按 /并输入"Connection"按下回车,一般就能迅速定位(大约位于65行附近),调整以下配置:

    listen_addresses = '*'
    local_bind_address = '0.0.0.0'
    port = 5432
    max_connections = 200
    

    调整完保存退出,然后重启opengauss:

    /opt/software/openGauss/bin/gs_ctl restart -D /opt/software/openGauss/data/single_node -Z single_node
    
  4. 连接上数据库验证一下

    /opt/software/openGauss/bin/gsql -d postgres -p 5432
    # 如果看到这样的就可以了
    openGauss=#
    # \q回车  退出客户端
    

5. 安全管理

本节操作请切换至root或管理员账户。

5.1. 关闭HISTORY记录

为避免指令历史记录安全隐患,需关闭各主机的history指令。

  1. 修改根目录下/etc/profile文件。

    vim /etc/profile
    
  2. 步骤 2 设置HISTSIZE值为0。例如,系统中HISTSIZE默认值为1000,将其修改为0。

    HISTSIZE=0
    
  3. 保存/etc/profile。

  4. 设置/etc/profile生效。

    source /etc/profile
    

5.2. 开启防火墙

systemctl start firewalld.service
firewall-cmd --zone=public --add-port=5432/tcp --permanent
firewall-cmd --reload

6. 数据库账户配置

为项目或业务领域设立一个专用的管理员账户,更加详细的三权分立数据库管理账户体系请参见官方文档。以下用sysadmin为例。

本节用omm账户,登录客户端:

/opt/software/openGauss/bin/gsql -d postgres -p 5432

6.1. 创建账户

openGauss=# CREATE USER sysadmin WITH SYSADMIN password "xxxxxxxxx";

7. 可视化数据库管理工具

开发、运维同学一般都习惯用可视化工具来快速操作数据库,但是相关工具的适配才刚起步,只能先使用官方工具了。

  1. 从以下入口进入工具清单界面
    在这里插入图片描述

  2. 我的电脑是Windows(x86_64)。
    在这里插入图片描述

  3. 这个是可视化工具界面
    在这里插入图片描述

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值