ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

openGauss-华为开源数据库8小时学习

2021-09-12 21:34:38  阅读:243  来源: 互联网

标签:gs 开源 MOT 华为 snapshot 内存 openGauss select paraname


作为一个Oracle数据库管理员,在当下国产数据库可以说是百花齐放的时代环境中,非常需要去了解当今国内数据库的发展与现状情况。
偶然的时刻了解到8小时玩转openGauss训练营(第二期)的培训交流的机会,刚好也是周末的时间,也刚好有空闲的时间,就参加学习了openGauss数据库方面的情况。

OG 体系架构

openGauss提供面向多核的极致性能、全链路的业务和数据安全、基于AI的调优和高效运维的能力,全面友好开放,携手伙伴共同打造全球领先的企业级开源关系型数据库。
它是基于PostgreSQL 9.2.4内核魔改多线程结构。

特性

  • JIT模型
  • 支持增量|全量检查点
  • 列存,行存和MOT
  • 全密态安全
  • AI4DB和DB4AI

部署高可用架构

架构图

主备HA

image-20210912204449245

两地三中心

image-20210912204539415

高可用报障

  • Switchover:主机运行正常,因为维护等需求进行switchover操作,switchover之后主
    机降备,备机升主并开始接管业务,这些操作需要主机和备机之间交互才能完成。
  • Failover:主机故障后,备机需要进行failover操作,failover后备机升主,开始接管业务;
    failover的过程是备机独立完成的,不需要和主机进行交互。

image-20210912204731263

switchover切换流程

image-20210912204804966

failover切换流程

image-20210912204826656

最佳实践

参数分类
动态参数

可以在线修改的参数

gs_ctl reload -D $DATADIR
# select pg_reload_conf();
需重启生效参数
gs_ctl restart -D $DATADIR
gs_om -t restart
参数配置修改方式
SQL命令行修改
ALTER SYSTEM SET paraname TO value;
ALTER DATABASE dbname SET paraname TO value;
ALTER USER username SET paraname TO value;
SET paraname TO value;
gs_guc
gs_guc set -D datadir -c "paraname=value”
gs_guc set -N all -I all -c "paraname=value"
运维工具

image-20210912205459885

监控

Prometheus+Grafana 开源监控体系

image-20210912205624361

MOT

概述

  • 乐观并发控制(Optimistic Concurrency Control,简称OCC)

MOT (Memory-Optimized Table):使用OCC实现事务的并发控制的行存储引擎。

特性
  • 内存优化数据结构
  • 无锁事务管理
  • 无锁索引
  • NUMA感知,事务本地内存
  • 高效、可靠的持久化
  • 查询本机编译(JIT)

结构图

image-20210912210337892

事务管理

事务本地内存与全局内存
  • 全局内存(shared memory)是所有CPU核心共享的长期内存,主要用于存储所有表数据和索引
  • 本地内存是短期的私有内存,主要用于在会话中处理事务,并将数据更改存储在本地内存中,直到提交阶段。
无锁事务管理
  • 所有相关数据都会从全局内存复制到本地内存
  • 基于OCC算法,最小化全局内存上的争用时间
  • 事务完成后,此数据将从本地内存推回全局内存
乐观并发控制(OCC)事务机制

在事务期间(使用任何隔离级别),直到提交阶段,不会对记录加锁。优点:性能更高。缺点:可能被中止。如果另一个会话尝试更新相同的记录,则更新可能会失败,MOT在提交时通过版本检查机制检测冲突。

注意:当使用串行化或可重复读取隔离级别时,在使用悲观并发控制的引擎上也会发生类似的中止。

监控MOT

MOT全局内存
select mot_global_memory_detail();
MOT本地内存
select mot_local_memory_detail();
当前会话内存
select * 
from mot_session_memory_detail() 
where sessid = pg_current_sessionid();

WDR 报告

类似于Oracle Database产品中的AWR报告,常用于分析数据库基于等待事件方法论的性能问题。

数据保留时间

默认数据保留8天,每1小时自动创建一个快照。

管理

查看当前WDR snapshot列表
select * from snapshot.snapshot order by start_ts;
查看某次WDR snapshot中相关summary/global快照的时间花费
select * from snapshot.tables_snap_timestamp where snapshot_id = 1 order by start_ts;
手工创建WDR snapshot
select create_wdr_snapshot();
生产WDR报告
select generate_wdr_report(begin_snap_id Oid, end_snap_id Oid, int report_type, int report_scope, int node_name );
说明
  • node_name – 结点级别report时候,指定node name; cluster级别省略或者指定为NULL
  • 要在postgres库内执行

性能优化思路

整体性能问题分析

image-20210912211642355

单SQL性能

image-20210912211721999

AI自治数据库特性

AI能力

AI in DBMS: 参数调优与诊断能力
  • 调优参数列表:根据不同的场景预设,用户也可以根据经验配置;
  • 调优方法概括:结合深度强化学习与全局优化算法,针对不同类别的参数进行细粒度调优。
  • 调优效果评估:观察benchmark的跑分结果,预置的benchmark丰富,极简可扩展。
AI in SQL:DB4AI

image-20210912212034823

总结

经过此次的学习,认识到国产数据库在技术和推广层面上越来越成熟和智能。

标签:gs,开源,MOT,华为,snapshot,内存,openGauss,select,paraname
来源: https://www.cnblogs.com/binliubiao/p/15260157.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有