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
相关推荐
艾莉丝努力练剑14 小时前
【QT】初识QT:背景介绍
java·运维·数据库·人工智能·qt·安全·gui
小股虫14 小时前
心脏手术指南:如何安全地为运行中的系统更换“数据库引擎”?
数据库·安全·架构·方法论
Jsundoku14 小时前
PostgreSQL -- 开源对象-关系型数据库
数据库·postgresql·关系型数据库
SmartRadio15 小时前
物联网云平台数据库选型与搭建全指南(NRF52840, CH585M,ESP32-S3的硬件资源要求选型对比、方案设计、搭建步骤)
c语言·数据库·物联网·lora·lorawan
知行学思1 天前
Python配置管理完全指南:从dotenv到pydantic_settings
数据库·python·fastapi·环境变量·配置管理·pydantic·dotenv
计算机网恋1 天前
Ubuntu22.04Server虚拟机网络配置
网络·数据库·postgresql
一只大黄猫1 天前
【数据库-入门2】基本概念
数据库
实泽有之,无泽虚之1 天前
MySQL主机因多次连接数据库错误而被阻塞
数据库·sql·mysql
Knight_AL1 天前
从自然语言到 SQL:为什么向量数据库是更好的选择
数据库·sql