FYF
» HerBert
Toggle navigation
FYF
主页
1、用户
2、各种方案
3、备份恢复
4、表空间相关
5、OGG
6、文件管理
7、常见故障分析
8、DG
9、集群相关
HCCDP
实验题
About Me
归档
标签
一、数据库介绍
无
2025-12-01 22:32:56
2
0
0
admin
[TOC] ## 一、GaussDB 产品定位与核心优势 ### 1.1 产品概述 - **GaussDB**是华为自主研发的新一代企业级关系型数据库。 - 支持 **SQL2003** 标准语法,兼容x86和鲲鹏计算架构。 - 提供 **高吞吐强一致性事务处理能力**、**金融级高可用**、**大数据高性能查询能力**。 - 广泛应用于金融、电信、政府等行业关键核心系统。 ### 1.2 核心优势 | 优势类别 | 说明 | |----------|------| | **高可用** | 国内首家同城双集群RPO=0;同城RTO<60s,异地RPO<10s, RTO<10min | | **高性能** | 自研In-place Update存储引擎Ustore;单节点150万tpmC,分布式32节点1500万tpmC | | **高安全** | 国内唯一获CC EAL4+最高安全认证(源码级);支持动态脱敏、统一审计、全密态、防篡改 | | **高弹性** | 原生分布式架构,支持云化弹性伸缩、秒级在线扩容;支持1000+分布式大规模集群 | | **高智能** | 国内首个AI-Native数据库;智能索引/分布列推荐;故障诊断效率提升5倍 | | **易部署易迁移** | 高度兼容Oracle/MySQL;DRS+UGO一站式迁移;存储成本下降50%,资源利用率提升4倍 | ### 1.3 应用场景 - **金融**:核心交易、渠道类业务、贵金属交易 - **运营商**:计费、CRM、管理平台 - **政府/安平**:生物特征识别、声纹识别、商业风控 - **电力**:生产管理系统 - **通用场景**:自主创新、IOE替代、分布式改造 --- ## 二、系统架构 ### 2.1 集中式架构 ``` 业务应用 | OM(运维管理模块) | CM(集群管理模块) | ETCD(一致性组件) | DN(数据节点)主/备 → Storage ``` **组件说明:** - **OM**:运维管理模块,提供集群日常运维、配置管理接口。 - **CM**:集群管理模块,管理和监控分布式系统中各功能单元。 - **ETCD**:分布式键值存储系统,用于共享配置和服务发现。 - **DN**:数据节点,负责存储业务数据(行存/列存/混合),执行数据查询任务。 - **Storage**:服务器的存储资源,持久化存储数据。 ### 2.2 分布式架构 ``` 业务应用 | CN(协调节点) | GTM(全局事务管理器) | CM + ETCD | DN(数据节点) → Storage ``` **新增组件说明:** - **CN**:协调节点,接收应用请求,分解任务并调度DN并行执行。 - **GTM**:全局事务管理器,负责生成和维护全局事务ID、事务快照、时间戳等全局唯一信息。 ### 2.3 数据分布方式 | 分布方式 | 说明 | 适用场景 | |----------|------|----------| | **Replication** | 每个DN都有一份全量表数据 | 小表、维度表 | | **Hash** | 数据通过Hash方式分布到所有DN | 事实表,均匀分布 | | **List** | 数据通过List方式分布到指定DN | 按地区、类别分区 | | **Range** | 数据通过Range方式分布到指定DN | 按时间范围分区 | **示例:** ```sql -- Hash分布 CREATE TABLE sales_fact (...) DISTRIBUTE BY HASH(region_id, depart_id, product_id); -- Replication分布 CREATE TABLE depart_dim (...) DISTRIBUTE BY REPLICATION; ``` --- ## 三、部署形态 ### 3.1 部署类型概览 | 部署类型 | 特点 | 适用场景 | |----------|------|----------| | **单机部署** | 低成本 | 测试环境或可靠性要求低的场景 | | **主备部署** | 1+1或1+2主备,基于日志复制 | 单机性能满足需求,需高可用 | | **分布式部署** | 数据分片,读写负载线性扩展 | 大规模业务量场景 | ### 3.2 典型部署方案 #### 3.2.1 集中式集群部署(同城3AZ高可用+异地容灾) - **架构**:同城逻辑3AZ(三副本),异地单AZ(三副本)。 - **特点**: - 节点级高可用:任一节点故障,系统仍有双份数据。 - AZ级高可用:任一AZ故障,主服务自动切换。 - 异地容灾:RPO<10s, RTO<10min。 - **核心指标**: - 节点故障:RPO=0, RTO<60s - 容灾切换:RPO<10s, RTO<10min #### 3.2.2 分布式集群部署(两地三中心) - **架构**:同城两个双活数据中心 + 异地一个容灾数据中心。 - **特点**: - 多中心统一查询及全局一致读。 - 支持DC、AZ、Region级高可用容灾。 - 负载分担及故障无缝切换。 - 支持平滑在线扩容。 - **核心指标**:RPO≤10s, RTO≤120s #### 3.2.3 分布式集群部署(同城3AZ多活) - **架构**:三个AZ完全对等部署,每个AZ都有主DN。 - **特点**: - 三个AZ均有完整数据,支持节点级、AZ级故障高可用。 - 任一AZ故障时,主服务自动切换到另一AZ。 - **核心指标**:RPO=0, RTO<60s --- ## 四、SQL引擎 ### 4.1 SQL处理流程 ``` SQL语句 → 词法分析 → 语法分析 → 语义分析 → 查询优化 → 执行计划 → 执行引擎 ``` ### 4.2 查询优化器 **主要优化技术:** - 条件下推、消除子查询、条件转移 - Join顺序优化、Join算法选择 - 分组算法、重分布方法选择 - 并行执行优化 **统计信息收集:** - 基表数据特征:distinct值、MCV(most common values)、直方图 - 行数估算:基表baserel、Join中间结果集joinrel、Aggregation结果集 - 代价估算:根据数据量估算不同算子执行代价 ### 4.3 执行引擎 #### 4.3.1 算子分类 | 算子类型 | 功能 | 示例 | |----------|------|------| | **扫描算子** | 从底层数据源抽取数据 | SeqScan、IndexScan、SubQueryScan | | **控制算子** | 控制数据流程 | Limit、RecursiveUnion、Union | | **物化算子** | 缓存下层数据 | Agg、Sort | | **连接算子** | 处理关联操作 | MergeJoin、NestLoop Join、HashJoin | #### 4.3.2 分布式执行流程 1. 业务应用下发SQL给CN 2. CN生成执行计划,DN按计划处理数据 3. DN间通过三种Stream流交换数据: - 广播流(Broadcast) - 聚合流(Gather) - 重分布流(Redistribute) 4. DN将结果返回CN汇总 5. CN将最终结果返回应用 --- ## 五、存储引擎 ### 5.1 存储引擎架构 ``` SQL引擎 → 存储引擎 → 统一访问接口 → 页面管理 → 介质管理 → 磁盘/云存储 ↓ 事务管理器(MVCC) ↓ 日志系统(WAL) ↓ 索引系统 ↓ 主备复制系统 ``` **行存引擎类型:** - **Astore**:基于Append update - **Ustore**:基于In-place update(华为自研) ### 5.2 数据库对象关系 ``` 数据库(Database) ↓ 模式(Schema) ↓ 表空间(Tablespace)→ 物理存储位置 ↓ 表(Table)/索引(Index)等 ``` ### 5.3 索引类型 | 分类维度 | 类型 | 说明 | |----------|------|------| | **按列数** | 单列索引 | 仅在一个列上建立 | | | 多列索引 | 组合索引,查询条件需使用第一个字段 | | **按使用方法** | 全文索引 | 查询可读性文档,按相关度排序 | | | 唯一索引 | 列值或列值组合唯一 | | | 函数索引 | 建立在函数基础上 | | | 分区索引 | 在表的分区上独立创建 | | | 全局二级索引 | 分布式集群,与基表分布不一致的索引 | ### 5.4 系统目录结构 ``` ./data_node ├── base/ # 各数据库文件 │ └── DatabaseOID/ │ └── RelFileNode ├── pg_tblspc/ # 表空间符号链接 │ └── TableSpaceOID -> /path/to/tablespace └── global/ # 全局系统信息 ``` **说明:** - `RelFileNode`:表或索引在存储介质上的文件名(初始值等于OID) - `pg_tblspc`:包含指向表空间的符号链接 ### 5.5 行存表存储结构 ``` RelFileNode.1(数据文件,1GB为单位) RelFileNode.fsm(Free Space Map) RelFileNode.vm(Visibility Map) ``` **数据文件内部结构:** - 以8KB为单位分页(Page) - 每页包含:Page Header、Item指针、Tuple数据、Special空间 ### 5.6 更新机制对比 | 引擎 | 更新方式 | 特点 | |------|----------|------| | **Ustore** | In-place Update(原地更新) | 有效数据在数据页面,历史版本在undo空间;空间不膨胀,垃圾回收高效 | | **Astore** | Append Update(追加更新) | 更新时插入新版本,旧版本打删除标记;需定期VACUUM回收空间 | ### 5.7 日志与复制 #### 5.7.1 WAL(Write Ahead Log)机制 - **作用**: 1. 故障恢复 2. 主备数据同步 3. 备份恢复(PITR) - **策略**:No-force-at-commit(提交时不强制写盘) #### 5.7.2 主备HA机制 - **同步流程**: 1. 主机业务线程写WAL到xlog buffer 2. 事务提交前flush WAL到磁盘 3. Walsender线程发送WAL到备机 4. 备机Walreceiver接收并写入磁盘 5. 备机Replay WAL完成同步 - **支持模式**:同步复制、异步复制 #### 5.7.3 逻辑复制 - **特点**: - 支持DML、DDL - 实时解析源库XLOG,生成逻辑日志 - 支持异构表、异构数据库同步 - 目标库同步期间可读写 - **应用**:数据迁移(DRS)、异构数据库同步 ### 5.8 分布式事务GTM-Lite - **技术特点**: - 无锁、多版本、高并发事务 - 分布式全局事务快照和提交号管理 - 无中心节点性能瓶颈 - **CSN方案**:使用CSN(Commit Sequence Number)替代传统Snapshot,提高并发性能 --- ## 六、运维与安全 ### 6.1 在线扩容(Scale-out) - **流程**: 1. 加节点阶段:新CN/DN节点安装、元信息同步、启动 2. 数据重分布阶段:基线数据搬迁、增量数据搬迁、切换元数据 - **特点**:支持在线业务,性能和容量线性扩展(最大1000+节点) ### 6.2 备份恢复与闪回 | 功能 | 特点 | 适用场景 | |------|------|----------| | **备份恢复** | 全量+增量备份;支持NAS、ODS介质;PITR;表级备份;从备机备份 | 数据量大,对备份效率要求高 | | **闪回** | 闪回查询、闪回表、闪回DROP/TRUNCATE;仅Ustore支持 | 误操作数据恢复,快速精准 | **性能指标:** - 单分片1TB数据备份:约4小时 - 单分片2TB并行恢复:5小时内 ### 6.3 在线平滑升级 | 升级类型 | 方式 | 业务中断 | 用途 | |----------|------|----------|------| | **就地升级** | 物理文件备份,停止业务,二进制升级 | 约30分钟 | 新功能上线或修复bug | | **灰度升级** | 在线更新系统表,软连接切换二进制,按序重启 | DN主/CN切换约10秒 | 常规升级 | | **滚动升级** | 按AZ区滚动升级 | 较短 | 大规模集群升级 | | **热补丁升级** | 内存加载patch,函数级替换 | 无中断 | 紧急bug修复 | ### 6.4 全密态安全 - **核心原理**:加解密仅在客户端完成,数据全生命周期以密文形态存在 - **密钥管理**:密钥掌握在用户手中,数据库管理员无法获取 - **与传统加密对比**: - 传统:服务端加密,管理员可获取密钥 - 全密态:客户端加密,管理员只能看到密文 ### 6.5 智能运维平台 **核心功能:** - **监控能力**:节点监控(硬件、网络、存储)、实例监控(事务、会话、锁、内存、IO、SQL性能) - **告警系统**: - 实例告警:组件异常、主备倒换、RTO/RPO异常、备份失败等 - 系统告警:管理面微服务异常、管理节点资源使用率高等 - 支持Syslog、SNMP对接第三方平台 - **WDR报告**:负载诊断报告,类似数据库体检报告,包含: - 库级统计数据(事务数、物理/逻辑读、行活动等) - 负载信息(DB/CPU时间、表IO、SQL量、事务量等) - 等待事件Top 10 - CPU/IO/内存使用信息 **智能运维功能:** - 慢SQL诊断、索引推荐、趋势预测 - 会话查杀、全量SQL、全链路追踪 - 聚合分析、SQL限流、SQL PATCH - 执行计划绑定、智能巡检 --- ## 七、思考题答案 1. **C** ETCD(用于共享配置和服务发现) ## 八、缩略语 | 缩写 | 全称 | 中文 | |------|------|------| | SQL | Structured Query Language | 结构化查询语言 | | DBMS | Database Management System | 数据库管理系统 | | OBS | Object Storage Service | 对象存储服务 | | RTO | Recovery Time Objectives | 恢复时间目标 | | RPO | Recovery Point Objective | 恢复点目标 | | ODBC | Open Database Connectivity | 开放式数据库连接 | | JDBC | Java Database Connectivity | Java数据库连接 | --- ## 九、学习总结 - **架构层面**:理解集中式与分布式架构的区别,掌握CN、DN、GTM、ETCD等核心组件功能。 - **部署层面**:熟悉单机、主备、分布式部署形态,了解两地三中心、同城多活等高可用方案。 - **SQL引擎**:掌握查询优化原理、执行算子分类、分布式执行流程。 - **存储引擎**:理解Astore与Ustore区别、数据分布方式、WAL机制、主备复制原理。 - **运维安全**:了解在线扩容、备份恢复、全密态安全、智能运维等核心能力。
上一篇:
一.一
下一篇:
三、GaussDB数据库迁移笔记
0
赞
2 人读过
新浪微博
微信
腾讯微博
QQ空间
人人网