【OpenGauss】知识总结
OpenGauss
OpenGauss概述
一、基本概念
DBMS 数据库管理系统 (opengauss隶属于这个)
🚀DBMS充当数据库与其用户或程序之间的系统
-
层次模型数据管理系统
-
网状模型数据库管理系统
-
RDBMS 关系型数据管理系统 (R - relationship)
-
mysql、 sql server、 oracle、 opengauss 等等
-
结构化数据
-
-
NoSQL 数据库管理系统
-
高性能并发读写 key-value、 redis
-
文档数据库 MongoDB
-
搜索引擎 ES、 Solor
-
分布式数据库 Hbase、 Hive
-
NoSQL - CAP 理论
- 一个分布式系统不可能同时满足
一致性、可用性、分区容错性
三个基本需求,并且最多只能满足其中的两项
- 一个分布式系统不可能同时满足
-
当然还有其他的类型:
-
DBS 数据库系统
- 数据库系统是指在计算机系统中引入入数据库后的系统
-
DB 数据库
-
Database 数据库 (永久存储,有组织,可共享)
数据库是指长期存储在计算机内、有组织、可共享的大量的数据的集合。数据库中的数据按照一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
数据库管理技术的三个发展阶段
人工管理阶段、 文件系统阶段 和 数据库系统阶段
每一个阶段都是以减小数据冗余
数据库模型 - 层次、 网状、 关系模型
一、层次模型
-
有且只有一个节点没有双亲
-
跟节点意外的其他节点有且只有一个双亲节点
-
(类似于树结构)
二、网状数据模型
-
允许一个以上的节点无双亲
-
一个节点可以有多余一个的双亲
三、 关系数据模型
-
建立在严格的数据概念基础上
-
关系必须是规范化的
-
关系的分量必须是一个不可分的数据项
结构化查询语言 SQL
SQL是结构化查询语言的简称,是关系数据库的标准语言。
事务
ACID-关系型数据库 四大特性⭐
-
原子性(Atomicity)
-
一致性(Consisterncy)
-
隔离性(Isolation)
-
持久性(Durability)
事务的状态也只有三种:Active、Committed和Failed
数据库架构
单机架构
优点:部署几种,运维方便
缺点:
-
可扩展性
:数据库单机架构扩展性只有纵向扩展(Scale-
up),即通过增加硬件配置来提升性能,但单台主机的硬件
可配置的资源会遇到上限。 -
在单点故障
:扩容的时候往往需要停机扩容,服务停止;
硬件故障导致整个服务不可用,甚至数据丢失。 -
单机会遇到性能瓶颈
多机架构
分组
-
主备架构和主从架构
-
多主 —— Shared Disk 共享存储
分片
- Share-nothing、MPP
无共享架构 Shared Nothing
-
各个处理单元有自己的CPU/内存/硬盘
-
各节点互相独立,处理后结果向上汇总
-
容易扩容
MPP架构 Massively Parallel Processing
- 将任务并行分散到多个服务器和节点上
关系型数据库主流应用场景
-
联机事务处理 OLTP
-
操作处理
-
强调内存各种指标的命令率,强调绑定变量,强调并发操作
-
-
联机分析处理 OLAP
-
信息处理
-
强调SQL执行时长,强调磁盘 I/O,强调分区等
-
二、openGauss的发展历程
-
GaussDB100 OLTP场景
GaussDB200OLAP场景
CaussDB3OO HATP场景
-
GaussDB T
GaussDB A -
2019年华为全联结大会开源GaussDB数据库
命名为openGauss -
华为云 GaussDB 数据库
openGauss全面友好开放,采用 木兰宽松许可证v2 发行⭐
Postgres-XC(eXtensibleCluster)是基于PostgreSQL
实现的可扩展集群,该集群基于shared-nothing
架构形成多主(multi-master)且写可靠(write-scalable)的数据库集群系统,PostgreSQL相关的API可以无需修改直接使用,应用程序、事务处理等均不需要做任何修改。
openGaussVSPG架构和关键技术对比
-
线程池模型 | 进程模型
-
行存、列存、内存引擎 | 仅支持行存
OpenGauss的部署
-
直接在华为云上购买opebnGauss
-
在华为云购买ECS服务器安装openGauss
-
本地部署
官网下载openGauss数据库
架构: x86_64
操作系统: openRuler 22.03 LTS
部署数据库服务
命令行可以直接安装极简版,建议单练习SQL语句操作使用
dnf install -y opengauss //下载
systemctl enable --now opengauss //启动
自动在系统生成opengauss用户
su -opengauss //切换用户
gsql -d postgres -r //连接数据库
企业版本部署
1)安装环境的检查
2)获取安装包
3)配置XML文件
4)初始化安装环境 —— 利用openGass提供gs_preinstall
5)执行安装 —— 利用openGass提供gs_preinstall 脚本
6)部署—主多备场景 设置备机
数据库卸载
1)下载openGauss应用程序 使用omm用户执行gs_uninstall
2)清除安装openGauss的环境 使用root执行 gs_postuninstall 脚本
openGauss的体系结构
-
进程线程结构 —— openGauss 单进程多线程
-
内存结构
-
share buffer: 数据库服务器行存共享缓冲区
-
cstore buffer: 数据库服务器列存共享缓冲区
-
MOT 用于内存优化 表的数据和索引直接鵆在内存中
-
wal buffer
: WAL 日志的共享内存 -
maintenance_work_mem
:执行常见维护操作 -
wore_mem
: 用于查询操作,排序哈希 -
temp buffer
: 数据库会话使用的临时缓存,用于访问临时表 -
调整内存大小
-
-
存储结构
-
Tablepace 表空间 数据库的各种物理文件
-
db - 利用gsql的元命令查看的表空间信息
-
/d pg_tablespace 查看数据库的系统表
-
-
Database 数据库 各种该数据库之间相互隔离
-
查看数据库 gsql元命令
-
创建数据库
-
修改数据库
-
删除数据库
-
-
Datafile Segment 数据文件
-
Block 数据块 —— 数据库管理的基本单位
-
-
两个重要配置文件
-
pg_hba.conf
客户端认证策略 — 文本文件 -
postgresql.conf
数据库的参数 — 文本文件
-
-
opengauss的部署方案
-
单机
-
主备
-
一主多备
-
数据库对象管理
-
表
-
视图
-
索引
-
序列
-
函数
-
存储过程
-
触发器
数据库管理工具
客户端工具:
- gsql是openGauss提供的在命令行下运行的数据库连接工具
服务端工具:
-
gs_check —— 统一化当前系统中存在的各种检查工具
-
gs_checkos —— 用于检查操作系统、控制参数】磁盘配置等内容
-
gs_ceckpref —— 只能root
-
gs_collector —— 在发生故障时,收集OS信息,日志信息以及配置文件信息,来定位问题
-
gs_dump —— 支持导出完整一致的数据
-
纯文本格式 p
-
自定义归档格式 c
-
目录归档格式 d
-
tar归档格式 t
-
-
gs_dumpall —— 同时不影响用户对数据库的正常访问
-
gs_guc —— 设置openGauss 配置文件
-
修改、查看 postgresql.conf 的配置文件的参数
-
修改 pg_hba.conf 文件有关客户端认证的策略
-
-
gs_om —— 检查opengauss 运行
-
gs_restore —— 针对gs_dump 导出数据的导入工具
-
gs_ssh —— 在openGuss各个节点上执行相同的命令
数据库卸载
SQL
-
DDL
-
DML
-
DCL
-
DQL