登录社区云,与社区用户共同成长
邀请您加入社区
openGauss数据库通过WAL(预写日志)保障数据完整性与故障恢复能力。初始化时生成$PGDATA/pg_xlog目录,存放16MB大小的WAL文件,按时间线、逻辑ID和物理ID命名。事务提交仅需持久化WAL日志,降低IO开销,提升性能。支持自动或手动切换日志(如pg_switch_xlog),并可通过pg_xlogdump解析二进制日志内容。wal_level参数控制日志详细程度,从mini
GaussDB采用动态与静态内存结合的管理机制,通过max_process_memory控制总内存,shared_buffers用于缓存热点数据,work_mem和maintenance_work_mem分别管理会话与后台操作内存。合理配置参数可避免排序落盘、内存溢出等问题。effective_cache_size影响优化器决策,建议设为物理内存的25%-50%。需关注内存水位,确保动态内存余量充
本文系统梳理了GaussDB标准流复制环境的核心参数与监控视图,涵盖主备库关键配置(如wal_level、synchronous_commit、hot_standby等)及监控手段(pg_stat_replication、dbe_perf.global_replication_stat等),重点说明复制延迟评估、复制槽管理与流控机制,适用于GaussDB、PostgreSQL及其衍生数据库,为高可
GaussDB参数按作用域分为六级:INTERNAL(静态不可改)、POSTMASTER(需重启生效)、SIGHUP(即时生效)、BACKEND(新会话生效)、SUSET(超级用户可调)、USERSET(普通用户临时生效)。通过gs_guc命令可配置文件级修改,set用于重启类参数,reload实现即时生效。SQL语句支持数据库、用户及会话级参数调整,灵活适配运维需求。
oGRAC 是 openGauss 的多主架构实现。多个数据库实例由集群统一管理,对外提供实时一致的读写能力。与传统主备架构不同,本实验中的 Node0 和 Node1 都可以承载写事务。因此,验证重点不只是“两个实例能否启动”,还包括三件事:任一节点执行 DDL 或 DML 后,另一节点能否立即观察到结果;两个节点并发修改同一行时,锁和事务语义是否正确;业务连接分散到两个节点后,吞吐能否相对单节
文章摘要:本文介绍了如何通过Docker部署Prometheus并添加自定义监控指标。首先使用ubuntu/prometheus镜像运行Prometheus服务,映射30090端口;然后通过创建自定义镜像的方式修改配置文件,将opengauss监控指标(target)添加到Prometheus中;最后验证新指标是否成功加入并可在图形界面查看。主要步骤包括编写prometheus.yml配置文件、创
本文介绍了GaussDB数据库的逻辑备份工具gs_dump和gs_restore的使用方法。逻辑备份可备份表、视图、索引等数据库对象,支持纯文本、自定义归档等四种格式。文章详细说明了备份整个库、特定schema或表的命令示例,并演示了如何通过gs_restore恢复数据库、schema或表数据。这些工具在数据迁移、测试环境搭建等场景中非常实用,特别是分布式环境下重新定义分布键时。备份时可通过参数控
本文介绍了在Windows 11系统中安装和使用openGauss数据库图形化管理工具DataStudio的完整流程。首先需要配置Java环境(JDK 20),然后下载并解压DataStudio。通过新建数据库连接(本地地址127.0.0.1,端口15432)可连接至openGauss数据库,成功连接后会显示主界面。文章详细演示了使用DataStudio执行SQL语句的操作:创建Companies
本文对比分析了GaussDB中两种权限管理模型:基于角色的访问控制(RBAC)和基于属性的访问控制(ABAC)。RBAC通过角色间接授权,结构简单但灵活性不足;ABAC基于多维属性动态决策,更灵活但配置复杂。GaussDB原生支持RBAC,可通过行级安全等机制实现部分ABAC功能。建议常规业务使用RBAC,高敏感场景结合ABAC,或采用混合模式。文章强调应根据实际需求合理选择模型,构建安全易维护的
总体上来说,GaussDB数据库具备DN主节点进程和服务器异常时自动切换的能力、支持AZ机房级别的手动切换。这里测试验证了DN主节点故障、DN备节点异常等主要场景的高可用能力,测试结果如下表所示:DN主节点异常时,能够正常切换到备节点,切换期间业务TPS降为0,影响时长约10s。DN备节点异常时,CMA会自动拉起进程。在所有DN备节点异常时,保证高可靠性的前提下,数据库会变成只读状态,故障恢复时间
GaussDB分区表技术将大型表分割为更小的物理分区,提高查询和维护效率。支持一级分区(范围、间隔、列表、哈希)和二级分区组合。创建分区表时需指定分区类型、键和表达式,语法兼容多种策略。分区表优势包括改善查询性能、增强可用性、方便维护、扩展性好和均衡I/O。修改分区表支持移动、交换、合并、切割等操作,需注意分区连续性和索引更新。删除分区表与普通表相同,但会同时删除所有分区。使用分区表需合理规划分区
触发器是一种存储在数据库中的特殊程序,它不需要手动调用,而是在满足特定条件(如执行INSERT/UPDATE/DELETE操作)时由数据库自动触发执行。简单来说,触发器就是数据库层的"事件监听器",当监听的事件发生时,预设的逻辑会自动运行。GaussDB触发器作为数据库层的自动化工具,其核心价值在于将数据管控逻辑与业务操作解耦,实现精准、原子化的自动响应。它不是应用层逻辑的替代品,而是补充——适合
而TCP协议本身只能支持一个流,因此我们需要在这一个流中区分不同逻辑连接的数据,通过在TCP报文的head中写入逻辑连接id及后续data的长度来区分,这样虽然TCP只有一个数据包组成,但每个数据包包含多个块,实现了TCP的多流。TCP代理在现有的逻辑连接、代理分发、quota流控等实现的基础上,将数据通道从SCTP协议替换成TCP协议,TCP代理逻辑连接的实现基于head+data的数据包收发模
本文介绍了GaussDB数据库中统计信息自动收集的技术实现。统计信息是优化器选择执行计划的关键依据,主要通过AutoVacuum机制实现自动更新,包含采样策略(默认3万行)和触发条件(空表50行变化/非空表50+10%行数变化)。特别分析了分区表的统计信息收集策略,指出数据倾斜可能导致统计信息不准确,进而引发执行计划劣化问题。最后讨论了统计信息不准确时的应急处理难点,建议通过事前设计规避数据倾斜、
摘要:TopSQL是GaussDB(DWS)数据库资源监控工具,分为实时和历史视图,记录SQL语句的资源消耗和执行状态。主要应用场景包括性能问题定位、SQL调优和资源配置参考。实时TopSQL监控运行中SQL的资源使用,历史TopSQL记录已完成SQL的执行信息。数据流向从内存临时表转存到持久化表,可通过参数控制数据保留时间。系统提供query和算子级别的监控视图,并给出推荐配置参数,建议全开监控
本文提出了一种从Oracle到DWS的数据迁移方案,包含全量和增量迁移两个阶段。增量迁移通过DRS模块捕获Oracle数据变更,由Spark程序实现数据回放。方案基于Kafka Topic实现异构数据库间的数据同步,具体流程包括:1)增量数据处理,通过内存数据结构整合插入、更新和删除操作;2)数据存入临时表;3)通过merge和delete语法将临时表数据回放至正式表。该方案支持批量处理和标记删除
本文对比分析了GaussDB数据库的三种加密方案:函数加密、透明加密(TDE)和全密态数据库。函数加密由应用层控制,灵活性高但改造成本大;TDE在存储层自动加密,对应用透明但无法防御内部攻击;全密态数据库安全性最高,全程保持密文状态但性能开销较大。三种方案在加密位置、安全强度、性能影响和改造成本上各有特点,适用于不同安全需求的场景。建议根据业务风险等级选择,必要时可组合使用构建纵深防御体系。Gau
本文介绍了GaussDB数据库中用户定义函数重载的概念与应用。函数重载允许创建多个同名函数,通过参数类型、数量或顺序的差异实现不同功能,提升代码可读性和重用性。文章详细说明了GaussDB中函数重载的限制条件,包括不支持仅参数名、返回值类型或默认值不同的重载等。通过两个实际示例展示了重载函数的应用场景:一是根据不同条件查询员工信息,二是根据不同参数计算图形面积。最后强调应优先考虑内置函数,仅在特殊
摘要:本文介绍了华为云GaussDB数据库的逻辑解码技术原理。该技术通过解析WAL日志,将物理数据转换为逻辑变更记录,支持异构数据库同步。重点阐述了并行解码机制,通过Reader、Decoder和Sender三类线程协同工作,解码性能可达100MB/s。同时介绍了DDL解码、多版本数据字典和分布式CN解码等关键技术,这些特性配合DRS服务可实现高效的数据同步和迁移,保障了数据一致性和系统性能。
【背景介绍】数据压缩与关系数据库的结合,早已不是一个新鲜的话题,当前我们已经看到了各种各样数据库压缩的产品和解决方案。对于GaussDB来说,在今天引入数据压缩,究竟能够给客户带来什么不一样的价值,是过去一段时间我们一直在思考的问题。为了回答这个问题,我们首先对各种通用压缩算法进行了广泛的测试,从性能最好的LZ4/Snappy,到性能与压缩率均衡的Zstd/Zlib,再到强调压缩率的LZMA...
【摘要】本文系统阐述了GaussDB数据库性能调优的方法论与实践路径。首先提出"先定位瓶颈后针对性优化"的总体思路,通过监控平台分析CPU、内存、I/O等资源使用情况判断压力传导路径。针对CPU高负载问题,重点分析了SQL全表扫描、硬解析等典型诱因;内存优化则聚焦缓冲区命中率、算子落盘等关键指标;I/O和网络异常也给出具体诊断方法。针对锁阻塞问题,详细介绍了锁等待事件的定位技术
本文探讨了GaussDB数据库中WAL(预写式日志)的管理机制。WAL作为关键的事务日志,通过顺序I/O记录数据修改,确保数据库故障时可恢复。文章详细解析了WAL工作原理,包括Checkpoint机制(全量/增量)和日志回收策略,重点介绍了wal_level、wal_keep_segments等核心参数的作用及配置建议。通过TPCC测试验证了WAL日志的动态变化过程,展示了参数调整对日志保留数量的
【摘要】GaussDB内存参数设置需结合实际业务场景以最大化资源利用。其采用逻辑内存管理机制,通过max_process_memory等参数控制实例、资源池、会话和SQL级别的内存分配。关键参数包括:shared_buffers(共享内存)、work_mem(排序操作内存)等。内存管理分为四级:实例级通过max_process_memory控制总内存;资源池级通过max_dynamic_memor
摘要: GaussDB日志分析是数据库运维的关键环节,涵盖错误日志、WAL日志、慢查询日志等核心类型。错误日志帮助定位语法错误、主备同步异常;WAL日志用于事务恢复与主备延迟诊断;慢查询日志优化性能瓶颈。通过案例解析(如重复键冲突、WAL同步延迟、CPU争用)展示日志分析流程,结合自动化工具(GaussDB Advisor、华为云LTS)提升效率。建议配置日志轮转、实时监控及安全脱敏,建立标准化分
本文介绍了openGauss数据库存储引擎中的astore行存储格式和B-Tree索引机制。astore采用追加写优化设计,通过多版本元组机制实现读写并发控制,其页面结构包含元组指针数组和元组数据区。文章详细解析了astore的元组结构、页面布局、多版本实现原理以及三种空间回收机制(轻量级、中量级和重量级清理)。同时阐述了B-Tree索引的组织结构、元组格式及与堆表的协同机制,包括索引可见性判断和
openGauss数据库支持多种存储引擎以满足不同业务场景需求。存储引擎分为磁盘引擎和内存引擎两大类:磁盘引擎采用悲观并发控制,支持行存储(astore)和列存储(cstore)格式;内存引擎(mstore)采用乐观并发控制。存储引擎提供统一日志系统、多种并发控制机制、表级存储格式选择和统一的行存储访存接口。磁盘引擎详细介绍包括整体架构、代码结构以及行存储统一访存接口设计,该接口层屏蔽不同行存储子
openGauss是一款高性能、高可用的开源数据库系统,支持行存储、列存储和内存引擎三种存储模型,满足OLTP、OLAP及极致性能场景需求。其创新架构针对SSD和大内存优化,采用MVCC、并行日志恢复等技术提升性能。系统支持主备高可用、逻辑/物理备份、PITR恢复等特性,并通过WDR诊断、慢SQL分析等工具增强可维护性。在安全方面提供访问控制、数据加密、全密态查询等全方位保护。此外,openGau
摘要:openGauss采用基于访问控制列表(ACL)的权限管理机制,每个对象通过ACL存储授权信息。ACL由授权者、被授权者和权限位构成,其中权限位分为高16位授权权限和低16位操作权限。系统通过GRANT/REVOKE命令实现权限管理,核心流程包括获取旧ACL、计算实际权限、生成新ACL并更新系统表。权限检查时通过查询对象ACL进行验证,表权限检查函数pg_class_aclcheck通过调用
摘要: GaussDB日志分析是数据库运维的核心环节,涵盖错误日志、WAL日志、慢查询日志和事务日志等类型。错误日志帮助定位语法错误和同步异常,WAL日志保障数据一致性与主备同步,慢查询日志识别性能瓶颈,事务日志支持审计与故障恢复。通过自动化工具(如GaussDB Advisor、华为云LTS)和实战案例(如重复键错误、WAL延迟、慢查询优化),可实现高效问题诊断。建议配置日志轮转、实时监控及安全
摘要: 本文探讨了不同数据库中User和Schema的概念差异及权限管理实现方式。在SQL标准中,User是连接数据库的实体,而Schema是组织数据库对象的逻辑容器。Oracle自动为用户创建同名Schema,需通过"create any table"权限实现跨Schema建表;PG需手动创建Schema并授权USAGE和CREATE权限;GaussDB/OpenGauss则
本文提出了一种高效的Oracle到MogDB数据同步方案,通过结合sqluldr2工具的标准输出功能和gsql的\copy标准输入功能,利用Linux管道实现数据实时传输。该方法避免了中间文件存储,实现导入导出同步进行,理论上传输时间仅取决于较慢的一端。具体步骤包括:配置双数据库客户端环境,使用sqluldr2导出数据到标准输出,通过管道直接传递给gsql的\copy命令导入。测试表明该方法能正确
OpenGauss数据库中的RAW类型处理机制解析 摘要:本文探讨了OpenGauss数据库中RAW类型的使用方法及其与Oracle的区别。OpenGauss支持18个RAW相关函数,包括hextoraw/rawtohex转换、rawcat拼接、rawcmp比较等。研究发现:1)RAW类型本质上是二进制数据,采用bytea方式存储;2)相同名称函数可能因参数类型不同产生不同结果;3)直接使用RAW
OpenGauss 2.1.0新增package功能但需配置兼容模式为"A"。官方Docker镜像默认设为"PG"导致报错。解决方法:1)修改entrypoint.sh将参数改为A;2)准备安装包并修改Dockerfile添加阿里源;3)构建自定义镜像并运行。关键步骤包括DNS配置、Dockerfile修改和构建脚本执行,最终可成功创建支持package的O
摘要: GaussDB中批量插入索引性能问题的分析表明,当目标表存在主键时,insert into t_target select * from t_source 语句的插入时间从几秒骤增至200秒。通过官方文档发现,该数据库默认开启批量插入索引特性(batch_insert_index_types=rcr_ubtree),但实际性能未提升。结论:建议调整shared_buffers以优化批量插入
抛开那种直接count算行数的极不精确算法,现有的异构数据库的数据核对工具,一般是把数据都查到工具的内存里,对日期时间数字等非文本类型,进行统一的格式化处理,将一行的所有字段拼成一个长字符串,然后hash一下,得到一个值,比较两个库这行数据得到的这个hash值是否一致,则可以知道这行数据是否一致。而且假设表上没有主键,就只能把所有字段作为主键;所以,这种场景下,客户更需要的是,上线的时候,核对工具
本文分析了不同数据库(Oracle、PostgreSQL、GaussDB/OpenGauss)中USER和SCHEMA的概念差异及实现方式。USER是数据库操作实体,在SQL标准中与ROLE不同,但PG系数据库将两者合并。SCHEMA作为逻辑容器,Oracle自动创建同名SCHEMA,而PG需手动创建。通过案例演示了如何实现用户跨SCHEMA建表:在Oracle中需授予CREATE ANY TAB
通过实际操作,让大家深入了解如何利用 PLPGSQL 开发并部署一个函数功能模块。在这个过程中,大家将学习到从函数创建、数据批量读取到SQL程序编写以及与触发器集成等一系列关键步骤,从而掌握 PLPGSQL 的基本使用方法,体验其在应用开发中的优势。
文章摘要:本文介绍了PostgreSQL/OpenGauss等数据库中的自定义参数功能,通过点号分隔的命名方式实现灵活配置。该功能支持会话级参数设置,可用于SQL上下文传递、行级访问控制等场景。相比Oracle的全局变量方案,自定义参数无需创建额外对象,通过current_setting函数即可调用。文章还提供了典型应用案例,如在多用户视图中实现数据隔离、模拟Oracle全局变量等,展示了这一功能
本案例选择Gauss数据库作为示例,直观地展示 PL/pgSQL在商业应用开发与过程化编程能力和实际应用开发中为开发者带来的便利。
在客户测试环境中(GaussDB 506.0 SPC0100 集中式),一个重度使用存储过程的系统,频繁出现内存临时不可用的问题(ERROR: memory is temporarily unavailable)。令人困惑的是,这个环境配置的内存大小已经数十倍于迁移前的Oracle。
通过实际操作,让大家深入了解如何使用分区表,在日常开发中如何在项目中运用分区表的优点,从而掌握分区表在数据分布、索引优化的应用,体验其在应用开发中的优势。
DRS支持CDC的数据迁移方案,即CDC通过拉取源库日志,解析成标准的THL格式文件,进行增量数据发布。DRS直接拉取THL文件,进行解析和过滤,实现增量数据回放,有效的降低了多个DRS任务直连源库对源库性能的影响。针对源库数据量级大需要拆分任务迁移(一对多场景),以及对源库性能敏感客户优先推荐使用该方案。
debezium-connector-postgres工具是一个基于Java语言的Postgresql到openGauss的复制工具。该工具提供了初始全量数据及对象(视图、触发器、函数、存储过程)和增量数据(DML)的复制能力,可实现数据及对象从Postgresql迁移至openGauss。
GaussDB ECPG与Oracle Pro*C深度对比:嵌入式SQL开发者的迁移指南。
使用sharing-jdbc中间件实现GaussDB读写分离操作,在服务器资源吃紧与高并发场景下可以考虑采用读写分离架构减轻负载。
内容从索引推荐、分布从索引推荐、分布键推荐、参数调优等三方面继续解读GaussDB的自治运维技术键推荐、参数调优等三方面继续解读GaussDB的自治运维技术
GaussDB内核提供的逻辑解码技术,配合DRS服务,可以实现异构数据库之间的逻辑复制。
英文原文:New Reflection API affected by a known 10+ years old attack 据SECLISTS 透露,他们发现新的 Reflection API 在引进 Java SE 7 时并未经过非常安全的复查,并且存在着一个非常大的漏洞。 该漏洞可以允许黑客利用 10 年前便广为人知的手法来攻击 Java 虚拟机。Java SE 7 中的 R...
此外,一些创新特性可最大限度地提高资源使用率和灵活性,如Oracle Multitenant可快速整合多个数据库,而Automatic Data Optimization和Heat Map能以更高的密度压缩数据和对数据分层。Oracle数据库12c引入了一个新的多承租方架构,使用该架构可轻松部署和管理数据库云。这些独一无二的技术进步再加上在可用性、安全性和大数据支持方面的主要增强,使得Oracle
Mac 上使用 Navicat 链接虚拟机 Oracle Express Edition 数据库