openGauss部署配置指南

第 1 步:安装与初始化数据库 (Yum 方式)

这个流程将替代原来复杂的手动下载、解压、预检查和脚本安装。

  1. 使用 yum 安装 openGauss

    bash 复制代码
    # 直接从 openEuler 官方源安装软件包
    sudo yum install -y opengauss

    此命令会把 gs_initdb, gs_ctl, gsql, gs_dump 等所有工具安装到系统的标准路径(如 /usr/bin/),并通常会创建一个 systemd 服务文件。

  2. 创建系统用户 opengauss 和数据目录

    即便 yum 已经安装了程序,我们仍需遵循最佳实践,为数据库创建一个专门的管理员用户和数据存放目录。

    bash 复制代码
    # 1. 创建系统用户 (如果不存在)
    sudo groupadd dbgrp
    sudo useradd -g dbgrp -d /home/opengauss -m -s /bin/bash opengauss
    sudo passwd opengauss
    # 输入密码: 1234567890A
    # 再次输入密码: 1234567890A
    
    # 2. 创建标准数据目录
    sudo mkdir -p /var/lib/opengauss/data
    
    # 3. 将目录所有权赋予 opengauss 用户
    sudo chown -R opengauss:dbgrp /var/lib/opengauss/data
  3. 初始化数据库集群

    这是 yum 安装后最关键的一步,用于创建数据库实例。

    bash 复制代码
    # 1. 切换到 opengauss 系统用户
    sudo su - opengauss
    
    # 2. 执行初始化命令
    # -D: 指定数据目录
    # -U: 指定数据库超级用户的用户名
    # -W: 提示为该超级用户设置密码
    gs_initdb -D /var/lib/opengauss/data -U opengauss -W '1234567890A'
    
    # 3. 退出 opengauss 用户
    exit
    • 说明 : 我们在初始化时就用 -U opengauss 创建了数据库的超级管理员,并用 -W '密码' 直接设置了其密码,这比之后再修改更直接。
  4. 启动并启用服务 (使用 systemd)

    现在,你可以使用 systemctl 来专业地管理 openGauss 服务。

    bash 复制代码
    # 假设服务名为 opengauss (请用 systemctl list-units | grep gauss 确认)
    sudo systemctl enable opengauss --now
    
    # 检查服务状态
    sudo systemctl status opengauss
    • --now 参数会在启用开机自启的同时立即启动服务。

第 2 步:数据库配置和管理

  1. 登录数据库

    切换到 opengauss 系统用户,然后使用 gsql 工具登录。

    bash 复制代码
    sudo su - opengauss
    
    # -d: 默认数据库 postgres
    # -p: 默认端口 5432
    # -W: 提示输入密码
    gsql -d postgres -p 5432 -W
    # 当提示输入密码时,输入: 1234567890A
  2. 创建数据库用户 oaadmin

    gsql 提示符下执行 (所有 SQL 命令保持不变):

    sql 复制代码
    CREATE USER oaadmin PASSWORD '1234567890A';
  3. 创建数据库 dbA 和模式 scheA

    sql 复制代码
    -- 创建数据库 dbA,并指定 oaadmin 为拥有者
    CREATE DATABASE dbA OWNER oaadmin;
    
    -- 连接到新的数据库 dbA
    \c dbA
    
    -- 在 dbA 中创建模式 scheA,并指定 oaadmin 为拥有者
    CREATE SCHEMA scheA AUTHORIZATION oaadmin;
  4. 配置用户 oaadmin 登录 dbA 默认查询模式为 scheA

    sql 复制代码
    ALTER USER oaadmin SET search_path TO scheA, public;
  5. 在模式 scheA 中创建表 tb_userinfo

    确保当前已连接到 dbA 数据库 (\c dbA):

    sql 复制代码
    CREATE TABLE scheA.tb_userinfo (
        user_sk INT4 PRIMARY KEY,
        c_user_id CHAR(5),
        c_first_name CHAR(10),
        c_last_name CHAR(10),
        c_role CHAR(10)
    );
    
    -- 将表的所有权赋予 oaadmin (因为是以超级用户 opengauss 创建的)
    ALTER TABLE scheA.tb_userinfo OWNER TO oaadmin;

第 3 步:导入 SQL 数据

假设 data_to_import.sql 文件已准备好。

  1. 准备 SQL 数据文件 :

    确保 data_to_import.sql 文件存在于服务器上,并且有权限被读取。

    文件内容示例:

    sql 复制代码
    INSERT INTO scheA.tb_userinfo VALUES (1, 'U0001', 'San', 'Zhang', 'Admin');
    INSERT INTO scheA.tb_userinfo VALUES (2, 'U0002', 'Si', 'Li', 'User');
  2. 导入数据 (简化版命令)

    服务器 Shell 中执行,而不是 gsql 内部:

    bash 复制代码
    # -d: 数据库, -U: 用户名, -p: 端口, -f: 输入文件
    gsql -d dbA -U oaadmin -p 5432 -f /path/to/your/data_to_import.sql -W
    # 当提示输入密码时,输入 oaadmin 的密码: 1234567890A
    • 说明 :因为 gsql 已经安装在系统路径中,所以无需再写长长的 /opt/.../bin/gsql 路径。

第 4 步:导出数据库 dbA 为纯文本

使用 gs_dump 工具。

  1. 执行导出命令 (简化版命令)
    opengauss 系统用户身份在服务器 Shell 中执行:

    bash 复制代码
    # 切换用户
    # sudo su - opengauss
    
    # 执行导出
    gs_dump -U opengauss -W '1234567890A' -d dbA -p 5432 -f /opt/dbA.sql --clean --create --if-exists
    • 说明 :同样,gs_dump 也可以直接调用。

    • 权限提醒 :导出到 /opt/ 目录可能需要 root 权限。一个更安全的做法是先导出到 opengauss 的家目录,再由 root 移动。

      bash 复制代码
      # 1. 以 opengauss 用户导出到家目录
      # mkdir -p /home/opengauss/db_backups
      # gs_dump -U opengauss -W '1234567890A' -d dbA -p 5432 -f /home/opengauss/db_backups/dbA.sql --clean --create --if-exists
      
      # 2. 以 root 用户移动文件
      # sudo mv /home/opengauss/db_backups/dbA.sql /opt/dbA.sql
相关推荐
NineData2 分钟前
NineData 迁移评估功能正式上线
数据库·dba
NineData5 小时前
数据库迁移总踩坑?用 NineData 迁移评估,提前识别所有兼容性风险
数据库·程序员·云计算
赵渝强老师8 小时前
【赵渝强老师】PostgreSQL中表的碎片
数据库·postgresql
全栈老石12 小时前
拆解低代码引擎核心:元数据驱动的"万能表"架构
数据库·低代码
倔强的石头_1 天前
kingbase备份与恢复实战(二)—— sys_dump库级逻辑备份与恢复(Windows详细步骤)
数据库
jiayou643 天前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库
李广坤3 天前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
爱可生开源社区4 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
随逸1775 天前
《从零搭建NestJS项目》
数据库·typescript
加号35 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql