05 2022 档案
摘要:背景 有这样一个案例。客户备库意外宕机,从集群日志只看出发生了主备切换,备库一直持续恢复备库没有成功,从数据库日志看到如下报错: terminating connection because of crash of another server process DETAIL: The kingbas
阅读全文
摘要:一、前言 对于含有union , group by 等的视图,我们称之为复杂视图。 这类的视图会影响优化器对于视图的提升,也就是视图无法与父查询进行合并,从而影响访问路径、连接方法、连接顺序等。本文通过例子,给大家展示PostgreSQL这类问题及针对该问题的优化方法。 二、Union 视图的优化
阅读全文
摘要:前言 对于多列分区,可以选择单级多列的范围分区,也可以选择范围加子分区的方式。但二者在不同场景下对于性能是有差异的,这里的性能差异主要是分区裁剪引起的差异。 例子 创建两张分区表,采取不同的分区策略: create table t1_part_ranage(id1 integer,id2 integ
阅读全文
摘要:前言 Oracle 在对分区做DDL操作时,会使分区全局索引失效,需要加上关键字update global indexes。KingbaseES 同样支持全局索引。那么,如果对分区表进行DDL操作,那全局索引是否会失效了? 测试验证 1、创建测试数据 create table t1_part(id
阅读全文
摘要:一、什么是扩展统计 扩展统计对象, 追踪指定表、外部表或物化视图的数据。 目前支持的种类: 启用n-distinct统计的 ndistinct。 启用功能依赖性统计的dependencies。 启用最常见的值列表的mcv。 本文仅讨论n-distinct统计信息,在优化器中的作用。手工修改统计信息,
阅读全文
摘要:数据脱敏,指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。 KingbaseES主要提供动态数据脱敏功能。 动态数据脱敏(Dynamic Data Masking)是与生产环境紧密关联的,访问敏感数据时实时地进行脱敏,主要用于直接访问生产数据的场景,在屏蔽敏感信息的同时也保证
阅读全文
摘要:今天我们要探讨的是 custom执行计划和通用执行计划。这一技术在 Oracle中被称为绑定变量窥视。但 Kingbase中并没有这样的定义,更严格地说,Kingbase叫做custom执行计划和通用执行计划。 什么是custom执行计划,什么是通用执行计划,我们先来看一个例子,我创建了一个1000
阅读全文
摘要:案例说明: 1、对于集群中的wal日志,除了需要在备库执行recovery外,在集群主备切换(switchover或failover)时,sys_rewind都要读取wal日志,将数据库恢复到一致性状态。 2、对于集群主备库中的wal日志,在清理时,经过测试,理论上在checkpoint所在的wal
阅读全文
摘要:1、前言 PostgreSQL 聚合算法有两种,HashAggregate and GroupAggregate 。我们知道GroupAggregate 需要对记录进行排序,而 HashAggregate 则无需进行排序,通常 HashAggregate 要快很多。 但是,我们经常会看到优化器使用
阅读全文
摘要:**案例说明:** 用户生产环境在执行sys_rman备份时,出现“current time may be rewound”错误,此案例复现了此错误。对于数据库环境,在使用前必须保证系统时间的正确性。如果数据库创建后,将系统时间修改为创建数据库之前的时间,在运行过程中将有可能导致新老事务判断及事务一
阅读全文
摘要:1、前言 在处理用户问题过程遇到一个问题。用户通过pg_dump导出 bytea 对象时,当行的大小超过 1G时,会报错: [v8r6c5b41@dbhost01 ~]$ sys_dump -t t1_bytea -f 1.dmp -U system testsys_dump: error: Dum
阅读全文
摘要:作为现代关系数据库中,KingbaseES带有许多用于微调的参数。需要考虑的领域之一是KingbaseES应该如何记录其活动。日志记录在Kingbases数据库管理中经常被忽略,如果不被忽略,通常会被错误地设置。发生这种情况是因为大多数情况下,日志记录的目的尚不清楚。当然,日志记录的根本原因是众所周
阅读全文
摘要:背景 从上下级关系表中,任意一个节点数据出发,可以获得该节点的上级或下级。CTE的递归语法,或者 connect by 与 start with的 查询语法,能够实现这个需求。 当我们需要制作上下级关系的数据时,也可以使用CTE的递归语法。 举例 一个父节点拥有随机数量的子节点,通过控制层级数和随机
阅读全文
摘要:一、概述 KingbaseES可以对用户口令与用户占用资源进行必要的管理。其管理方式,在这里与Oracle数据库进行参考比较。 KingbaseES 使用扩展插件建立的系统参数,这组参数可以对数据库资源使用进行限制。 口令有效期,单位是天,0表示无限,默认值是 30 ALTER SYSTEM SET
阅读全文
摘要:对大表进行分区,但避免长时间锁表 假设您有一个应用程序,该应用程序具有一个巨大的表,并且需要始终可用。它变得如此之大,以至于在不对其进行分区的情况下对其进行管理变得越来越困难。但是,您又不能使表脱机以修改为分区表。 这是处理问题的秘诀。它不一定适用于所有情况,特别是具有非常重的写入负载的表,但它可能
阅读全文
摘要:有时,KingbaseES数据库需要在单个或最少的步骤中导入大量数据,这通常称为批量数据导入。其中数据源通常是一个或多个大文件,这个过程有时可能非常慢。 造成性能不佳的原因有很多:索引、触发器、外键、GUID 主键,甚至预写日志 (WAL) 都可能导致延迟。 在本文中,我们将介绍一些将数据大容量导入
阅读全文
摘要:背景 不久前,遇到过一个问题。KingbaseES数据库主机系统触发OOM现象是数据库进程被KILL, 数据库进入crash然后restart(when restart_after_crash=on). 导致OOM的原因很多, 当然要具体情况,具体分析。从数据库层面分析内存分为共享内存(shared
阅读全文
摘要:在层次查询中,如果想让“亲兄弟”按规矩进行升序排序就需要使用ORDER SIBLINGS BY 这个特定的排序语句,若要降序输出可以在其后添加DESC关键字。 通过这个实验给大家展示一下这个“亲兄弟”间的排序功能。 1.回望关系“树”,这棵树中的B和C是亲兄弟,F和G是亲兄弟。注意,D和E不是亲兄弟
阅读全文
摘要:案例说明: 在通过sys_archivecleanup工具手工清理wal日志时,在control文件中查询的检查点对应的wal日志是“000000010000000000000008”,但是在执行清理时,误将“000000010000000000000009”以前的wal日志都被清理,在启动数据库时
阅读全文
摘要:数据库版本: test=> select version(); version KingbaseES V008R006C005B0054 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46),
阅读全文
摘要:WAL是Write Ahead Log的简写,和Oracle的redo日志类似,在R3版本存放在data/sys_log中,R6版本以后在data/sys_wal目录,在数据库访问过程中,任何对数据块的修改都会记录到wal日志,并写入到wal文件保存到磁盘,wal日志可用于数据库的实例恢复和数据恢复
阅读全文
摘要:对于Oracle,对于数据修改的操作通过存储过程处理,而对于函数一般不进行数据修改操作。同时,函数可以通过 Select 进行调用,而存储过程则不行。 一、对于volatile 函数的行为 1、Oracle 行为 创建函数: create or replace function fun01 retu
阅读全文
摘要:对于数据库系统的并发控制,KingbaseES采用MVCC(多版本并发控制)进行处理。 这种机制有一个缺点,就是随着时间的推移,数据文件中积累的dead tuples会越来越多。 怎么去清理这些dead tuples,这个时候就需要vacuum处理。 下面主要介绍vacuum清理dead tuple
阅读全文
摘要:**案例说明:** 现有一生产环境,出现了集群无法访问的故障,需要分析集群down原因,后分析发现是因为网关地址连通故障,导致集群down,无法对外提供访问。KingbaseES V8R3集群通过节点和网关的连通性,判断节点之间网络状态;如果所有节点都无法和网关连通,集群将判断出现网络故障;早期版本
阅读全文
摘要:背景 对于多数数据库,dba技能之一就是查找锁。锁的存在有效合理的在多并发场景下保证业务有序进行。下面我们看一下KingbaseESV8R6中查找阻塞的方法。 1、找到"被阻塞者",获取被堵塞的PID select distinct pid from pg_locks where not grant
阅读全文
摘要:Oracle日期时间类型有两类,一类是日期时间类型,包括Date, Timestamp with time zone, Timestamp with local time zone。另一类是Interval类型,主要有Interval year to month 和Interval day to s
阅读全文
摘要:KingbaseES支持JSON和JSONB。这两种类型在使用上几乎完全一致,主要区别是 JSON类型把输入的数据原封不动的存放到数据库中。JSONB类型在存放时把JSON解析成二进制格式。 JSONB支持在其上建索引,而JSON不能,这是JSONB的一个很大的优点。 JSON中会保留多余的空格,保
阅读全文