中国移动信创云 openEuler 和 openGauss 使用笔记

以下笔记是本人使用中国移动 移动云 信创专区时的工作笔记,由衷感谢中国移动的各位同仁在期间帮助和支持。

一、安装系统

1、安装 24.03 SP4(移动云提供的openEuler的最后一个版本镜像(24.03 SP3)在执行update时会报错。鉴于移动云可能不再提供更新openEuler镜像服务,所以需要先创建 移动云的对象存储EOS“桶”,将系统镜像文件传到“桶”里,再在安装“自定义系统镜像”中选择“桶”内的镜像地址,导入镜像类型:raw,系统安装软件选择基本环境:服务器,附加软件:Linux 远程管理,windows文件服务器,开发工具、安全工具、系统工具。)

2、更新系统   dnf update -y

  【     使用移动云提供的24.03 SP3的更新系统   dnf update -y --nobest 

  当原始源不可用时,可用如下步骤尝试解决:

  1、备份yum源文件(   cp /etc/yum.repos.d/openEuler.repo /etc/yum.repos.d/openEuler.repo.bak   )

  2、替换文件中的内网源,改为外网源(   sed -i 's/mirrors-internal\.cmecloud\.cn/mirrors.cmecloud.cn/g' /etc/yum.repos.d/openEuler.repo   )

  3、刷新缓存(   yum makecache   )    】

3、重启系统  reboot

4、安装麒麟信安kiran桌面   dnf install kiran-desktop -y    (openEuler  24.03 SP3及更早版本用麒麟UKUI和DDE,kiran对24.03 SP4支持非常好,新版本强烈推荐kiran桌面,速度快,功能全。)

5、在终端里设置中文语言   localectl set-locale LANG=zh_CN.UTF-8

6、设置以图形界面的方式启动  systemctl set-default graphical.target 

7、重启系统  reboot

8、重启登录后提示文件夹改中文,因为移动云命令输入框的原因,保留英文命名。

9、可以设置高显示分辨率 (1920*1200      1920*1080)

 

二、安装远程控制服务RustDesk

  1、RustDesk官方网址为https://rustdesk.com/zh/     下载最新客户端对应网址为:https://github.com/rustdesk/rustdesk/releases/latest

  2、下载的时候选择 Assets 中的ARM对应版本   地址为:https://github.com/rustdesk/rustdesk/releases/download/1.5.0/rustdesk-1.5.0-0.aarch64.rpm

  3、下载以后,在图标上右键选择   “使用其他程序打开(A)...”   》 “使用自定义命令”  》文本框中输入 (   mate-terminal -- bash -c "sudo dnf install '%f';read -p '按回车关闭'"      )  》   打开

  4、 双击下载好的安装包进行安装。

  5、启动RustDesk 》ID旁边的3个点 》安全(Security)》解锁安全选项(unlock security setting)》密码(Password)》使用固定密码(Use permanent password)设置自己的密码   》安全(Security) 》 允许IP直接访问(enable direct IP access)默认21118

  6、 记得设置云防火墙的安全策略,入向规则放行21118,为了安全可以修改端口。

  7、在本地机器上运行RustDesk,控制远程桌面地址中直接填写:公网IPv4地址:21118   或  [公网IPv6地址]:21118

 

二、安装数据库

  一、企业版 适用生产环境 可支持大型应用(支持集群管理CM 和 运维管理OM)

root 执行
  1、创建数据库用户组dbgroup。( groupadd dbgroup )
  2、创建数据库用户组dbgroup下的数据库普通用户dbmm,并设置普通用户dbmm的密码,密码建议设置为dbmm@123。(分步执行:1、useradd -g dbgroup dbmm 2、passwd dbmm)或者( useradd -m -g dbgroup dbmm -p "$(openssl passwd -6 'dbmm@123')" )
  3、登录桌面使用浏览器下载openGauss官方数据库应用压缩包(企业版 通常命名为 openGauss-All-x.x.x-openEulerxx.xx-aarch64.tar.gz)
  4、移动下载的压缩包到dbmm用户下的Downloads目录下 ( /home/dbmm/ )
  5、在下载目录中将下载的 openGauss-All-* 压缩包解压到当前文件夹( tar -zxvf /home/dbmm/openGauss-All-6.0.6-openEuler24.03-aarch64.tar.gz -C /home/dbmm/ )
  6、解压当前目录(Downloads)中的openGauss-OM-*压缩包 到当前目录 ( tar -zxvf /home/dbmm/openGauss-OM-6.0.6-openEuler24.03-aarch64.tar.gz -C /home/dbmm/ )
  7、安装依赖包。openEuler 24.03 Server 环境大部分已预装,执行以下命令兜底,已装的会被跳过。( dnf install -y libaio-devel flex bison ncurses-devel glibc-devel patch readline-devel libnsl bzip2 net-tools openblas )
  8、进入 cd /home/dbmm/script目录,执行一站式安装命令 ./gs_preinstall -U dbmm -G dbgroup --one-stop-install (因为是单机部署不使用 --sep-env-file 环境分离参数。)
  9、回车后将进入安装脚本(openGauss6.0.6 和 7 有差别,这里是6的 )
    1、选择语言 (默认中文 直接回车)
    2、请输入xml的路径和文件名(默认:./cluster.xml) 直接回车
    3、请输入数据库安装目录(默认:/opt/openGauss/install) 直接回车
    4、请输入数据库端口(默认:15000) 直接回车
    5、请选择是否主备部署 默认是 1)主备部署 (根据我的情况选择的 2)单机部署 直接输入2后回车)
    6、请输入ssh端口(默认:22) 直接回车(openGauss 7)
    7、确认生成的安装信息无误,输入yes后回车
    8、安装过程中会询问是否创建用户[dbmm] 输入yes 这之后就是等候安装完成。
  10、使用ps命令查看数据库主进程信息。( ps ux | grep gaussdb )
  11、安装好后重启系统 ( reboot )
  12、在终端内输入 su - dbmm
dbmm执行(不要试图用dbmm用户登录桌面安装。按官方安全规范,数据库运行用户被设计为"禁止交互式登录,仅用于运行服务",这类账户从设计上就不允许登录桌面。)
  13、进入script目录 ( cd /home/dbmm/script )
  14、执行安装,使用刚才生成的cluster.xml ( gs_install -X /home/dbmm/script/base_utils/template/cluster.xml )
  15、这里需要输出一个密码,就是11-7中的数据库用户密码。(至少8位,大小写、数字、特殊符;不要和第2步中的密码一样,那个是系统账户密码,这个是数据库用户密码,虽然同名,但功能和权限不同。)
  16、安装效果验证
    1、以dbmm系统用户身份登录服务器。
    2.、执行 ( gs_om -t status ) 命令检查数据库状态是否正常,"cluster_state "显示"Normal"表示数据库可正常使用。
        – 查看集群状态 gs_om -t status
        – 停止集群 gs_om -t stop
        – 启动集群 gs_om -t start    

    3、数据库安装完成后,默认生成名称为postgres的数据库。第一次连接数据库时可以连接到此数据库。其中postgres为需要连接的数据库名称,15000为数据库主节点的端口号,请根据实际情况替换。( gsql -d postgres -p 15000 )
    4、应该gsql + openGauss版本号 最下行显示openGauss=# ( 这表示成功进入 openGauss=# 数据库命令行,可执行下列命令查看对应数据)
        – 查看版本 select version();
        – 查看当前数据库 select current_database();
        – 查看当前用户 select current_user;
        – 查看当前数据库最大连接 show max_connections;
        – 查看当前已使用连接 select count(*) from pg_stat_activity;
        – 退出 gsql \q


  17、添加重启开机后自启动服务:
      1、使用root 用户    在   /usr/lib/systemd/system/ 下建立 opengauss.service  文件填入如下配置代码并保存: 

[Unit]
Description=openGauss Database Server (single node)
After=network.target

[Service]
Type=oneshot
RemainAfterExit=yes
User=dbmm
Group=dbgroup

Environment=GAUSSHOME=/opt/openGauss/install/app
Environment=PGDATA=/opt/openGauss/install/data/dn1
Environment=LD_LIBRARY_PATH=/opt/openGauss/install/app/lib:/opt/openGauss/install/tool/lib:/opt/openGauss/install/tool/script/gspylib/clib:/usr/lib64
Environment=PATH=/opt/openGauss/install/app/bin:/usr/local/bin:/usr/bin:/bin
Environment=LANG=zh_CN.UTF-8

ExecStart=/opt/openGauss/install/app/bin/gs_ctl start -D /opt/openGauss/install/data/dn1
ExecStop=/opt/openGauss/install/app/bin/gs_ctl stop -D /opt/openGauss/install/data/dn1 -m fast
ExecReload=/opt/openGauss/install/app/bin/gs_ctl restart -D /opt/openGauss/install/data/dn1 -m fast

TimeoutStartSec=600
TimeoutStopSec=120
KillMode=mixed
KillSignal=SIGINT

[Install]
WantedBy=multi-user.target

      2、Root用户   分别执行重载命令 (  systemctl daemon-reload   )  和  注册命令   (  systemctl enable opengauss.service  )
      3、dbmm用户 执行 停库命令,交给 systemd  (   gs_ctl stop -D /opt/openGauss/install/data/dn1 -m fast  )
      4、root用户 拉起服务    (systemctl start opengauss.service)    并检查  (    systemctl status opengauss.service    )
      5、重启系统验证服务是否自动拉起。启动问题查 journalctl -u opengauss -n 50   运行期问题查 /opt/openGauss/install/log/dbmm/pg_log/dn_6001/  目录下的对应文件。

  18、内部应用最小暴露面配置(数据库仅本机常驻服务读写)

    dbmm 执行

      1、显式限定监听地址为 loopback。( gs_guc set -D /opt/openGauss/install/data/dn1 -c "listen_addresses='localhost'" )

      2、手工编辑 pg_hba.conf   确保 (位于 /opt/openGauss/install/data/dn1/pg_hba.conf),
        IPv4 段仅保留:host all all 127.0.0.1/32 sha256
        IPv6 段仅保留:host all all ::1/128 sha256
        保存后执行 ( gs_guc reload -D /opt/openGauss/install/data/dn1 )
        重启(  reboot  )

      3、验证监听仅绑定本机。( ss -tlnp | grep 15000 )应仅显示 127.0.0.1:15000。

      4、在 gsql 中为常驻服务创建专用最小权限用户。( gsql -d postgres -p 15000 )
        – 创建应用用户 CREATE USER app_user PASSWORD ‘AppUser#2026!Secure’;
        – 创建业务数据库 CREATE DATABASE app_db OWNER app_user;
        – 连接到业务库 \c app_db
        – 授予schema权限 GRANT USAGE, CREATE ON SCHEMA public TO app_user;
        – 限制连接数 ALTER USER app_user CONNECTION LIMIT 20;
        – 退出 \q

    root 执行
      5、防火墙保持开启,不放行 15000 端口(数据库不对外服务)。( systemctl enable --now firewalld )

      6、加固权限安全 禁止桌面登录 ( usermod -p ‘*’ dbmm )

 

三、常驻图形服务部署(work 用户)

root 执行

  1、创建 work 用户并设置密码 ( 1、 useradd -m work      2、passwd work )或者 (   useradd -m -U -G wheel -p "$(openssl passwd -6 'work@123')" work  )
  2、启用 lingering,使 work 的 systemd 用户实例随系统启动。(    loginctl enable-linger work   )

work 用户执行(登录图形界面后)
  4、创建用户服务目录和应用目录。( mkdir -p ~/.config/systemd/user/ )( mkdir -p /home/work/apps/dbview-server )
  5、编写服务单元 dbview.service,ExecStart 指向常驻图形服务主程序 dbview_server.py。( cat > /home/work/.config/systemd/user/dbview.service <<‘EOF’
[Unit]
Description=DBView Resident Graphical Service
After=graphical-session.target

[Service]
Type=simple
ExecStart=/usr/bin/python3 /home/work/apps/dbview-server/dbview_server.py
WorkingDirectory=/home/work/apps/dbview-server
Environment=DISPLAY=:0
Environment=XAUTHORITY=/home/work/.Xauthority
Environment=DB_HOST=127.0.0.1
Environment=DB_PORT=15000
Environment=DB_NAME=app_db
Environment=DB_USER=app_user
EnvironmentFile=/home/work/.config/dbview/env
Restart=on-failure
RestartSec=5

[Install]
WantedBy=default.target
EOF )

 

各字段说明

  • After=graphical-session.target:等图形会话就绪后再启动,避免应用起来时 X server 还不存在。
  • ExecStart=/usr/bin/python3 ...:写解释器绝对路径;若是编译好的二进制(如 /home/work/apps/dbview-server/bin/dbview-server),直接写二进制路径即可。
  • Environment=DB_HOST=127.0.0.1 等:与本方案“数据库仅监听 localhost、app_user 仅本机可连”对齐,应用固定走 127.0.0.1:15000。
  • EnvironmentFile:数据库密码单独放 600 权限的文件中,EnvironmentFile 行首的 - 前缀(如 EnvironmentFile=-/home/...)表示文件不存在时不报错,此处文件必然存在,可不加。
  • Restart=on-failure + RestartSec=5:异常退出 5 秒后自动拉起;注意数据库重启期间应用会反复重连失败,属正常现象。

可选:测试用占位程序

正式部署前想验证服务链路,可用一个最小占位程序替换真实主程序:

bash

复制
cat > /home/work/apps/dbview-server/dbview_server.py <<'EOF'
#!/usr/bin/env python3
import time, os, tkinter
root = tkinter.Tk()
root.title("dbview-server")
tkinter.Label(root, text=os.environ.get("DB_NAME", "app_db")).pack()
root.mainloop()   # 常驻:持有窗口直到服务被停止
EOF
chmod +x /home/work/apps/dbview-server/dbview_server.py

验证通过后(桌面出现窗口、systemctl --user status 显示 active (running)),将该文件替换为真实主程序,再 systemctl --user restart dbview.service 即可。

 

  6、创建数据库密码环境文件并收紧权限(密码不写入服务单元,单元文件不应包含敏感信息)。( mkdir -p ~/.config/dbview )( echo ‘DB_PASSWORD=AppUser#2026!Secure’ > ~/.config/dbview/env )( chmod 600 ~/.config/dbview/env )
  7、启用并启动服务。( systemctl --user daemon-reload )( systemctl --user enable --now dbview.service )
  8、查看状态与实时日志。( systemctl --user status dbview.service )( journalctl --user -u dbview.service -f )

四、安装数据库管理工具(折腾了几天的DBeaver后,最终确定DBX)

work执行
    1、下载 DBX  https://cnb.cool/dbxio.com/dbx/-/releases(因为是 kiran 桌面环境,选择 Linux 》 ARM 》 RPM 文件    DBX迭代特别快 应为: DBX_X.X.XX_arm64.rpm)
    2、(已经按照第二部分操作的,这里可以跳过)下载以后,在图标上右键选择 “使用其他程序打开 (A)…” 》 “使用自定义命令” 》文本框中输入 ( mate-terminal -- bash -c "sudo dnf install '%f';read -p 'guanbi'") 》 打开
    3、会打开终端,显示安装内容,和确定是否安装,输入y,等待安装完成后,回车结束。

   4、DBX的界面非常简洁,操作非常方便,无需其他操作;是我用过的最好的开源 安全的数据库客户端,没有之一。强烈推荐。

      1、新建连接》国产数据库 》 openGauss数据库
      2、填写连接信息,地址,端口,账号,密码等。
      3、连接后即可对数据库进行相关操作。 

五、数据库维护技巧

  1、建表语句基本和MS sql一样,主键ID类型从bigint 转为 BIGSERIAL,NVARCHAR(MAX)转为TEXT,其他基本无差。

  2、导入数据时,在【数据导入】窗口中的第三步”映射“,点击源端的文件可以展开数据列表,去掉前面的勾选,就可以不导入这一列,建议把ID列去掉,把整列NULL值的列也去掉。MSsql的null空值,在导入过程中会被识别为null字符串输入。

  3、openGauss文件体系和MSsql不一样,无法实现MSsql的mdf+ldf双文件物理隔离,openGauss是一套文件,所有文件是一体共生。基于这种机制,MSsql的一库一表就没了优势。一库多表,近似类似功能一库多表,在openGauss是正解。

 

 

 

  三、极简版 适用开发测试 小型应用  (提示:这里因为极简版不支持集群管理CM 和 运维管理OM , 所以Root部分较少。)

root 执行

  1. 检查安装软件依赖要求 (   yum install libaio-devel readline-devel libnsl libedit-devel libxml2-devel lz4-devel numactl-devel unixODBC-devel java-1.8.0-openjdk-devel openblas-devel -y   )
  2. 创建用户组dbgroup。(   groupadd dbgroup   )

  3.  创建用户组dbgroup下的普通用户dbmm,并设置普通用户dbmm的密码,密码建议设置为dbmm@123。(分步执行:1、useradd -g dbgroup dbmm    2、passwd dbmm)或者(    useradd -m -g dbgroup dbmm1 -p "$(openssl passwd -6 'dbmm1@123')"      )

dbmm执行

  1、登录桌面使用浏览器下载openGauss官方数据库应用

  2、在主目录下建立用于安装openGauss目录(   mkdir ~/openGauss   )

  3、解压数据库压缩包至openGauss目录(   tar -jxf ~/Downloads/openGauss-Server-6.0.6-openEuler24.03-aarch64.tar.bz2 -C ~/openGauss   )(根据版本和目录对应修改)

  4、执行ls命令或在窗体中检查解压是否正确、完成,是否符合预期。

  5、假定解压包的路径为openGauss,进入解压后目录下的simpleInstall。(   cd ~/openGauss/simpleInstall   )

  6、执行install.sh脚本安装openGauss。(   sh install.sh -w xxxx   )-w是指初始化数据库密码(gs_initdb指定),安全需要必须设置。最少8位,大小写+数字+符号

  7、使用ps命令查看主进程信息。(   ps ux | grep gaussdb   )

  8、使用openGauss 自带工具 gs_ctl 读取数据库实例状态信息

    # 先注释掉.bashrc中原有的ulimit硬限制行,消除警告 (   sed -i '/[[:space:]]*ulimit[[:space:]]*-n/s/^/#/' ~/.bashrc  )

    # 将openGauss环境自动适配脚本写入用户登录配置文件,新开终端/重启服务器登录自动生效    

(  cat >> ~/.bashrc <<'EOF'
     if [ -d ~/openGauss ]; then
      export GAUSSHOME=~/openGauss
       if [ -f ~/openGauss/env ]; then
      source ~/openGauss/env
       else
         export LD_LIBRARY_PATH=$GAUSSHOME/lib:$LD_LIBRARY_PATH         
                        export PATH=$GAUSSHOME/bin:$PATH
       fi
    fi
  EOF   )

 

# 将openGauss环境自动适配脚本写入用户登录配置文件,新开终端/重启服务器登录自动生效
cat >> ~/.bashrc <<'EOF'
# openGauss环境自动适配脚本|兼容企业版env脚本与simpleInstall极简安装包
if [ -d ~/openGauss ]; then
  export GAUSSHOME=~/openGauss
  if [ -f ~/openGauss/env ]; then
    # 企业版:存在env脚本,直接加载
    source ~/openGauss/env
  else
    # 极简simpleInstall包:无env脚本,手动配置库路径与命令路径
    export LD_LIBRARY_PATH=$GAUSSHOME/lib:$LD_LIBRARY_PATH
    export PATH=$GAUSSHOME/bin:$PATH
  fi
fi
EOF

  # 在当前终端立刻加载环境配置,本次会话直接生效 (source ~/.bashrc)

  # 查询数据库实例真实内核状态 (gs_ctl query -D ~/openGauss/data/single_node)

posted @ 2026-09-11 10:17  沉默种子  阅读(26)  评论(0)    收藏  举报