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


    作为一个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

    总结

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

  • 相关阅读:
    Amoeba for MySQL读写分离配置
    基于amoeba实现mysql数据库的读写分离/负载均衡
    Amoeba实现mysql主从读写分离
    OpenERP 的XML-RPC的轻度体验+many2many,one2many,many2one创建方式
    openerp用wizard导入excel数据
    OpenERP在product中增加外部网络链接图片
    OpenERP7.0安装后提示“not supported" ,如何去掉此提示
    windows命令行设置IP与DNS
    ubuntu开机自动启动xampp/lampp的两种方法
    [Python]网络爬虫(五):urllib2的使用细节与抓站技巧
  • 原文地址:https://www.cnblogs.com/binliubiao/p/15260157.html
Copyright © 2020-2023  润新知