基础软件应用创新挑战赛 · 基础环境方向

2026 第三届教育信息技术应用创新大赛
初赛理论培训学习文档

本文档根据培训 PPT 截图整理而成,内容涵盖麒麟操作系统基础、Nginx 服务、Vastbase 数据库等核心理论与实操知识点,由个人整理仅供比赛复习参考。

3
核心模块
27
知识章节
5
命令速查表
1

培训内容总览

本次大赛初赛理论培训共分为三大模块,覆盖操作系统基础、前端架构与数据库部署、系统调优等关键领域。

模块主题核心内容
模块一系统基础环境配置终端与 Shell、用户/组管理、文件权限、RPM/YUM、源码编译、Firewalld
模块二前端架构与数据库Nginx 安装部署与配置、数据库概述与 Vastbase 部署、SQL 基础操作
模块三系统调优磁盘 IO 调度器、udev 设备管理规则
2

模块一:系统基础环境配置

2.1 终端与 Shell 命令行操作

终端概念

  • 终端是图形界面下的命令行窗口,可在其中键入命令完成任务。
  • 虚拟终端tty2 ~ tty6 为命令终端;tty1 为图形终端。
  • 桌面终端pts/0pts/1 等。

命令格式

命令 [-选项] [参数]

提示信息含义

符号含义
~用户的主工作目录
.用户的当前目录
$普通用户命令提示符
#超级用户 root 的命令提示符

2.2 用户账号类型与管理

三类用户账号

用户类型UID 范围权限说明
root 用户0最高超级用户,拥有系统所有权限
系统用户1~999受限系统服务使用,无法登录
普通用户≥1000普通系统安装后创建的所有用户

用户管理命令

命令作用
useradd创建用户
passwd设置/修改密码
usermod修改用户信息
userdel删除用户

用户信息文件

  • /etc/passwd:用户账户信息(用户名、UID、GID、家目录、Shell)
  • /etc/shadow:加密密码(密码、上次修改日期、失效日期)

2.3 组账户管理与配置

组类型

类型说明
基本组用户的主要所属组
附加组用户的额外所属组
私有组自动创建的与用户同名的组

组管理命令

命令作用
groupadd新建组
groupdel删除组
gpasswd组密码管理(添加/删除用户)
groupmod修改组信息

组信息文件

文件说明
/etc/group组名、组口令占位符、GID、成员列表(逗号分隔)
/etc/gshadow组名、密码(! 开头表示无合法密码)、组管理员用户、所属用户;一个用户可以属于多个组

2.4 文件与目录权限基础

核心理念

  • 一切皆文件:普通文件、目录、设备、链接都是文件。
  • 所有文件都有属主和权限

常用文件操作命令

命令作用
cd切换目录
pwd查看路径
mkdir创建目录
ls罗列文件
cp复制
rm删除
mv移动

ls -al 七项属性

123456–7
含义类型与权限链接数拥有者所属组文件大小修改日期+文件名
示例- / d / l数字用户名组名字节数日期时间

2.5 文件权限表示与管理

数字表示法

权限r(读)w(写)x(执行)
数值421

示例:chmod 755 file

符号表示法

  • u/g/o/a:user / group / others / all
  • +/-/=:增加 / 去除 / 设置权限
  • 示例:chmod u+x file(给属主加执行权限)

权限修改命令

命令格式说明
chmodchmod [ugoa][+-=][rwx] 文件改变文件或目录权限,-R 递归修改
chown/chgrpchown 属主:属组 文件修改文件所有者和所属组

特殊权限

权限数值作用
SUID4执行者临时获得文件拥有者权限
SGID2执行者临时获得文件所属组权限
SBIT1仅自己及 root 可删除目录下文件

2.6 ACL 访问控制列表

ACL(Access Control List)提供传统的 owner/group/others 权限之外的细部权限设定,可针对使用者(user)、群组(group)、默认属性(mask)进行权限控制。

常用命令

命令作用
setfacl [-bkRd] [(-m/-x) acl 参数] 目标文件设定 ACL 规范
getfacl 目标文件名查看 ACL 设置

setfacl 常用选项

选项作用
-m设定后续 acl 参数
-x删除后续 acl 参数
-R递归设定 acl
-d设定预设 acl 参数(只对目录有效)

应用场景

  • 需要给特定用户授予某文件的特殊访问权限,而不改变该文件原有的组权限设置。
  • 需要给多个不同用户分别设置不同权限时,ACL 比传统权限更灵活。
  • 使用 -d 参数可为目录设置默认 ACL,使新建文件自动继承该权限。

2.7 RPM 软件包管理

RPM 是银河麒麟服务器默认的包管理系统,可完成安装、卸载、升级、查询、校验五大功能,必须是 root 用户才能操作。

功能命令格式说明
安装rpm -ivh 包文件名i-安装,v-详细信息,h-进度条
更新rpm -Uvh / -Fvh 包文件名U:装过则更新,未装则安装;F:只更新已安装的包
卸载rpm -e 包名删除已安装的软件包
查询rpm -q 包名 / -qa / -qf 文件-q 查询,-a 所有包,-f 查询拥有指定文件的包
校验rpm -V 包名 / -Va / -Vp 包文件验证系统中软件与包中软件的区别

查询选项补充

选项作用
-i显示包信息
-l显示文件列表
-c显示配置文件
-d显示文档文件
-s显示文件状态

2.8 YUM 软件仓库管理

YUM(Yellowdog Updater Modified)基于 RPM 构建,可自动解决依赖关系。软件仓库可通过 FTP、HTTP 或本地目录(file:///)提供。

常用 YUM 命令

命令功能
yum list [软件名]查询软件包列表
yum info [软件名]查看软件包详情
yum search 关键词按关键词搜索软件包
yum install 软件名安装软件包(-y 自动确认)
yum update升级所有软件包
yum remove 软件名卸载软件包
yum grouplist查询软件包组列表

仓库配置文件

  • 配置文件路径:/etc/yum.repos.d/*.repo
  • 基本设置:/etc/yum.conf

本地 YUM 仓库示例:1. 挂载光盘到 /media 目录;2. 配置 baseurl=file:///media

2.9 源码编译安装

标准七步流程

获取源码包  →  解压缩  →  阅读文档  →  ./configure  →  make  →  make install  →  make clean

Nginx 安装示例

# 1. 下载源码包
wget http://nginx.org/download/nginx-1.16.0.tar.gz

# 2. 解压源码
tar -zxvf nginx-1.16.0.tar.gz

# 3. 进入目录,执行 configure 生成 Makefile
./configure --prefix=/usr/local/nginx

# 4. 编译  5. 安装
make && make install

2.10 系统防火墙 Firewalld

Firewalld 是动态防火墙,变更规则无需重新加载所有规则。底层使用 iptables 管理规则,数据包过滤由内核 netfilter 子系统负责,提供命令行和图形界面配置工具。

区域(Zone)概念

Firewalld 将网卡对应到不同区域,共 9 个默认区域:

block、dmz、drop、external、home、internal、public、trusted、work
  • 默认区域为 public,默认每个服务是拒绝的。

基本管理命令

firewall-cmd --state                        # 查看状态
firewall-cmd --get-default-zone             # 查看默认区域
firewall-cmd --list-all                     # 查看当前配置

静态 vs 动态防火墙

特性静态防火墙(iptables service)动态防火墙(firewalld)
规则变更修改规则需重新加载所有规则只更新变更部分,无需全部重载
区域概念支持多个 zone,灵活配置
3

模块二:前端架构与数据库

3.1 Nginx 安装部署与服务管理

服务管理命令

操作命令
配置文件测试/usr/local/nginx/sbin/nginx -t
启动服务/usr/local/nginx/sbin/nginx
关闭服务nginx -s quit/stop
重新加载配置nginx -s reload
查看端口netstat -tlnp

基本信息

  • 默认端口:80
  • 默认访问页面:http://IP
  • 主配置文件路径:/usr/local/nginx/conf/nginx.conf
  • Nginx 是高性能的 HTTP 和反向代理 Web 服务器。

配置文件六大字段

字段作用
main block全局配置
events性能参数、事件驱动
httpHTTP/HTTPS 协议配置
server虚拟主机配置
location站点目录配置
streamTCP 代理/负载均衡

嵌套关系:main → events/http/mail/stream → server → location

3.2 Nginx 配置文件详解

HTTP 协议相关配置示例

http {
    server {
        listen 80;
        server_name localhost;
        root /usr/share/nginx/html;
        location / { ... }
    }
    upstream backend { ... }
}

关键指令说明

指令作用
listen监听地址和端口
server_name虚拟主机名
root站点根目录
alias虚拟目录路径别名
location针对 URL 的条件配置
upstream负载均衡后端服务器池
ip_hash按客户端 IP 哈希分配

负载均衡配置示例

upstream backend {
    ip_hash;
    server 192.168.1.10 weight=5;
    server 192.168.1.11;
}

3.3 什么是数据库

  • 数据库(Database):按照数据本身的特征和结构来组织、存储和管理数据的容器或仓库。
  • 数据库管理系统(DBMS):数据库对应的软件,提供一套访问数据方法,用于增、删、改、查等。
  • 根据数据特征和结构的不同,可以使用不同方式对其进行存储和管理,形成不同种类的数据库。应用最广泛的是关系型数据库

3.4 数据库发展史

层次网状型

时间事件
1964 年以前数据以文件系统方式存储,没有专门的数据管理软件
1964通用发布第一个网状数据库 IDS,作者 Charles Bachman
1968IBM 发布第一款层次型数据库 IMS(Information Management System)
1970IBM 的 Edgar F. Codd 发表论文《大型共享数据库数据的关系模型》,提出 System R 项目
1972Edgar F. Codd 提出关系代数和关系演算概念,定义关系的并、交、投影、选择、连接等基本运算

关系型数据库

时间事件
1973IBM 开始 System R 项目;加州大学伯克利分校启动 Ingres 项目
1974IBM 的 Ray Boyce 和 Don Chamberlin 提出 SQL
1977SDL 公司成立,后改名 RSI
1979RSI 发布 Oracle 2.0
1980BSD 终止 Ingres,IBM 发布第一款 System R
1983IBM System R 更名为 DB2
1985在 Ingres 基础上 Informix 1.1 发布
1986加州大学伯克利分校重启 Ingres 项目,改名为 PostgreSQL
1987Sybase 在 Ingres 基础上推出 Sybase SQL Server
1992微软在 Sybase SQL Server 4.2 基础上发布 MS SQL Server 4.2
1993Edgar F. Codd 提出联机分析处理(OLAP)
1996Monty 发布 MySQL
2000 左右中国开始数据库自研尝试
2014Michael Stonebraker 对千核并发控制进行评估;海量数据组建研发团队从事国产数据库开发
2020华为牵头:openGauss 社区成立;海量数据:发布 Vastbase G100
2021海量数据 Vastbase G100 进入四期名录

鉴往知来

  • 现有的关系型数据库起源于 IBM 的 Edgar F. Codd 1970 年发表论文。
  • 1980 年加州大学伯克利分校的 Ingres 项目开源,推动了数据库进入蓬勃发展时代。
  • 现在流行的商用数据库都是在前人基础上发展起来的。
  • 推动数据库技术发展的是数学家、科学家、教授。
  • 现阶段国家对核心领域关键技术的重视到了前所未有的高度,数据库作为 IT 行业重要的基础软件之一,也是核心领域关键技术之一。

3.5 国产数据库主要技术线路

技术线路特点
许可买断独立演进可能性不高、授权停止、发展几乎结束
基于国外开源封装协议风险、断供风险、法务风险、鲁棒性低、和国产硬件匹配差
仿造商业数据库自主可控程度高,但缺乏面向未来的创新能力
开源重构可以自立自强、针对硬件优化、生态繁荣、鲁棒性高、可持续发展

3.6 openGauss 开源生态的发展

openGauss 是面向数字基础设施的开源数据库,已成为国内最活跃的开源数据库根社区。

版本演进时间线

阶段版本时间
基础版本1.0.0 LTS2020.03
代码正式开源2020.06
企业级特性2.0.0 LTS2021.03
轻量级版本3.0.0 LTS2022.03
DataPod/DataKit5.0.0 LTS2023.03
全场景 & AI6.0.0 LTS2024.09

生态成就

  • 2023 年中国数据库市场线下集中式 openGauss 系新增市场份额达 21.9%
  • 已规模应用于金融、政府、电信、能源、制造、交通、邮政、教育等十大关键行业核心场景。
  • 生态伙伴超 570+ 家,已达成 1000+ 数据库解决方案认证。

3.7 Vastbase 企业级关系型数据库

Vastbase 是海量数据基于开源 openGauss 内核开发的企业级关系型数据库,融合了对各行业应用场景的深入理解,除具有 openGauss 极致性能外,还增加了大量 Oracle、MySQL 与 PostgreSQL 的兼容特性。

核心特性

特性说明
高性能极致事务处理能力,支持增量检查点等技术;鲲鹏单机 2P > 175 万 tpmC
高并发线程模型优化,单机可支持超过 1 万并发访问并保持高性能运行
高可用RTO ≤ 10s,灵活多样部署架构
高安全全栈国密、细粒度安全管控;IT 产品信息安全认证 EAL4+、涉密系统认证等
高兼容Oracle / MySQL / PG / SQL Server 超融合兼容引擎
多模态拥有空间引擎,支持国际 openGIS 规范;拥有行列混合存储引擎以及 MOT 内存表
易迁移exBase 异构数据库一键式迁移平台,多数据源、智能评估、全自动化迁移
易运维WDR 诊断、慢 SQL 诊断、Session 诊断、AI4DB 智能化实现自调优、自监控、自诊断

3.8 Vastbase 安装前准备

硬件要求

硬件项目测试环境生产环境
内存单机:4G+;主从:8G+单机:8G+,建议 128G+;主从:8G+,建议 128G+
CPU2 核以上16 核以上
存储800MB 安装程序 + 750MB 元数据800MB 安装程序 + 750MB 元数据/主机,预留 70% 以上磁盘空间用于数据存储
网络千兆网络单机:千兆以上;集群:万兆以上

环境要求 — 依赖软件包

操作系统依赖包
通用zlib-devel、libaio、libuuid、readline-devel、krb5-libs、libicu、libxslt、tcl、perl、openldap、pam、openssl-devel、libxml2、bzip2、libnsl
麒麟readline、python2、libicu、cracklib、libxslt、tcl、perl、openldap、pam、systemd-libs、bzip2、gettext、libaio、ncurses-libs、libatomic(Kylin V10)
Ubuntulibreadline5、zlib1g、libxml2、libaio1、libncurses5、gettext

Python 环境(高可用环境需要)

软件依赖版本要求
openEulerPython 3.7.X
CentOSPython 3.6.X
麒麟Python 3.7.X
AsianuxPython 3.6.X

libnsl 仅在 openEuler + x86 环境中需要安装。

3.9 安装规划

安装前需要先规划用户组和软件路径。

用户和组

# 创建组
groupadd vastbase

# 创建用户并指定组
useradd -g vastbase vastbase

# 查看用户信息
id vastbase
# uid=1000(vastbase) gid=1000(vastbase) groups=1000(vastbase)

安装目录

# 常用软件目录规划
/vastdata/app/vastbase/2.2.15

# 常用数据库目录
/vastdata/data/{dbname}

# 示例
mkdir -p /vastdata/app/vastbase/2.2.15
mkdir -p /vastdata/data/vastbase
chown -R vastbase:vastbase /vastdata

3.10 系统配置:必选

1. 关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service

2. 禁用 SELINUX

修改配置文件 /etc/selinux/config,将 SELINUX=enforcing 改为 SELINUX=disabled

SELINUX=disabled

SELINUX 的修改需重启操作系统生效。

3. 关闭 RemoveIPC

从 Linux 7.2 开始,systemd-logind 服务引入新特性:当一个 user 完全退出后,会 remove 掉所有的 IPC 对象,这会引起数据库实例 CRASH,需要禁用。

3.11 系统配置:内核参数

参数分类参数名称参数说明
文件系统fs.aio-max-nr系统允许的最大异步 IO 请求数目。推荐值:1048576
文件系统fs.file-max系统允许打开的最大文件句柄数。推荐值:根据数据库大小
文件系统fs.nr_open单个进程可打开的最大文件句柄数。对象多的数据库建议适当增大
内核kernel.sem包含 SEMMSL、SEMMNS、SEMOPM、SEMMNI;推荐值:4096 2097152000 4096 5120
内核kernel.shmall控制共享内存总页数。推荐值:系统内存 × 80% / PAGE_SIZE
内核kernel.shmmax最大单个共享内存段大小。推荐值:系统内存 × 0.5
内核kernel.shmmni系统范围内共享内存段的最大数量。推荐值:默认
虚拟内存vm.swappiness使用 swap 的倾向性。数值越低越尽量避免使用 swap。推荐值:10–20

3.12 Vastbase 单节点数据库字符安装

前提条件

  • 已完成数据库用户组和数据库用户的创建。
  • 普通用户必须有数据库包解压路径、安装路径的读、写和执行权限,并且安装路径必须为空。
  • 安装前检查指定的 Vastbase 端口是否被占用。

操作步骤

# 1. 使用 vastbase 用户解压 Vastbase 压缩包
tar -xzvf Vastbase-installer-2.2_Build15-openEuler_22.03sp3-x86_64.tar.gz

# 2. 以 vastbase 用户进入 vastbase-installer 目录,执行安装程序
cd vastbase-installer
./vastbase_installer

vastbase_installer 安装程序提供响应式的自动化安装方式,极大简化了数据库安装过程。

3.13 安装过程解析

依赖包检查

安装程序会检查依赖包是否已安装。如有缺陷的软件包,安装程序将中止,可在配置 yum 源后使用 yum 命令安装后重新运行安装程序。

# 以 tcl 为例
yum -y install tcl

环境检查

IPC 配置不满足安装要求时,修改建议:

  • /etc/systemd/logind.conf 中增加 RemoveIPC=no
  • /usr/lib/systemd/system/systemd-logind.service 中增加 RemoveIPC=no
systemctl daemon-reload
systemctl restart systemd-logind

是否初始化实例

安装程序提示:Whether to instantiate the database (Y/N):

  • Y:数据库安装完后,将初始化一个数据库实例。
  • N:仅安装数据库软件,安装完成后执行 vb_initdb 命令手工初始化实例。

初学者建议选 Y。

设置密码

选择典型安装(Typical installation)或自定义安装(Custom installation),然后设定初始用户密码。

路径选择

  • 软件安装目录:/vastdata/app/vastbase/2.2.15
  • 数据库目录:/vastdata/data/vastbase

软件安装目录不需要太多空间,不存储具体数据;数据库目录存储具体数据,需根据业务规划空间。

兼容模式选择

Vastbase 提供针对 4 种商业数据库的兼容模式:

模式兼容数据库
AOracle
BMySQL
PGPostgreSQL
MSSQLSQL Server

兼容模式一旦选择不能更改,实例下所有 database 都使用统一兼容模式。

启动数据库

source ~/.bashrc
vb_ctl start

配置 License 授权文件

Vastbase 运行需要 License。编辑数据库参数文件 /vastdata/data/vastbase/postgresql.conf,增加参数 license_path

license_path='/home/vastbase/.license/vastbase_license'

最新版本已预置免费试用功能,默认无 License 场景下也可免费使用一段时间;试用到期仍未添加有效 License 则数据库实例无法启动。

3.14 停止数据库

vb_ctl stop

vb_ctl 常用参数

参数作用
-D指定数据库目录
-w等待事务操作的完成
-t指定超时时间,单位:秒
-s静默模式,只打印少量信息
-m关机模式:fast 回滚活跃事务并断开客户端;immediate 强行关闭,下次启动需故障恢复
-M运行角色

3.15 登录数据库

数据库启动后使用 vastbase 用户执行:

vsql -r -d vastbase

远程连接示例

vsql -r -d vastbase -h 192.168.1.105 -p 5432 -U vbuser -W Vastdata#1234
参数说明
-d数据库名
-U数据库用户名
-W用户密码
-h主机名
-p端口号
-r使用上下键翻页功能

本地连接

在数据库服务器上登录数据库,可省略 IP 地址(默认 local socket)、端口(默认 5432)、用户名(默认 vastbase)。

vsql -r -d vastbase
vsql

使用初始用户登录,命令提示符为 =#;使用普通用户登录,命令提示符为 =>

3.16 VSQL 工具简介

vsql 是 Vastbase 提供的在命令行下运行的数据库客户端工具,可通过此工具连接数据库并进行操作和维护。

基本功能

  • 连接数据库
  • 执行 SQL 语句
  • 执行元命令

高级特性

  • 设置变量
  • SQL 代换
  • 提示符
  • 命令自动补齐
  • 客户端操作历史记录

3.17 VSQL 元命令

列出所有数据库

\l

常用显示元命令

元命令说明
\d[S+]列出当前 search_path 中模式下所有的表、视图和序列
\d[S+] NAME列出指定表、视图和索引的结构
\d+ [PATTERN]列出所有表、视图和索引
\da[S] [PATTERN]列出所有可用的聚集函数及操作的数据类型和返回值类型
\db[+] [PATTERN]列出所有可用的表空间
\dg[+] [PATTERN]列出所有数据库角色,等价于 \du
\dn[S+] [PATTERN]列出所有的模式(名称空间)
\dT[S+] [PATTERN]列出所有的数据类型
\dp [PATTERN]列出可用的表、视图以及相关的权限信息

执行 \? 可获得完整元命令列表。

3.18 新建用户并登录

CREATE USER vbuser IDENTIFIED BY 'Vastdata#0730' LOGIN;
# 使用新用户登录
vsql -r -d vastbase -U vbuser -WVastdata#0730

3.19 VDS 图形化管理工具

VDS(Vastbase Data Studio)是 Vastbase 的专属图形化管理工具,高度适配 Vastbase 数据库特性。

主要功能

功能模块说明
实例管理启动和停止数据库服务、调整 GUC 参数配置
对象管理图形化增删查改数据对象、授予/撤销对象操作权限
数据管理可视化查看/编辑数据库的数据
导入导出批量导出对象 DDL、导入/导出表数据
命令窗口执行 VSQL 元命令、快速查询
编译调试函数/存储过程/包的语法编译与程序调试
SQL 终端执行 SQL 及脚本、查看执行计划、提供智能 SQL 编辑帮助
安全管理配置审计策略、查看审计日志、配置 IP 白名单

安装和启动

  • 以 Windows 平台为例,解压即完成安装。
  • 运行目录下双击 Vastbase Data Studio.exe 即可启动。

3.20 用户、Schema 和 DB

  • User(用户):独立于数据库。超级用户登录一个数据库创建用户时,会在该数据库下创建一个同名 schema。
  • Role(角色):没有登录权限的 user,也是权限的集合。
  • Schema(模式):又叫 namespace,是数据库对象的集合,每个数据库对象都属于一个 schema。
  • schema 默认会在当前数据库中随着用户的创建而被同步创建。

数据库对象全景图

Vastbase 实例 ├── database(s) │ └── schema(s) │ ├── table(s) │ ├── index(s) │ ├── view(s) │ ├── package(s) │ ├── function(s) │ └── other(s)

3.21 用户的创建与删除

创建用户

CREATE USER user_name [ [ WITH ] option [ ... ] ] [ ENCRYPTED | UNENCRYPTED ] { PASSWORD | IDENTIFIED BY } { 'password' | DISABLE };

示例:

CREATE USER vbuser WITH CREATEDB PASSWORD 'xxxxxxxxx';

删除用户

DROP USER [ IF EXISTS ] user_name [, ...] [ CASCADE | RESTRICT ];
选项说明
CASCADE级联删除依赖用户的对象
RESTRICT如果用户还有任何依赖对象,则拒绝删除(缺省行为)

3.22 创建数据库

用户必须拥有 CREATEDB 权限或数据库系统管理员权限才能创建数据库。

CREATE DATABASE database_name
    [ OWNER = user_name ]
    [ TEMPLATE = template ]
    [ ENCODING = encoding ]
    [ LC_COLLATE = lc_collate ]
    [ LC_CTYPE = lc_ctype ]
    [ TABLESPACE = tablespace_name ]
    [ MAXSIZE = tablespace_maxsize ]
    [ THRESHOLD = warn_threshold ]
    [ CONNECTION LIMIT = connlimit ]
    [ PAD_ATTRIBUTE = pad_attribute_type ];

主要参数说明

参数说明
Owner新数据库的所有者,不指定则为当前用户
Template模板,即从哪个模板创建数据库
Encoding数据库字符集,默认为 UTF-8
Lc_collate排序规则,可通过 locale -a 查看支持列表
Lc_ctype字符分类,可通过 locale -a 查看支持列表
Tablespace数据库默认表空间
Connection limit数据库最大连接数

示例:

create database hailingdb owner=vbuser tablespace=tbs_user01 encoding='UTF8';

3.23 模式:创建与删除

创建 Schema

CREATE SCHEMA schema_name [ AUTHORIZATION user_name ] [ schema_element [ ... ] ];

示例:

CREATE SCHEMA fo;
CREATE SCHEMA schema_fo AUTHORIZATION vbuser;

删除 Schema

DROP SCHEMA [ IF EXISTS ] schema_name [, ...] [ CASCADE | RESTRICT ];

示例:

DROP SCHEMA schema_f1 CASCADE;

3.24 表:创建表

CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXISTS ] table_name
(
    { column_name data_type [ CHARACTER SET | CHARSET charset ] [ compress_mode ] [ COLLATE collation ] [ column_constraint [ ... ] ] | table_constraint | LIKE source_table [ like_option [...] ] } [, ...]
)
[ AUTO_INCREMENT [ = ] value ]
[ [ DEFAULT ] CHARACTER SET | CHARSET [ = ] default_charset ] [ [ DEFAULT ] COLLATE [ = ] default_collation ] ]
[ INHERITS ( parent_table [, ... ] ) ]
[ WITH ( {storage_parameter = value} [, ... ] ) ]
[ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
[ COMPRESS | NOCOMPRESS ]
[ TABLESPACE tablespace_name ];

详细说明见官方文档:docs.vastdata.com.cn,SQL 语法章节 create table 部分。

普通表示例

-- 在 schema_fi 下创建表 table1
CREATE TABLE schema_fi.table1(
    col1 number,
    col2 varchar2(20),
    col3 text
) TABLESPACE tbs_user01;

-- 在 vbuser 下创建新表 table2,复制 table1 的表结构
CREATE TABLE vbuser.table2(LIKE table1 INCLUDING ALL);

-- 在 vbuser 下创建新表 table3,复制 table2 的数据
CREATE TABLE vbuser.table3 AS SELECT * FROM vbuser.table2;

3.25 索引

概述

  • 索引是一种二级对象,通过对表上的列或列上表达式进行单独存储处理,用于加速数据库中的数据访问行为(查询或排序)。
  • 索引需要通过 CREATE INDEX 语句创建,在表创建之后才能创建索引
  • 针对分区表,Vastbase 支持创建本地分区索引 LOCAL INDEX全局分区索引 GLOBAL INDEX两种。
  • 索引与表数据同步,创建索引会造成表数据维护的额外操作。

常见索引类型

索引类型描述
唯一索引约束索引属性值或属性组合值的唯一性;声明主键或唯一约束时自动创建
多字段索引一个索引定义在多个属性上,Vastbase 中 Btree 支持多字段索引
部分索引建立在表的子集上,只包含满足条件表达式的行
表达式索引建立在函数或表达式上,只有在查询时使用与创建时相同的表达式才起作用
GIN 索引通用倒排索引,处理索引项为组合值的情况
GiST 索引适用于几何和地理等多维数据类型和集合数据类型

创建与删除

-- B-Tree 索引(默认索引),适用于比较查询以及查询范围场景
CREATE INDEX testtab1_id_idx1 ON testtab1(id) TABLESPACE tbs_index1;

-- 联机创建索引
CREATE INDEX CONCURRENTLY testtab1_id_idx1 ON testtab1(id);

-- 降序索引
CREATE INDEX CONCURRENTLY testtab1_id_idx1 ON testtab1(id) DESC;

-- 唯一索引
CREATE UNIQUE INDEX testtab1_id_idx1 ON testtab1(id);

-- 删除索引
DROP INDEX testtab1_id_idx1;

3.26 约束

概述

  • 约束子句用于声明约束,新行或更新的行必须满足这些约束才能成功插入或更新。
  • 约束可以在创建表时规定(CREATE TABLE),也可以在表创建之后添加(ALTER TABLE)。
  • 约束可以是列级表级

openGauss 中常用约束

约束说明
NOT NULL指示某列不能存储 NULL 值
UNIQUE确保某列的值都是唯一的
PRIMARY KEYNOT NULLUNIQUE 的结合,唯一标识记录
FOREIGN KEY保证一个表中的数据匹配另一个表中的值的参照完整性
CHECK保证列中的值符合指定条件

管理示例

-- 建表时定义约束
CREATE TABLE atlastab (
    seq integer PRIMARY KEY,
    name varchar(64) NOT NULL,
    id varchar(24),
    itemno integer,
    UNIQUE (id),
    FOREIGN KEY (itemno) REFERENCES testtab1(id)
);

-- 现有表添加约束
ALTER TABLE testtab1 ADD PRIMARY KEY (id);

-- 删除约束
ALTER TABLE atlastab DROP CONSTRAINT atlastab_id_key;
4

模块三:系统调优

4.1 磁盘 IO 调度器

磁盘 IO 调度器用于优化系统磁盘读写性能,通过合理调度磁盘请求顺序,减少磁头移动时间,提高整体 IO 吞吐量。

4.2 udev 设备管理

  • udev 是 Linux 设备管理器,由 systemd-udevd 守护进程管理。
  • 负责处理系统事件和设备节点的动态管理。

规则文件路径

路径说明
/lib/udev/rules.d/系统默认规则文件目录
/etc/udev/rules.d/用户自定义规则文件目录(优先级高于系统默认)

规则键类型

  • 匹配键actionnamesubsystem
  • 分配键:设备名称、符号链接、所有者/组权限

常用命令

# 查看 udev 守护进程状态
systemctl status systemd-udevd
5

常用命令速查表

5.1 系统与用户管理

命令作用
useradd / usermod / userdel用户增改删
passwd修改密码
groupadd / groupmod / groupdel / gpasswd组管理
chmod / chown / chgrp权限与归属管理
setfacl / getfaclACL 管理

5.2 软件包管理

命令作用
rpm -ivh / -Uvh / -e / -q / -VRPM 安装/更新/卸载/查询/校验
yum install / remove / update / list / info / searchYUM 包管理

5.3 防火墙

命令作用
firewall-cmd --state查看防火墙状态
firewall-cmd --get-default-zone查看默认区域
firewall-cmd --list-all查看当前配置

5.4 Nginx

命令作用
/usr/local/nginx/sbin/nginx -t测试配置
/usr/local/nginx/sbin/nginx启动
nginx -s reload重载配置
nginx -s quit/stop停止

5.5 Vastbase 数据库

命令作用
vb_ctl start/stop/restart启动/停止/重启数据库
vsql -r -d vastbase本地登录数据库
vsql -r -d 库名 -h IP -p 端口 -U 用户 -W 密码远程登录数据库
\l列出所有数据库
\d列出当前 schema 下所有对象
\d 表名查看表结构
\?查看元命令帮助