镜像描述
当前镜像处于公测阶段,您可在华东1资源池试用。如果您希望在其他资源池试用该镜像,可以提交工单申请。
openGauss 是面向数据基础设施的开源关系型数据库。openGauss 调优镜像由天翼云与 openGauss 社区联合推出,基于 AI 学习自动优化数据库参数,提供预装 openGauss 并配置最优参数的 ECS 镜像。使用该镜像,用户可快速部署 openGauss 数据库,并获得优于默认配置的性能表现。该镜像采用 NUMA(Non-Uniform Memory Access,非统一内存访问)分区优化、ARM 指令集加速等关键技术,并通过多轮测试数据训练性能预测模型,最终实现接近真实业务场景的自动化最优调参。
配置要求
推荐配置:vCPU ≥ 4 核,内存 ≥ 16 GB;建议使用鲲鹏架构的云服务器。
免责说明
免责声明:本镜像中集成的 openGauss 数据库来源于第三方开源社区,仅供用户参考和使用。本公司不对因不当使用该镜像所导致的任何损失或损害承担法律责任。用户应确保其使用行为符合相关法律法规,并遵守 openGauss 社区的相关协议。
实践指南
数据库镜像使用指导
您可在华东1-云主机订购页-市场镜像-服务器软件分类 选择试用openGauss调优专用镜像。
自行安装说明(若使用天翼云 openGauss 调优专用镜像,可跳过此部分)。
极简模式服务器单点参考:
https://docs.opengauss.org/zh/docs/latest/docs/InstallationGuide/%E5%8D%95%E8%8A%82%E7%82%B9%E5%AE%89%E8%A3%85.html
下载数据库安装包(登录openGauss开源社区 ,选择对应平台的最新安装包下载。对于个人开发者或非企业级环境,下载极简安装包(不安装OM等组件)即可)。
下载链接:https://opengauss.org/zh/download/
考虑到 glibc 版本兼容性问题,CtyunOS操作系统需要下载 openEuler 22.03 对应的安装版本:
x86_64:
https://opengauss.obs.cn-south-1.myhuaweicloud.com/7.0.0-RC1/openEuler22.03/x86/openGauss-Server-7.0.0-RC1-openEuler22.03-x86_64.tar.bz2
arm64:
https://opengauss.obs.cn-south-1.myhuaweicloud.com/7.0.0-RC1/openEuler22.03/arm/openGauss-Server-7.0.0-RC1-openEuler22.03-aarch64.tar.bz2
首次使用天翼云 openGauss 调优专用镜像开通云主机后需要执行以下步骤:
说明
由于 openGauss 要求使用非 root 普通用户进行安装和运行,该镜像已预置非 root 用户 omm。出于云主机安全考虑,omm 用户默认被禁止登录。
# 禁用omm登录
omm:x:1000:1000::/home/omm:/sbin/nologin
# omm用户加入wheel组
wheel:x:10:omm
# 默认安装目录在/opt/openGauss
准备阶段
用户可以直接root登录创建一个自定义非root用户,例如 dbuser: # 创建用户,设置密码 useradd dbuser passwd dbuser # 加入wheel组 usermod -aG wheel dbuser
设置数据库文件句柄数(可选步骤,建议执行)
系统默认的文件句柄数限制为 1024。当数据库访问的文件数量超过此限制时,将报错“文件句柄数不足”。建议提前为自定义数据库用户(如 dbuser)将文件句柄数限制提升至 1,000,000。例如修改dbuser用户文件句柄数1000000的脚本,之后需要重启机器,set_user_file_limit.sh 文件如下。
#!/bin/bash # 检查参数数量 if [ $# -ne 2 ]; then echo "用法: $0 <用户名> <文件句柄数限制>" echo "示例: $0 john 1024" exit 1 fi # 获取参数 USER="$1" LIMIT="$2" CONFIG_FILE="/etc/security/limits.d/90-nofile.conf" # 检查是否为root用户 if [ "$EUID" -ne 0 ]; then echo "错误: 请使用root权限运行此脚本" exit 1 fi # 验证限制值是否为数字 if ! [[ "$LIMIT" =~ ^[0-9]+$ ]]; then echo "错误: 限制值必须为数字" exit 1 fi # 检查用户是否存在 if ! id "$USER" &>/dev/null; then echo "错误: 用户 '$USER' 不存在" exit 1 fi # 创建配置文件 cat > "$CONFIG_FILE" << EOF # 文件句柄数限制配置 # 创建时间: $(date) # 用户: $USER, 限制: $LIMIT $USER soft nofile $LIMIT $USER hard nofile $LIMIT $USER soft nproc $LIMIT $USER hard nproc $LIMIT EOF # 检查文件是否创建成功 if [ $? -eq 0 ]; then echo "配置文件已创建: $CONFIG_FILE" echo "用户 '$USER' 的文件句柄数限制已设置为: $LIMIT" # 显示文件内容 echo "" echo "配置文件内容:" echo "----------------------------------------" cat "$CONFIG_FILE" echo "----------------------------------------" echo "" echo "文件句柄数限制配置已完成" echo "注意: 用户需要重新登录才能使限制生效" else echo "配置文件创建失败" exit 1 fi
使用root用户执行修改命令。
bash set_user_file_limit.sh dbuser 1000000
使用dbuser重新登录云服务器,检查是否生效。
ulimit -n #查看当前文件句柄数是否修改成1000000
添加环境变量
# dbuser 用户登录 vi ~/.bashrc export GAUSSHOME=/opt/openGauss export PGDATA=${GAUSSHOME}/data export PATH=${GAUSSHOME}/bin:${PATH} export GAUSSLOG=${GAUSSHOME}/logs export LD_LIBRARY_PATH=${GAUSSHOME}/lib:${LD_LIBRARY_PATH} # 加载环境变量 source ~/.bashrc
初始化数据库
# 初始化数据库 gs_initdb -D ${GAUSSHOME}/data --nodename=single_node -U dbuser -w <db_passwd> # 管理数据库服务 gs_ctl status # 查看数据库状态是否运行 gs_ctl start -Z single_node # 开始数据库服务单点模式 gs_ctl stop # 停数据库服务
测试数据库
# 创建测试数据库 gsql -c "CREATE DATABASE test;" -p5432 -U dbuser -d postgres gsql -p5432 -U dbuser -d test
openGauss相关社区文档
关系型板块
AI板块 性能优化指南 补充说明
镜像制作时需要注意的几个事项:
如果数据库配置文件需要修改,可以通过修改配置模版文件。
/opt/openGauss/share/postgresql/postgresql.conf.sample
制作镜像前,删除测试的数据库和日志目录。
rm -rf /opt/openGauss/data/ rm -rf /opt/openGauss/logs/ chgrp wheel /opt/openGauss chmod -R 775 /opt/openGauss
CTyunOS的默认LC_TIME和LANG不一致,设置为一致。
vi /etc/locale.conf LANG=en_US.UTF-8 LC_TIME=en_US.UTF-8
清理/etc/hosts 临时虚机残留内容。
相关常见问题
常见问题一:安装过程如果通过安装脚本install.sh会有"-bash: ulimit: open files: cannot modify limit: Operation not permitted"报错
sudo ulimit -n 1000000
常见问题二:gs_ctl start服务提示"Failed to parse cgroup config file"
该警告通常不影响数据库正常运行,可忽略。若需消除,可安装完整 cgroup 工具包或忽略日志。
常见问题三:如何修改数据库服务的监听IP地址
vim postgresql.conf #监听所有地址 listen_addresses = 'localhost' => listen_addresses = '*' #重启服务 gs_ctl restart
常见问题四:客户端无法连接数据库
先排查网络是否可达,检查安全组和iptables等规则。
如果前面检查无任务问题,再检查本地服务是否运行。
gs_ctl status
服务端配置数据库访问白名单。
vim pg_hba.conf 最后添加(可以配置多条) host all all 0.0.0.0/0 sha256
常见问题五:数据库DBServer无法启动
其他openGauss数据库常见问题