随笔分类 - 数据库运维
摘要:索引膨胀 对于索引,随着业务不断的增删改,会造成膨胀,尤其Btree索引,也会涉及索引分裂、合并等,导致索引访问效率降低、维护成本增加。另外,索引页的复用与HEAP PAGE不一样,因为索引的内容是有序结构,只有符合顺序的ITEM才能插入对应的PAGE中,不像HEAP TUPLE,只要有空间就可以插
阅读全文
摘要: 案例说明: 在kylin系统下数据库启动出现“could not open shared memory segment xxxx"的故障,故障如下所示: 适用版本: KingbaseES V8R3/R6 问题分析: 1、 此问题涉及到share memory segment,查看内核参数配置sy
阅读全文
摘要: 案例说明: 如下图所示:KingbaseES服务进程结构 KingbaseES使用客户端/服务器的模型。 对于每个客户端的连接,KingbaseES主进程接收到客户端连接后,会为其创建一个新的服务进程。 KingbaseES 用服务进程来处理连接到数据库服务的客户端请求。 该进程负责实际处理客户
阅读全文
摘要:背景 如果会话在事务中停留的时间过长,则允许自动终止空闲会话。可以由配置参数idle_in_transaction_session_timeout 事务处于空闲状态的时长,它有助于防止被遗忘的交易事务,避免长期持有锁,防止vacuum清理时间很长。 而且对于长时间不释放的连接会话,它所占用的本地内存
阅读全文
摘要:前言: 我们知道Oracle 可以通过create index online 在线创建索引,而不影响其他会话修改数据,但Oracle 实际在online 创建索引的最后一步,实际还是需要进行锁升级,申请表级的S锁,因此,最后还是有可能堵塞其他会话。而KingbaseES 的两阶段创建索引的机制,则不
阅读全文
摘要:等待事件含义 当会话将数据块与共享缓冲池中的缓冲区关联时,会发生此等待事件。 类似Oracle cbc闩锁的是一种Kingbase的轻量级锁lwlock,这个锁的名字在不同数据库版本中可能有所不同,我们统一称之为buffer_mapping(BufMappingLock),这个轻量级锁用于HASH
阅读全文
摘要:前言 等待事件是排查数据库性能的指标之一。简单理解,cpu在处理业务时由于业务逻辑,和不可避免的数据库其他原因造成的前台进程等待,这里的等待事件包含buffer类,io类,以及网络类等等,当我们遇到等待事件,这往往说明数据库性能存在问题,当然也要通过KWR报告去分析,等待事件占用DBtime的时间占
阅读全文
摘要:案例说明: KingbaseES 数据库支持用户自定义表空间的创建,并建议表空间的文件存储路径配置到数据库的data目录之外。本案例复现了,当用户自定义表空间存储路径配置到data下时,出现的故障问题。 适用版本: KingbaseES V8R3 Tips: 本次案例复现采用的是Kingbase
阅读全文
摘要:背景 书接上文,我们很好的理解了xmin和xid的区别。我们继续上文《KingbaseESV8R6不同隔离级下xmin的区别》来讨论 snapshot too old 的功能。 当kingbaseES中有事务长时间持有backend_xmin,就会通过参数old_snapshot_threshold
阅读全文
摘要:背景 sys_stat_activity视图中用两个字段表示: backend_xid表示事务开始需要申请的事务id backend_xmin表示一个事务快照,表示当前数据库中最小的正在运行的事务号,这个快照有可能是很久之前申请过的快照号,如果事务不结束,那么这个快照号一直保留,这符合MVCC特性,
阅读全文
摘要: 案例说明: 在CentOS 7上安装KingbaseES V8R6C006数据库后,启动Kstudio图形界面启动失败,gtk动态库加载失败,安装gtk相关动态库后,问题解决。 适用版本: KingbaseES V8R6C006 故障现象: 启动Kstudio: 问题分析: 加载动态库: [ki
阅读全文
摘要:背景 书接上文 KingbaseES应对表年龄增长过快导致事务回卷 ,有些特殊业务场景不能靠全局的autovacuum方法,例如大型数据库系统,频繁做update的系统,还有上文提到的做实时数据同步的系统,这个系统需要保证每条事务都单独提交,这些系统都有一个特点就是事务号消耗非常快、死亡元组增长速度
阅读全文
摘要:背景 前几天碰到这样一个场景,在KingbaseES数据库当作数据同步节点。其特点是接收过来的数据量巨大,其更新超级频繁,最大的数据库达到6TB.这还不是主要的,主要导致问题发生原因是同步数据库有很多重复数据,为了保证准确性,现在做法的每条数据独立一个事务去完成,这就导致保证同步速度的情况事务age
阅读全文
摘要:背景 前几天碰到一个问题,现场并发很高,数据量很大(6T),主备库经常出现临时文件过多。 临时文件概念: 当私有进程buffer不够用时,会将buffer内容dump到tempfile供数据库正常sql使用。常见的几个功能场景:ExecSorts、ExecHashJoin、ExecMergejoin
阅读全文
摘要:作为现代关系数据库中,KingbaseES带有许多用于微调的参数。需要考虑的领域之一是KingbaseES应该如何记录其活动。日志记录在Kingbases数据库管理中经常被忽略,如果不被忽略,通常会被错误地设置。发生这种情况是因为大多数情况下,日志记录的目的尚不清楚。当然,日志记录的根本原因是众所周
阅读全文
摘要:一、概述 KingbaseES可以对用户口令与用户占用资源进行必要的管理。其管理方式,在这里与Oracle数据库进行参考比较。 KingbaseES 使用扩展插件建立的系统参数,这组参数可以对数据库资源使用进行限制。 口令有效期,单位是天,0表示无限,默认值是 30 ALTER SYSTEM SET
阅读全文
摘要:背景 不久前,遇到过一个问题。KingbaseES数据库主机系统触发OOM现象是数据库进程被KILL, 数据库进入crash然后restart(when restart_after_crash=on). 导致OOM的原因很多, 当然要具体情况,具体分析。从数据库层面分析内存分为共享内存(shared
阅读全文
摘要:案例说明: 在通过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日志可用于数据库的实例恢复和数据恢复
阅读全文