自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(681)
  • 收藏
  • 关注

原创 KingbaseES V8R6等待事件之 lwlock: CSNLogControlLock

一、原理CSN日志是数据库中用于记录事务提交顺序和事务状态的重要日志,为了解决高并发场景下获取快照时的性能瓶颈,引入CSN机制。CSN机制通过为每个非只读事务分配一个XID(事务号),并在事务提交时推进CSN,同时保存CSN与XID的映射关系在CSNLog中。CSNLogControlLock等待事件通常表示某会话需要读取或写入某个事务的CSNlog时,首先需要获取这个LWLOCK锁,即同一...

2024-07-26 11:06:00 471

原创 KingbaseES 数据库WAL日志暴增问题处理

故障现象:kingbase数据库容量不足100G,业务繁忙程度小,但是每天产生112283个WAL日志,每个日志16M,生成约1.7T的归档日志分析过程:思路一:从数据库日志入手,分析过程如下:sys_log日志:2024-06-02 23:54:05.497 CST 31303 61b580b0.7a47 18224 2021-...

2024-07-26 11:06:00 518

原创 KingbaseES 集群启停系列 04 -- 集群启动无法加载VIP

案例说明:KingbaseES V8R6集群在使用sys_monitor.sh启动集群时,将会在主库节点加载vip;生产现场,在启动集群时,加载vip失败,本案例详细描述了问题解决的过程。适用版本:KingbaseES V8R6操作系统: kylin信安问题解决思路:1. 通过ping测试vip地址是否被占用。2. 执行sh -x sys_monitor.sh start...

2024-07-26 11:05:00 355

原创 KingbaseES 集群运维典型案例 03 --“双主” sys_rewind恢复机制

案例说明:主库主机系统重启,触发failover切换,原主库系统启动后,数据库服务被启动,出现“双主”,使用“repmgr node rejoin --force-rewind”恢复集群。通过本案例了解,集群“双主”产生的原因及解决方案,并熟悉sys_rewind在集群恢复中的应用。数据库版本: KingbaseES V8R6一、集群架构如下所示,集群原节点状态:[kingbase@n...

2024-07-26 11:05:00 414

原创 KingbaseES 更改 WAL 日志文件大小

一、引言WAL日志的目的:WAL(Write-Ahead Logging)是KingbaseES数据库中的一个关键特性,用于确保在数据库崩溃或故障后能够恢复数据。WAL日志记录了数据库的所有更改,这样即使数据库突然宕机,也可以从WAL文件中恢复数据到一致性状态。命令的功能:sys_resetwal命令用于重置WAL日志,它可以删除现有的WAL文件,并可选地重置存储在sys_control文件...

2024-07-26 11:05:00 518

原创 KingbaseES 自定义操作符使用示例

本文详细介绍了KingbaseES中在兼容适配过程中,当遇到不支持的操作符,如何通过自定义方式解决兼容适配问题。Kingbase自定义操作符语法和用例如下:用例数据:create table demo(id numeric(10,5));insert into demo values(1.1);insert into demo values(0);insert into demo ...

2024-07-26 11:05:00 373

原创 KingbaseES 集群运维典型案例 02 --“双主”故障解决案例

案例说明:对于主备流复制集群,在运行过程中,因为主备节点之间网络故障、或者failover切换后原主库误启动等,会造成集群“双主”的故障,导致应用数据被写入到不同的主机,数据分裂。本案例描述了在生产环境出现“双主”故障时的解决方案。适用版本:KingbaseES V8R6操作步骤:1、查看主备库数据库服务进程及集群状态。2、通过控制文件以及业务数据状态确定最新的主库。3、确定新主库...

2024-07-26 11:05:00 653

原创 KingbaseES V8R6等待事件之 lock: transactionid

等待事件含义Lock:在数据库管理系统中,锁是用来确保数据完整性和一致性的重要机制。当一个事务需要修改数据时,它会请求一个锁来防止其他事务同时修改相同的数据,从而导致数据不一致。transactionid:这通常是一个唯一标识符,用于区分和跟踪数据库中的不同事务。每个事务都有一个唯一的ID,这样系统就可以知道哪些操作属于同一个事务,哪些操作属于不同的事务。等待:当一个事务尝试获取一个锁但发...

2024-07-26 11:05:00 378

原创 KingbaseES 如何修改已有数据的列为非空

针对已有的列,如何修改为非空,并且指定默认值?熟悉Oracle的DBA都知道,如果在将列从可空修改为非空时,必须确保已有的列不含有空值,如:SQL> create table tab01(id integer,name varchar(100),city varchar(100));Table created.SQL> insert into tab01(id) val...

2024-07-26 11:05:00 321

原创 KingbaseES 如何做到增加非空列而无需重写表

熟悉Oracle的DBA就知道,Oracle早期11g版本在增加非空列(default or not null default)时,需要回写表,也就是需要针对每一行的记录进行修改。Oracle12c 开始,修改或增加非空字段都无需更新数据表。对于KingbaseES ,增加非空列同样不需要更新数据,alter table操作可以快速返回,将对业务的影响降低到最小。KingbaseES是如何做到的...

2024-07-26 11:05:00 386

原创 KingbaseES 集群节点管理系列 01 -- repmgr standby clone 与 sys_basebackup 创建备库

案例说明:KingbaseES V8R6集群可以通过执行'repmgr clone standby' 创建备库,在一些场景,执行clone命令出现故障时,可以通过执行sys_basebackup命令分析和排除故障。本案例详细描述两种方案创建备库的区别。适用版本:KingbaseES V8R6节点信息:[kingbase@node202 ~]$ cat /etc/hosts192.16...

2024-07-26 11:05:00 398

原创 KingbaseES 集群运维典型案例 01 -- 主库异常failover切机分析

案例说明:某生产环境,KingbaseES V8R6集群主库系统异常触发主备failover切换,集群切换成功,客户需要了解触发failover切换的原因。本案例通过日志分析,详细描述了触发此次集群failover切换的原因。适用版本: KingbaseES V8R6集群节点信息:x.x.x.43 原主库 x.x.x.41 原备库操作系统:Kylin Sever 10问题分析...

2024-07-26 11:05:00 365

原创 KingbaseES 数据库无响应问题分析

一、背景及理论阐述某项目数据库系统是集群环境,主库业务卡顿,应用反馈部分业务无法正常进行。在操作系统中,物理内存(RAM)是有限的资源,当内存需求超过物理内存的容量时,操作系统会使用页面调度机制来管理内存资源。页面调度涉及将不常用的内存页面(Page)移到磁盘上的交换空间(Swap Space)或文件缓存中,以释放物理内存供其他进程使用。当需要再次访问这些页面时,它们会被从磁盘中读回内存。...

2024-07-26 11:05:00 512

原创 KingbaseES 对象状态规则总结

KingbaseES 的PLSQL对象包括函数、存储过程、触发器、包、包体、对象类型、对象类型体和匿名块,其中匿名块即用即销,不具有状态属性,SQL中存在依赖的常见对象是表,视图,索引,自定义类型,自定义操作符等等。在使用编码过程会存在相互引用和被引用,就会导致对象的增删改无法“顺利”进行,本文针对V9版本开始支持的对象状态功能进行说明。1,配置参数1.1 配置说明KingbaseES的P...

2024-07-26 11:05:00 559

原创 Oracle和KingbaseESV8R6数据库控制文件多路复用

**## 前言数据库设计控制文件多路复用的理念和原理主要体现在提高控制文件的安全性和避免数据库单点故障的风险。首先,控制文件在Oracle和KingbaseES数据库中扮演着非常重要的角色,它包含了数据库的结构信息、数据文件和日志文件信息以及数据库中元数据信息等。控制文件是数据库的大脑,没有控制文件或者控制文件损坏,数据库将无法正常运行。因此,保护控制文件的安全性至关重要。其次,控制文件多...

2024-07-26 11:04:00 355

原创 KingbaseES 等待事件之DataFileRead

等待事件含义IO:DataFileRead等待事件发生在会话连接等待后端进程从存储中读取所需页面,原因是该页面在共享内存中不可用或无法找到。所有查询和数据操作(DML)操作都访问缓冲池中的页面,语句包括SELECT、UPDATE和DELETE等。例如,UPDATE可以从表或索引中读取页面。如果请求或更新的页面不在共享缓冲池中,则此读取可能导致IO:DataFileRead事件。因为共享缓冲...

2024-07-26 11:04:00 401

原创 KingbaseES数据库禁止某用户连接到数据库

一、权限介绍KingbaseES数据库中的权限控制主要分为两个层次:实例级别和数据库级别。实例级别的权限由sys_hba.conf文件控制,而数据库级别的权限则由数据库内部的权限系统控制。对于数据库以及实例的权限控制,这两者权限控制可以理解为粗粒度,细粒度。实例级别权限:这主要通过sys_hba.conf文件进行配置,用于控制哪些用户可以连接到KingbaseES实例,以及他们可以使用哪种认...

2024-07-26 11:04:00 423

原创 KingbaseES 集群部署系列 04 -- 单实例在线扩展流复制集群架构

案例说明:KingbaseES V8R6单实例生产环境需求在线扩展为流复制集群架构,本案例描述了从单实例在线扩展为流复制集群的过程。(本案例在通用机环境下测试,专用机环境可参考)适用版本:KingbaseES V8R6集群节点信息:[kingbase@node201 bin]$ cat /etc/hosts.......192.168.1.201 node201 # Primar...

2024-07-26 11:04:00 525

原创 KingbaseES 集群访问连接系列 01 -- libpq动态库加载故障

案例说明:KingbaseES V8R6集群,一主多备架构,其中一个备库节点,在使用‘repmgr cluster show’查看集群状态时,出现"conninfo": invalid connection option "tcp_user_timeout"错误,其余节点正常。故障现象如下所示:适用版本: KingbaseES V8R6问题解决思路:分析问题现象(现场错误及相关日志)。...

2024-07-26 11:04:00 345

原创 KingbaseES 手工修复元数据

问题现象在数据库运维中,查询到某个表时,报错信息如下:ERROR: catalog is missing x attribute(s) for relid xxx或者错误: catalog 遗失了 relid为 xxx 的 x 个属性报错原因这个错误通常与系统表(如 sys_class, sys_attribute 等)的元数据不一致有关。表明系统目录(catalog)中的...

2024-07-26 11:03:00 444

原创 KingbaseES 数据库创建索引慢的可能原因

1.表大小如果表太大,数据很多,索引创建的时候,会导致创建索引的时间很慢。如果表很大,可以考虑重新设计表结构或拆分表。还可以考虑使用分区表,使子分区的数据减少,创建分区表也可以使索引变小,增加索引创建速度,有助于查询效率。2.索引类型不同类型的索引建立的速度可能会有所不同,因为存储的结构不一样。例如,B-tree索引通常比GiST索引建立得更快。不同的索引策略适用于不同的场景,选择合适...

2024-04-03 17:03:00 1013

原创 KingbaseES复制冲突中谁阻塞walreplay

背景回顾一下流复制冲突相关参数:hot_standby_feedback: 从库反馈给主库快照, 主库vacuum时不回收最老快照之后产生的垃圾,注:备库长查询将导致主库表膨胀。vacuum_defer_cleanup_age: 当触发vacuum时,延迟指定事务后触发。recovery_min_apply_delay: 如果将此参数设置为5分钟,则只有在备库时间至少比主库提交时间多五分...

2024-04-03 17:03:00 548

原创 KingbaseES数据库权限简写说明

前言为了方便,我们测试环境经常使用system用户执行测试,它拥有最高权限。角色基本上是用户和组的概念。你可以以角色身份登录,并且一个角色可以属于另一个角色。每个角色都有一个类似的属性,指示你是否可以作为该角色登录,以及该角色是否从所属角色继承权限。你可以使用命令将角色添加到另一个角色的成员中。一个KES数据库实例可以拥有多个数据库。一个数据库可以拥有多个模式。一个模式可以拥有多个表。对...

2024-04-03 17:03:00 683

原创 执行计划中的NestLoop对比HashJoin对比

执行计划中的nestloop join 对比hash join两种join 方式的定义NESTE LOOP:在嵌套循环中,内表被外表驱动,外表返回的每一行都要在内表中检索找到与它匹配的行。两个概念:驱动表(外部表)和内部表,这里用表这个次其实不是很准确,外部表和内部表可以是某张表的结果集。在执行计划中如何区分外部表和内部表。我的通常习惯是安装前后顺序,nestloop join 里面位于...

2024-04-03 17:03:00 1140

原创 KingbaseES 数据库IO优化方向总结

前言数据库中的IO性能是优化中的重中之重,根据木桶原理,解决了IO这个最容易引起业务堵塞的问题,就能解决绝大部分性能问题。下面从几个方面总结一下I/O优化问题。第一,使用相对速度快的高性能存储设备。一般会考虑使用固态硬盘 (SSD) 或 RAID 阵列以获得更快的读写速度。高性能低延迟的集中式SAN存储是传统大型数据库的主要存储介质,不过,本地化部署数据库中,使用本地存储可以降低成本,本...

2024-04-03 17:03:00 1000

原创 KingbaseESV8R6等待事件之LWLockBuffer_IO

说明当并发会话尝试访问同一页面时,等待其他进程完成其输入/输出(I/O)操作时,就会发生LWLock:BufferIO事件。其目的是将同一页读取到共享缓冲区中。等待事件发生过程每个shared buffer都有一个与LWLock:BufferIO等待事件关联的I/O锁,每次都必须在共享缓冲池外检索块。此锁用于处理多个会话,这些会话都需要访问同一个块。必须从共享缓冲池外部读取此块,共享缓冲...

2024-04-03 17:02:00 295

原创 PLSQL涉及对象类型能力域的一次代码改造案例

文章概述本文通过某项目一次针对对象类型中一些不支持的功能项进行代码改造为契机,重新回顾和熟悉了对象类型继承,子父对象转换,函数重载等概念和应用,包括集合类型的一些编码应用场景。通过这个案例可以快速帮助我们熟悉和深刻对PSLQL对象类型和集合类型能力域的掌握。一,问题背景相对于Oracle的PLSQL,早期KES的PLSQL在对象类型功能上暂时还缺失以下功能:1,对象类型的继承:UNDE...

2024-04-03 17:02:00 246

原创 KingbaseES删除重复数据的方法

前言Oracle数据库去除重复数据方法一般根据rowid进行去重,KingbaseES数据库如何去重呢?可以根据ctid去重。我们使用大数据量测试,因为一般生产环境数据量还是蛮大的。测试创建一张测试表,并插入一定量的重复数据,数据量21万,其中重复数据1万。create table del(id int, name varchar(255)); create table del2 (...

2024-04-03 17:02:00 259

原创 KingbaseES V8R6集群运维案例之---同城双中心switchover案例

KingbaseES V8R6集群运维案例之---同城双中心switchover案例案例说明:在同城双中心执行switchover在线切换后,双中心架构保持不变。适用版本:KingbaseES V8R6集群架构:一、切换前集群节点状态如下所示,切换前集群的主库(Primary)位于同城灾备中心,现在执行switchover在线切换,将主库切换到生产中的node1节点。[kingbas...

2024-04-03 17:02:00 294

原创 KES中数组和集合类型的区别

文章概要:本文属于学习总结系列,总结了一下数组类型和PL/SQL中集合类型及其使用区别。一,集合(collection)数据它是存放一组数据类型相同的数据,是一组相同类型元素的集合集合数据类型分三类:1).关联数组(index by tables)元素下标:binary_integer、pls_integer、varchar2字符串等作为下标个数限制:无限制初始化:不需要2)....

2024-04-03 17:02:00 348

原创 如何查看KingbaseES数据库占用操作系统内存情况

当遇到数据库内存告警,并且操作系统内存使用不足,需要分析内存占用的方法。KingbaseES数据库使用操作系统缓存机制,大量的内存很可能被BUFFER/CACHE占用了。从free命令可以看到总共有2.5G多内存,使用了291MB,free剩下1.7GB多,BUFF/CACHE占了474MB。available有1.3GB多,当前这台数据库服务器的内存是充足的。从这个例子上,我们看free...

2024-04-03 17:02:00 571

原创 KingbaseES BitmapScan 解读

bitmap scan 解读什么是bitmap scan?bitmap scan是pg中表的扫描计划的一种。bitmap scan的作用就是通过建立位图的方式,将index scan 回表过程中对页访问的随机性IO转换为顺行性行为,从而减少查询过程中IO的消耗。其优化理念是通过bitmap 的生成过程中增加内存和CPU字段消耗来减少IO消耗。bitmap scan 如何工作?bitm...

2024-04-03 17:01:00 891

原创 KingbaseES V8R6集群部署案例之---‘initdb: error: cannot be run as root’故障

案例说明:在通用机环境下,通过脚本部署集群,出现“initdb: error: cannot be run as root”故障。适用版本: KingbaseES V8R6一、问题现象通用机环境,通过脚本部署集群,出现以下故障:在对主库执行initdb初始化实例时,是root用户执行,而不是默认的kingbase用户:二、问题分析1、查看install.conf用户配置如下所示,配置文...

2024-04-03 17:01:00 619

原创 KingbaseES 授予schema下对象权限以及schema空间限额

授予schema下对象权限创建一个名为schematest的schema:CREATE SCHEMA schematest;创建一个新的用户,名为test02用户:创建一个新的用户,名为test02用户:如果不对test02用户授予任何权限,切换到test02用户执行craete table命令会提示权限不足下面授予名为 test02 的用户对 schematest的所有权限:此命令...

2024-04-03 17:01:00 285

原创 KingbaseES 兼容 MySQL 数据库参数sql_mode配置

KingbaseES数据库,已经对Mysql数据库进行了功能和使用方面的兼容。针对sql_mode配置使用情况,也做了相关的兼容适配,在最新kes的mysql数据库模式中,sql_mode参数已经对ONLY_FULL_GROUP_BY,ANSI_QUOTES,STRICT_ALL_TABLES这三个参数的使用,进行了语法和功能上的兼容。下面介绍KingbaseES中对上述三个配置项的使用。-...

2024-04-03 17:01:00 1192 1

原创 KingbaseES 为什么select主键列不走索引

背景有客户提出一个问题。 一个类似这样的SQL语句,select count(id) from 为什么执行计划用全表扫,不用索引。id列上有主键。分析test=# explain (analyze, buffers ) select count(id) from t1; QUERY PLA...

2024-04-03 17:01:00 406

原创 KingbaseESV8R6中一个报错:tuple concurrently updated

前言前几天同事在生产环境遇到的一个报错:tuple concurrently updated从字面意思看是行的并发争用。这个问题原因是数据库更新系统表时产生了争用,所以不同session不能并发更新系统表。测试窗口1,不提交事务begin;truncate t1;窗口2,因为无法更新系统表信息,授权语句无法执行成功,卡主grant select on all tables in...

2024-04-03 17:00:00 466

原创 KingbaseES V8R6集群运维案例之---备节点恢复为单实例库

KingbaseES V8R6集群运维案例之---备节点恢复为单实例库案例说明:在生产环境中,手工将集群节点恢复为单实例节点,操作可以分为两步。第一步,先将节点从repmgr管理中注销,脱离集群的管理;第二步,从流复制中拆分节点,成为单实例节点。适用版本: KingbaseES V8R6集群架构:ID | Name | Role | Status | Upstream | ...

2024-04-01 15:34:00 600

原创 KingbaseES V8R6集群案例之---同城双中心集群部署

案例说明:本案例描述了在KingbaseES V8R6下部署同城双中心集群的过程,通过脚本的方式执行执行部署,部署方式和普通集群脚本部署基本一致。适用版本: KingbaseES V8R6集群架构:[kingbase@node101 ~]$ cat /etc/hosts192.168.1.101 node1192.168.1.102 node2192.168.1.103 ...

2024-04-01 15:34:00 446

原创 KingbaseES V8R3集群运维案例---主库OOM故障分析

案例说明:KingbaseES V8R3集群,主库数据库OOM,产生core,请帮忙分析。数据库内存64Gb,为华为云虚拟机,无swap。适用版本: KingbaseES V8R3一、问题分析1、查看sys_log数据库OOM信息PortalMemory: 8192 total in 1 blocks; 7888 free (0 chunks); 304 used PortalH...

2024-04-01 15:34:00 420

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除