
openGauss
文章平均质量分 72
小怪兽ysl
云和恩墨PG技术顾问,PG ACE,中国开源软件推进联盟PG分会系列技术丛书《快速掌握PostgreSQL版本新特性》副主编,中国PG分会认证讲师、恩墨学院PG讲师,PGfans年度MVP,拥有PGCM,MYSQL(OCP8.0), OBCP,OGCA等十多项数据库认证。PG中文社区分享过《PG逻辑复制槽与故障转移》《PostgreSQL15版本新特性解读》PG中国技术大会活动嘉宾。LFAPAC开源布道者,Linux基金会Research Localization伙伴。曾参与《深入理解开源项目办公室》《软件材料清单(SBOM)与网络安全准备度》官方中文版翻译
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【在PostgreSQL基础上openGauss新增的一些优化器相关选项】
此参数设置为正数时意为直接将设置的值作为估算limit的行数,为负数时代表使用百分比的形式设置默认的估算值,负数转换为默认百分比,即-5代表5%。enable_change_hjcost 控制优化器在Hash Join代价估算路径选择时,是否使用将内表运行时代价排除在Hash Join节点运行时代价外的估算方式。enable_index_nestloop 控制优化器对内表参数化索引扫描嵌套循环连接规划类型的使用。cost_weight_index 设置index_scan的代价权重。原创 2025-01-22 00:58:12 · 198 阅读 · 0 评论 -
【GBase 8c V5_3.0.0 分布式数据库常用几个SQL】
以管理员用户 gbase,登录数据库主节点。接数据库,并执行如下 SQL 语句查看连接数。原创 2024-09-13 21:58:02 · 1003 阅读 · 0 评论 -
【GBase 8c V5_3.0.0 分布式数据库常用维护命令】
使用gha_ctl monitor查看节点运行情况(跟dcs的地址和端口)原创 2024-09-13 21:52:11 · 678 阅读 · 0 评论 -
【GBase 8c V5_3.0.0 分布式部署(单机安装)】
GBase 8c数据库分布式形态采用share nothing的分布式架构,计算节点和存储节点分离。节点间通过高速网络进行通信,所有节点都有主从互备,确保系统的极致高可用。本文主要包含GBase 8c V5_3.0.0 分布式部署(单机安装)的简单流程,供测试。GBase 8c分布式数据库实际包含CN、DN、GTM和HA管理组件,各个组件具体介绍如下:CN:协调器,采用完全对等的部署方式。对外提供接口,负责进行SQL解析和优化、生成执行计划,并协调数据节点进行数据查询和写入。在功能上CN上只存储系统的全局原创 2024-09-13 21:50:01 · 1385 阅读 · 0 评论 -
【openGauss/MogDB编写自定义extension】
例如openGauss的函数不支持PARALLEL语法等,有些opengauss不支持的不可以使用,这个需要注意。原创 2024-01-24 09:58:50 · 1171 阅读 · 0 评论 -
【openGauss/MogDB使用mog_xlogdump解析 xlog文件内容】
REPLICA IDENTITY {DEFAULT | USING INDEX index_name | FULL | NOTHING} 调整逻辑复制时写入WAL日志中的信息量,该选项仅在wal_level配置为logical时才有效。当原数据表发生更新时,默认的逻辑复制流只包含主键的历史记录,如果需要输出所需字段更新或删除的历史记录,可修改本参数。//或者不指定事物id,只指定表对应的filenode。//指定事物id,表应的filenode。原创 2024-01-22 12:09:29 · 706 阅读 · 0 评论 -
openGauss/MogDB列存表vacuum DELTAMERGE过程申请的锁
vacuum DELTAMERGE过程,列存表原表,delta表均获取了8级锁,AccessExclusive Lock,除此之外,还有一个relfilenode对应的表,其实是delta表的原表,在vacuum DELTAMERGE过程中,delta表发生了重建,对应的表文件发生了变化。所以我想到了直接从锁入手,AccessExclusiveLock是8级锁,主库申请8级锁时,会将其记录到WAL日志里。原创 2023-12-19 14:29:35 · 499 阅读 · 0 评论 -
【openGauss/MogDB列存表的delta表测试】
列存储格式是OLAP类数据库系统最常用的数据格式,适合复杂查询、范围统计类查询的在线分析型处理系统。cstore列存储的主体数据文件以CU为I/O单元,只支持追加写操作,因此cstore只有读共享缓冲区。CU间和CU内的可见性由对应的CUDESE表(astore表)决定,因此其可见性和并发控制原理与行存储astore基本相同。原创 2023-12-19 14:25:34 · 1209 阅读 · 0 评论 -
【openGauss/MogDB的TPCH测试】
TPC-H是一个决策支持基准(Decision Support Benchmark),它由一套面向业务的特别查询和并发数据修改组成。查询和填充数据库的数据具有广泛的行业相关性。这个基准测试演示了检查大量数据、执行高度复杂的查询并回答关键业务问题的决策支持系统。TPC-H报告的性能指标称为TPC-H每小时复合查询性能指标(QphH@Size),反映了系统处理查询能力的多个方面。这些方面包括执行查询时所选择的数据库大小,由单个流提交查询时的查询处理能力,以及由多个并发用户提交查询时的查询吞吐量。原创 2023-11-20 09:52:23 · 681 阅读 · 0 评论 -
【MogDB/openGauss误删未归档的xlog日志如何解决】
在使用MogDB/openGauss数据库的过程中,有时候大量业务,或者导数据会导致pg_xlog下的日志数量持续增长,此时如果xlog的产生频率太快,而来不及自动清理,极有可能造成pg_xlog目录的打满。如果对数据库的xlog不太了解的时候,可能造成误删未归档的xlog日志,或者更严重地,把对应操作还未写入数据文件的xlog也删除了。原创 2023-11-07 01:04:31 · 928 阅读 · 0 评论 -
【MogDB/openGauss的三种函数稳定性关键字】
在ORACLE里,function有着一个DETERMINISTIC参数,它表示一个函数在输入不变的情况下输出是否确定,只要输入的参数一样,返回的结果一定一样的,以保证函数对于任何输入总是完全相同的方式处理参数,oracle的内置函数 UPPER,TRUNC 等都是 deterministic 函数。因此,在事务中参数一致则结果一致,且只关注函数的最终结果可以标记为immutable,因为它调用函数的次数少,固化了函数的结果,执行计划的代价较小。任何具有副作用的函数的都不稳定的,即使其结果是可预测的。原创 2023-11-07 01:03:31 · 288 阅读 · 0 评论 -
【迁移ORACLE数据到MogDB/openGauss时的字符集问题】
ORACLE数据库在存储数据的时候,有时候会存在这样一种现象,一张表里的数据,既存在UTF8字符的,也存在GBK字符的,同时还有可能存在乱码数据。NLS_CHARACTERSET是数据库字符集,NLS_NCHAR_CHARACTERSET是国家字符集,NLS_LANG 是 Oracle 数据库客户端的一个环境变量。这种问题在于ORACLE对于规定了一种字符集后,对于插入的数据并没有强校验(garbage-in–garbage-out)。原创 2023-11-07 00:53:18 · 543 阅读 · 0 评论 -
【PG如何查看用户拥有的各类对象的操作权限】
在PostgreSQL数据库平时会赋予很多的权限,对于这些权限是否真正赋予,并且对于各个对象,用户到底有着什么权限,有着不同的方式去验证,例如\dp+ , 查询视图,查询函数,或者使用extenson(PG_PERMISSIONS)等。原创 2023-04-10 19:07:56 · 10235 阅读 · 0 评论 -
【openGauss/MogDB的uncommitted xmin问题解决】
但是比较好的一点是,MogDB/openGauss的maintenance模式不需要PostgreSQL那样需要停掉PostgreSQL数据库再去使用。在测试openGauss/MogDB的时候,发现主库查询snapshot.tables_snap_timestamp这个表的时候,一select *,数据库就宕机,而备库是正常的。此外我们根据提示的xmin可以找到对应的是pg_type以及两个索引。在分析的时候,因为是测试环境使用了vacuum full去测试(再使用正常方式登录,去查询这个表。原创 2022-12-12 14:53:31 · 957 阅读 · 0 评论 -
【PostgreSQL/MogDB/openGauss怎样获取表上依赖于该表的视图】
查询语句里的, a.refclassid=1259,这个1259是pg_class的oid,a.classid=2618的2618是pg_rewrite的oid。结果里relnamespace=2200是public这个schema的oid,可以查询pg_namespace得到。因此依赖于public.t1的视图是public.a1。原创 2022-12-12 14:52:33 · 504 阅读 · 0 评论 -
[根据openGauss/MogDB的lwtid查看线程堆栈]
在openGauss/MogDB数据库THREAD_WAIT_STATUS、PG_THREAD_WAIT_STATUS、GLOBAL_THREAD_WAIT_STATUS、LOCAL_ACTIVE_SESSION的几个视图里都有lwtid这一列,他是当前线程的轻量级线程号。也可以根据lwtid找到想分析的一些关键线程,例如一些特殊功能的线程,如WDRSnapshot、ASP、CheckPointer等、或者是在数据库中有长时间在跑的SQL的线程以及需要分析的等待事件对应的线程。原创 2022-09-01 21:40:56 · 421 阅读 · 0 评论 -
[如何编译openGauss对应版本的wal2json.so]
wal2json是逻辑解码插件,使用该插件可以访问由INSERT和UPDATE生成的元组,解析WAL中的内容。本篇文章介绍了如何手动编译openGauss对应版本的wal2json.so。首先,需要一套对应版本数据库的软件和openGauss-server的源码,以及wal2json代码进行编译安装。原创 2022-09-01 21:35:49 · 688 阅读 · 0 评论 -
[使用MogDB Operator在Kubernetes上部署MogDB集群(MogDB Stack)]
本文介绍了如何使用MogDB Operator在Kubernetes上部署MogDB集群自动运维系统,包含MogDB Operator部署,Kubernetes上的MogDB集群创建等。Kubernetes的部署以及Kubernetes里的Operator不在此篇文章赘述,如感兴趣可参考我之前的文章:1.kubeadm部署一主两从的kubernetes集群2.Kubernetes里的Operator安装Kustomize获取压缩包MogDB Operator安装项目在kustomize原创 2022-07-20 23:31:04 · 395 阅读 · 0 评论 -
【openGausss/MOGDB时间消耗相关视图】
数据库版本openGauss/MOGDB-2.1.1一、显示当前用户在各个节点上正在执行的作业的负载管理记录(单位:ms)包含:语句执行前的阻塞时间、语句执行的开始时间、语句已经执行的时间、语句执行预估总时间、语句执行预估剩余时间。语句在数据库节点上的最小执行时间,语句在数据库节点上的最大执行时间,语句在数据库节点上的平均执行时间,语句在数据库节点上的最小CPU时间,语句在数据库节点上的最大CPU时间,语句在数据库节点上的CPU总时间等。select datid,dbname,schem.原创 2022-03-31 14:55:19 · 1077 阅读 · 0 评论 -
【Alertmanager发送告警邮件配置】
Prometheus将数据采集和报警分成了两个模块。报警规则配置在Prometheus Servers上,然后发送报警信息到AlertManger,然后我们的AlertManager就来管理这些报警信息,聚合报警信息过后通过email、PagerDuty、HipChat、Slack 等方式发送消息提示。本文演示通过email发送告警信息。如下为在prometheus已经部署好的情况下,配置Alertmanager邮件发送。一、安装Altermanager软件下载地址为https://pr.原创 2022-03-10 16:43:59 · 5714 阅读 · 0 评论 -
【openGauss/MOGDB Copy支持容错机制】
一、COPY容错机制相关选项MOGDB/openGauss允许用户在使用Copy From指令时指定容错选项,使得Copy From语句在执行过程中部分解析、数据格式、字符集等相关的报错不会报错中断事务、而是被记录至错误表中,使得在Copy From的目标文件即使有少量数据错误也可以完成入库操作。用户随后可以在错误表中对相关的错误进行定位以及进一步排查。主要包括三个主要的选项:LOG ERRORS 若指定,则开启对于COPY FROM语句中数据类型错误的容错机制 LOG ERRORS DAT原创 2022-03-10 16:38:43 · 939 阅读 · 0 评论 -
【openGauss/MOGDB与PG等待事件】
数据库版本:PG12.1 openGauss/MOGDB 2.1.0最近看到了许多关于PG等待事件的文章,对等待事件这部分也有了很大的兴趣。等待事件是一个累计的统计信息,表明一个server process要继续完成作业,必须等待一个时间的结束;因为系统资源有限,那么完成某些工作,所需资源就要轮流使用,那么在这个过程当中,就会产生等待资源的情况。数据库会用不同类型的定义,来描述这个事情,称之为等待事件。openGauss/MOGDB数据库是基于PG研发的,原本PG是C语言,到了open...原创 2022-02-10 14:02:44 · 1393 阅读 · 0 评论 -
【MOGDB/openGauss数据库gs_dump备份脚本及清理】
有客户需要对MOGDB/openGauss进行每天逻辑备份。如下脚本分享给大家。当然专业的备份工具也可以了解一下云和恩墨的BRM备份工具。一、备份脚本1.脚本c.sh (可以改名字)# database dump shell# you should change the GAUSSHOME GAUSSPORT GAUSSDATA DUMP_USER DUMP_PASSWORD#!/bin/bashsource /etc/profilesource /home/omm/.bash_p原创 2022-01-07 17:36:58 · 1751 阅读 · 1 评论 -
【MOGDB/openGauss的dbe_perf.Statement与pgstat.stat文件关系验证】
数据目录的/global下在数据库stop之后会自动生成一个pgstat.stat文件。保存着DBE_PERF_Schema下query记录statement相关的dbe_perf.Statement(获得当前节点的执行语句(归一化SQL)的信息。查询视图必须具有sysadmin权限。数据库主节点上可以看到此数据库主节点接收到的归一化的SQL的全量统计信息(包含数据库节点);数据库节点上仅可看到归一化的SQL的此节点执行的统计信息)、dbe_perf.STATEMENT_WLMSTAT_COMPLEX_R原创 2022-01-04 10:36:55 · 1313 阅读 · 0 评论 -
【MogDB/opengauss的WDR报告(类似于Oracle的awr)】
Oracle的awr报告在日常解决问题中起到了很大的便利,在遇到问题时,我们通常会查看有无对应时间段的快照,生成awr报告并进一步分析。通过分析数据库的状态,资源消耗以及等待事件等初步定位问题,并在此基础上进行验证。在MogDB/opengauss数据库中,也有着这样的“awr”,它叫做——wdr。前提:1.打开参数enable_wdr_snapshotpostgres=# show enable_wdr_snapshot;enable_wdr_snapshot---------------原创 2021-12-29 12:47:10 · 605 阅读 · 0 评论 -
【openGauss线程池相关参数】
一、两个线程池相关参数enable_thread_pool参数说明:控制是否使用线程池功能。该参数属于POSTMASTER类型参数,需要重启生效取值范围:布尔型• on表示开启线程池功能。• off表示不开启线程池功能。默认值:offthread_pool_attr参数说明:用于控制线程池功能的详细属性,该参数仅在enable_thread_pool打开后生效,仅sysadmin用户可以访问。该参数属于POSTMASTER类型参数,需要重启生效取值范围:字符串,长度大于0该原创 2021-12-29 12:46:48 · 1365 阅读 · 0 评论 -
【MOGDB/openGauss与PostgreSQL关于GBK字符集问题】
MOGDB/openGauss 支持server_encoding=GBK。原创 2021-12-28 10:04:04 · 2014 阅读 · 2 评论 -
【MOGDB/openGauss数据库执行计划缓存/失效机制的测试】
1.强制对临时对象使用COMMIT而不是2PCpostgres=# SET enforce_two_phase_commit TO off;SET2.创建测试表并插入测试数据postgres=# CREATE TEMP TABLE tab_test_plancache(q1 int8, q2 int8);CREATE TABLEpostgres=# INSERT INTO tab_test_plancache VALUES(' 123 ',' 456');INSERT 0原创 2021-12-28 10:03:45 · 349 阅读 · 0 评论 -
【MOGDB/openGauss的txid_snapshot 数据类型和相关函数】
txid_snapshot的文本表示为:xmin:xmax:xip_list。 名称 描述 xmin 最早的事务ID(txid)仍然活动。所有较早事务将是已经提交可见的,或者是直接回滚。 xmax 作为尚未分配的txid。所有大于或等于此txids的都是尚未开始的快照时间,因此不可见。 xip_list 当前快照中活动的txids。这个列表只包含在xmin和xmax之间原创 2021-12-28 10:03:01 · 307 阅读 · 0 评论 -
【MOGDB/openGauss索引推荐及虚拟索引】
索引推荐在ORACLE的优化中,可能大家有接触过SQL Tuning Advisor(SQL调优顾问,STA),类似的MOGDB/openGauss的索引推荐(Index-advisor)功能也可以对你的查询进行分析,并提出合理的创建索引的建议。ORACLE的STA输出是以一种意见或者建议的形式,以及对每一项建议和期望效益的理由。该建议涉及对象的统计收集,新索引的创建,SQL语句的重组,或SQL概要的创建。你可以选择该建议来完成SQL语句的调优。MOGDB/openGauss的索引推荐(Index-ad原创 2021-12-28 10:02:21 · 497 阅读 · 0 评论 -
【MogDB/openGauss与PG的repmgr对比】
提到PG的repmgr,大家可能并不陌生,他是现在PG比较流行的一套开源工具,用于管理PostgreSQL服务器集群中的复制管理和故障转移,也就是相当于一个集群管理+HA工具。当前PG的高可用方案,大致有keepalived、pgpool、repmgr、pacemaker+corosync、etcd+patroni等等。其中etcd+patroni和repmgr是目前用的较多的高可用。patroni的话需要至少三个以上且为奇数的 etcd 节点,而且大部分参数都需要通过更改 etcd 中键值来修改。而rep原创 2021-12-27 20:52:42 · 531 阅读 · 0 评论 -
【MogDB/openGauss 生态工具-MTK对glibc版本的解决】
使用MogDB/openGauss 生态工具-MTK(Migration ToolKit) 数据库迁移工具时候,发现报错libc.so.6: version `GLIBC_2.14’ not found出现这种错误表明程序运行需要GLIBC_2.14,但是系统中却并不存在,因此可以先用strings命令查看下系统中的GLIBC版本有问题环境为centos6的环境,最初在centos7环境部署使用时候,并未出现此问题。查看有问题的centos6的系统glibc支持的版本,发现只支持到2.12原创 2021-12-27 20:51:59 · 244 阅读 · 0 评论 -
【openGauss 1.1.0测试:全量备份和恢复&增量备份和恢复】
-------------------------------------全量备份和恢复---------------------------------------------测试用例名称:全量备份和恢复测试用例说明(方法、目的):是否支持在线备份全量备份,验证全量备份后数据恢复正确性和效率,备份期间对性能的影响。测试执行步骤1.–执行备份命令,指定备份路径 如/opt/enmo/openGauss/101/data/backup[omm@enmo backup]$ gs_basebackup原创 2021-12-26 09:51:12 · 694 阅读 · 0 评论