第 1 步:安装与初始化数据库 (Yum 方式)
这个流程将替代原来复杂的手动下载、解压、预检查和脚本安装。
-
使用
yum安装 openGaussbash# 直接从 openEuler 官方源安装软件包 sudo yum install -y opengauss此命令会把
gs_initdb,gs_ctl,gsql,gs_dump等所有工具安装到系统的标准路径(如/usr/bin/),并通常会创建一个systemd服务文件。 -
创建系统用户
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 -
初始化数据库集群
这是
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 '密码'直接设置了其密码,这比之后再修改更直接。
- 说明 : 我们在初始化时就用
-
启动并启用服务 (使用
systemd)现在,你可以使用
systemctl来专业地管理 openGauss 服务。bash# 假设服务名为 opengauss (请用 systemctl list-units | grep gauss 确认) sudo systemctl enable opengauss --now # 检查服务状态 sudo systemctl status opengauss--now参数会在启用开机自启的同时立即启动服务。
第 2 步:数据库配置和管理
-
登录数据库
切换到
opengauss系统用户,然后使用gsql工具登录。bashsudo su - opengauss # -d: 默认数据库 postgres # -p: 默认端口 5432 # -W: 提示输入密码 gsql -d postgres -p 5432 -W # 当提示输入密码时,输入: 1234567890A -
创建数据库用户
oaadmin在
gsql提示符下执行 (所有 SQL 命令保持不变):sqlCREATE USER oaadmin PASSWORD '1234567890A'; -
创建数据库
dbA和模式scheAsql-- 创建数据库 dbA,并指定 oaadmin 为拥有者 CREATE DATABASE dbA OWNER oaadmin; -- 连接到新的数据库 dbA \c dbA -- 在 dbA 中创建模式 scheA,并指定 oaadmin 为拥有者 CREATE SCHEMA scheA AUTHORIZATION oaadmin; -
配置用户
oaadmin登录dbA默认查询模式为scheAsqlALTER USER oaadmin SET search_path TO scheA, public; -
在模式
scheA中创建表tb_userinfo确保当前已连接到
dbA数据库 (\c dbA):sqlCREATE 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 文件已准备好。
-
准备 SQL 数据文件 :
确保
data_to_import.sql文件存在于服务器上,并且有权限被读取。文件内容示例:
sqlINSERT INTO scheA.tb_userinfo VALUES (1, 'U0001', 'San', 'Zhang', 'Admin'); INSERT INTO scheA.tb_userinfo VALUES (2, 'U0002', 'Si', 'Li', 'User'); -
导入数据 (简化版命令)
在服务器 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 工具。
-
执行导出命令 (简化版命令)
以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
-