- 博客(42)
- 资源 (4)
- 收藏
- 关注
原创 软件兼容性与可移植性:核心差异一文讲透
本文清晰区分了软件质量评估中的“兼容性”与“可移植性”概念。兼容性关注软件在既定环境下与其他元素的协同共存能力(如数据格式互通、软硬件协作),如同"合租社交";可移植性则强调软件跨环境迁移的适应能力(如平台无关架构、代码可移植性),好比"搬家迁移"。通过生活比喻、多维对比和视频编辑软件实例,文章指出:兼容性解决"与万物和"的合作问题,可移植性解决"于诸域行"的迁移问题。理解这一区别对软件设计和测试至关重要。
2025-12-11 09:08:56
1148
原创 PostgreSQL 页剪枝(Page Pruning)技术详解:堆页面清理与空间回收机制
PostgreSQL中的"页剪枝"是一种轻量级的页面清理机制,它会在访问堆页面时自动清理掉对所有事务都不可见的旧版本元组,并将零散空闲空间整理成连续块。这种机制主要发生在读写操作过程中,不需要专门调用,能有效减少页内碎片、降低堆膨胀,并提高后续扫描效率。与全局性的VACUUM操作不同,页剪枝仅作用于当前页面,不会更新可见性映射和空闲空间映射,回收的空间主要服务于页内更新。通过示例可见,页剪枝会保留已清理元组的指针但标记为"dead",当索引扫描首次遇到这些无效位置时,
2025-09-05 09:10:28
1084
原创 PostgreSQL FPW(Full Page Write)机制解析:保障数据完整性的双刃剑
PostgreSQL的Full Page Write(FPW)机制通过将首次修改的8KB数据页完整写入WAL,防止操作系统部分写入导致的页面损坏,确保崩溃恢复可靠性。FPW虽然会增加WAL写入量(8.1MB vs 100KB),但能避免数据永久性损坏。除非存储系统能保证8KB原子写并具备完整硬件保护,否则不建议关闭FPW。新版本可通过wal_compression等优化FPW性能。该机制是数据库在非原子写硬件上的关键安全保障。
2025-07-31 09:18:22
850
原创 金仓KingbaseES删库跑路?别慌!kdb_flashback闪回技术挽救误删数据
金仓数据库的kdb_flashback插件提供了三种数据闪回技术应对误操作:1)闪回回收站可恢复误删表,通过RECYCLEBIN查看和FLASHBACK TABLE命令还原;2)闪回查询支持基于时间戳或CSN查询历史数据快照,需提前开启track_commit_timestamp配置;3)闪回表功能可将整表回滚到指定时间点。文章强调83%的误操作在30分钟内可被发现,这是最佳恢复窗口期,并提醒注意CSN断档、回收站膨胀等常见问题。最后建议,当闪回失效时应立即停止写入并考虑备份恢复。
2025-07-31 09:12:49
1764
原创 BenchmarkSQL 测试 PostgreSQL 时遇到 numeric field overflow 报错的原因与解决方案
BenchmarkSQL进行PostgreSQL的TPC-C测试时,可能出现"numeric field overflow"错误。原因是金额字段(如OL_AMOUNT、C_BALANCE等)在schema.sql中定义精度不足(如NUMERIC(6,2)),长时间测试导致数值超出范围。解决方案包括:1)修改schema.sql文件,将金额字段精度调整为NUMERIC(15,2)或更大后重建数据库;2)对已有数据在线修改字段精度;3)测试期间监控关键字段最大值。PostgreSQL对NUM
2025-07-03 21:22:35
1157
原创 金仓KingbaseES删库跑路?别慌!用sys_recovery挽救误删数据
《数据库误删数据恢复指南:使用sys_recovery工具》 摘要:当数据库执行误删或误更新操作后,数据并非立即消失。sys_recovery工具通过直接扫描数据页,可恢复被标记为"已删除"但未被VACUUM回收的数据。其原理基于MVCC机制,在DELETE/UPDATE操作后,旧数据仍保留在磁盘上直至被覆盖。使用步骤包括:关闭autovacuum、确认工具安装、设置只读模式、执行恢复查询。但需注意:1)恢复窗口期有限,越早操作成功率越高;2)无法替代定期备份策略。该工具适用于紧急数据恢
2025-07-03 09:18:33
2355
原创 一文掌握金仓数据库三大读写分离模式
本文总结了KingbaseES数据库的三种JDBC读写分离配置方案:1)最大性能模式采用异步复制,所有节点可读,适用于报表查询等对一致性要求低的场景;2)读已提交模式采用强同步复制,仅主节点与同步备节点可读,适合需要即时查询结果的业务;3)可重复读模式在显式事务中强制主库执行,确保事务级一致性,适用于严格可重复读要求的系统。不同模式通过前端JDBC参数与后端复制配置组合实现,选择时需权衡业务对一致性的要求与性能目标。合理配置可显著提升系统吞吐量并降低主库负载。
2025-06-27 09:07:42
3570
原创 PostgreSQL WAL 日志删除与保留机制深度解析
PostgreSQL的WAL日志管理机制解析 PostgreSQL通过WAL日志实现数据持久化和高可用复制。WAL文件删除需要同时满足5个条件:1)不再需要崩溃恢复;2)成功归档;3)无复制槽依赖;4)超出wal_keep_segments保留范围;5)无其他进程占用。关键参数wal_keep_segments(或wal_keep_size)定义了必须保留的最小WAL量,而max_wal_size/min_wal_size则控制WAL目录的软性大小限制。删除逻辑遵循"硬约束优先于软约束"
2025-06-25 08:54:32
1734
原创 金仓数据库KingbaseES防误删保护工具rm-protect深度指南
摘要:金仓数据库提供rm命令防护工具,通过重定向机制将rm替换为sys_rm命令,对受保护文件执行删除前需密码验证。该工具包含安装脚本、防护命令和配置工具,支持配置绝对路径保护,验证失败保留文件并提示正确密码存储位置。防护范围覆盖rm -rf但不包括rmdir,多文件删除时任一验证失败即终止操作。卸载需删除配置并清理bash设置。流程包括:执行删除→检查保护状态→验证→匹配成功才执行删除。
2025-06-19 08:57:20
263
原创 金仓数据库主备集群故障自动转移技术解析
当主数据库(Primary)突发故障时,守护进程repmgrd自动将备库(Standby)提升为新主库并接管服务,全程无需人工干预,保障业务连续性。
2025-06-11 19:56:27
507
原创 揭秘`dd`测速:`dsync`与`fdatasync`为何性能天差地别?
Linux系统中dd命令的dsync和fdatasync参数在测试硬盘写入速度时存在显著差异。dsync每次写入4KB立即同步到硬盘(模拟实时写入),导致性能低下;而fdatasync先批量写入缓存再同步(测试峰值速度)。比喻来说,dsync像频繁刹车的汽车,fdatasync则全程高速行驶。关键区别在于写入机制:前者频繁同步,后者批量处理。测试时应根据需求选择参数:dsync用于模拟实时场景,fdatasync测速时需配合合适块大小(如bs=1G)。其他常用参数包括direct(绕过缓存)和fsync(完
2025-06-05 20:38:23
824
原创 金仓数据库主备集群服务开机自启配置全攻略
金仓数据库针对机房级断电故障推出的集群自动恢复机制,有效解决了传统手动恢复的时效滞后、操作风险高等问题。通过配置auto_cluster_recovery_level参数(0为关闭,1为智能恢复),系统能在满足节点状态与网络条件时自动重启服务。测试显示,启用自动恢复后集群可在断电恢复后自主完成重启,而关闭该功能则需人工干预。该机制显著提升了数据库集群的高可用性,保障业务连续性。
2025-06-05 08:58:54
654
原创 金仓数据库主备切换故障解析,一次由相对路径引发的失败与切换流程解读
在数据库集群的主备切换过程中,某环境在执行./repmgr standby switchover命令时遇到路径异常问题。检查发现,数据库启动时使用了相对路径,导致repmgr在切换时路径解析出现偏差。解决方案包括暂停集群管理服务、安全停止异常实例、使用绝对路径重新启动数据库,并恢复集群管理。最终,主备切换成功完成。此外,文章还总结了金仓数据库手动主备切换的流程,包括前置健康检查、HA服务暂停、数据一致性保障、主节点优雅下线、备节点升主操作以及HA服务恢复等步骤。
2025-05-22 20:49:56
614
原创 JMeter JDBC请求Query Type实测(金仓数据库版)
本文通过实测验证了JMeter中JDBC Request组件的不同Query Type参数在金仓数据库KingbaseES中的行为。测试结果表明:Select Statement仅支持单条SELECT查询;Update Statement支持多条DML语句;Callable Statement支持存储过程和多语句操作;Prepared Select Statement支持参数化查询,提升重复查询性能;Commit与Rollback可手动控制事务。文章旨在帮助用户明确各Query Type的使用场景和限制,避
2025-05-22 08:50:31
1406
原创 金仓数据库使用sys_walfile_name函数时的时间线问题排查指南
在某次主备切换后,发现备库升主后查询的WAL文件名时间线与实际不符。具体表现为,新主库时间线变为00000002,但查询旧LSN(0/BD49920)对应的WAL文件名时,返回的时间线为00000002,而实际应为00000001。问题根源在于sys_walfile_name()函数设计上不关联时间线历史,仅依赖当前时间线生成文件名。解决方案包括手动查询时间线历史文件(如.history文件)或使用工具(如sys_waldump)解析WAL元数据。总结指出,该函数仅适用于当前时间线的LSN计算,查询历史LS
2025-05-15 21:40:43
2163
原创 多数派算法在数据库高可用性中的应用与验证
在高可用数据库系统中,主备集群架构常面临网络分区导致的“脑裂”问题,即集群分裂为多个独立子集群,各自提供服务,导致数据不一致。多数派选举算法通过数学化的节点共识机制,确保在网络分区场景下,最多只有一个分区能够满足法定人数要求,从而避免脑裂。算法核心公式为法定人数Q ≥ ⌈N/2⌉ + 1,确保在任何网络分区下,只有一个分区能完成选举。工程实践中,引入仲裁节点和避免偶数节点集群是优化策略。测试数据表明,在N+1(奇数)节点配置下,算法能有效避免脑裂发生。
2025-05-15 09:06:34
748
原创 金仓数据库永久增量备份技术原理与操作
永久增量备份是一种高效的数据库备份方案,通过“一次全量+智能合并”的方式,解决了传统备份中全量备份资源消耗大、耗时长的问题。其核心逻辑是初始全量备份后,每日仅备份变化的数据,并在一定周期内将全量与增量合并为新的全量备份。这种方式减少了存储空间的占用,降低了数据库资源消耗,并简化了数据恢复过程。金仓数据库支持永久增量备份,用户可通过配置文件开启该功能,并设置定时任务自动执行备份与合并操作。这种备份方式显著提升了备份效率,减少了对业务的影响。
2025-05-09 22:39:56
1143
原创 jmeter优化数据库测试中首次请求耗时较长问题
通过合理配置JMeter连接池参数,可显著降低首次数据库请求的延迟,同时提升整体测试场景的吞吐能力。建议在实际测试中根据具体数据库负载情况动态调整连接池参数,配合逐步加压,可更精准地定位数据库性能瓶颈。
2025-05-09 08:57:12
834
原创 数据库集群网络隔离故障注入实践
🟡 主库被关小黑屋(主库网关不可达)→ 备库检测:自己网络正常,网关可达→ 结论:大哥掉线真实有效 → 备库安全升主🔵 备库自己被隔离(连不上网关)→ 自检发现网线被拔 → 老实躺平不抢主⚫ 主备双双重隔离(都连不上网关)→ 两兄弟同时失联 → 备库坚决不称王。
2025-04-25 09:27:31
1468
原创 金仓kingbaseES模板数据库详解:template0与template1的作用与实践
模板数据库的作用类似于"克隆母版",新数据库将继承模板的所有对象(表、函数、扩展等)和配置。命令时,kingbase数据库会自动复制指定的模板数据库(默认使用。通过合理运用模板数据库机制,DBA可以提升数据库创建效率。
2025-04-23 19:38:08
582
原创 深入理解PostgreSQL的synchronous_commit参数及其对集群性能的影响
是控制事务提交行为的关键参数,其值决定了事务提交时是否需要等待WAL日志(Write-Ahead Logging)的持久化。参数的配置以及备库数量的选择,会显著影响数据库的吞吐量和事务延迟。本文结合各类实践与理论,分析这一参数的作用机制,并探讨不同同步备库数量对性能的影响。根据测试,单同步备库可能导致主库的TPC-C性能(如TPmC)下降20%-50%。同步复制可能引发主库的锁竞争(如WAL发送进程与事务提交进程的互斥)。每增加一个同步备库,主库需等待的确认节点数增加,性能损失呈非线性增长。
2025-04-18 20:18:06
991
原创 JMeter性能测试:TPS计算全解析与常见误区
但很多测试同学在计算 TPS 时容易陷入误区,导致测试结果失真。本文将结合 JMeter 官方文档与真实案例,详解 TPS 的正确计算方法及常见问题,助你避开性能测试的“深坑”!例如,一个电商平台的支付接口 TPS 为 100,意味着每秒可处理 100 笔支付请求。性能测试不是数学公式的简单套用,而是资源、代码、架构的全链路优化过程!正确计算 TPS 需避开“并发数 ÷ 平均响应时间”的误区,:直接显示 Throughput(TPS)和平均响应时间。(需插件):实时展示 TPS 波动曲线,适合分析稳定性。
2025-04-09 22:07:21
1492
原创 一些PostgreSQ测试工具
psycogreen是一个基于Python的PostgreSQL连接池,可以提高数据库连接的性能和并发能力。pgTAP支持多种测试类型,包括基本的SQL语句测试、函数测试、触发器测试、复制测试等。pgTAP使用方便,但需要编写测试脚本,对于不熟悉Python的用户来说可能需要一定的学习成本。pg_activity是一个基于Python的PostgreSQL监控工具,可以实时监控数据库的各种指标。pgbench是PostgreSQL自带的基准测试工具,可以用于测试PostgreSQL的性能和并发能力。
2023-05-21 22:43:13
923
原创 主备数据库的数据一致性测试方法
方法:在主数据库上执行一些修改操作(如插入、更新、删除数据),然后验证这些修改是否在备份数据库中正确地复制和同步。方法:通过分析主数据库和备份数据库的事务日志文件,验证数据修改操作是否被正确地记录和应用到备份数据库。方法:创建主数据库和备份数据库的快照(数据库备份文件或数据库快照),然后对比两个快照的数据是否一致。方法:通过比较主数据库和备份数据库中相同数据表的数据记录,逐行对比数据是否一致。缺点:对于大型数据库或数据量庞大的表可能效率较低,需要耗费较多的时间和资源。
2023-05-15 22:47:37
1060
原创 数据库稳定性测试业务模型
数据库备份恢复模型:该模型测试的是数据库备份和恢复的稳定性,通过模拟备份数据库和恢复数据库的过程,测试数据库备份和恢复时间、可靠性等指标。出错恢复模型:该模型测试的是数据库在发生错误时的稳定性,包括故障恢复、数据恢复等,通过模拟各种故障场景,测试数据库的自愈能力和可靠性。安全性模型:该模型测试的是数据库安全性及数据保护能力,通过模拟各种安全攻击场景,测试数据库对用户隐私和数据安全的保护能力。性能测试模型:该模型测试的是数据库的性能及扩展能力,包括测试数据库在不同负载下的性能表现、数据库扩展性能等指标。
2023-03-27 19:49:05
531
原创 npm install 长时间处于fetchMetadata: sill resolveWithNewModule
等待下,有遇到过安装耗时15min才完成的,这个时候耐心等待下。3、本身时间就比较长。
2023-03-27 14:36:44
5687
原创 Oracle最高可用性架构(MAA)|青铜级(BRONZE)
MAA即最高可用性架构(Maximum Availability Architecture )Oracle最高可用性架构(MAA)为Oracle数据库提供了架构、配置和生命周期最佳实践Oracle将MAA分为青铜、白银、黄金和铂金四个等级,提供不同级别的HA解决方案以满足不同的RPO和RTO要求,本文主要解读青铜等级的架构。
2022-11-24 21:47:41
1292
原创 KingbaseES实现在线增量备份与任意时间点恢复
功能背景人为操作错误,由于误操作修改或删除了重要数据, 需要KingbaseES 支持还原数据到误操作前的那个时刻解决方案提供增量备份能力以及支持任意时间点恢复实现增量备份和任意时间点恢复的思路是记录数据库系统的操作记录(WAL归档)在某一时刻进行一次完整的数据库备份需要恢复时,还原上一次完整的数据库备份,根据操作记录恢复数据库至指定的某个时刻(即可以实现PITR 时间点恢复)配置示例操作1、配置数据库、vim kingbase.confwal_level = replicaar
2022-04-23 15:21:42
7159
原创 Oracle Data Guard和金仓KingbaseES集群的数据保护模式对比
Oracle Data Guard 提供三种数据保护模式(Data Protection Mode ):最大可用性、最大性能和最大保护。Kingbase ES 提供了服务可用优先 、数据保护优先两种保护模式
2022-04-18 23:04:29
3445
原创 Unlogged table在金仓Kingabse数据库备份还原和集群中的相关体现
1、unlogged table的定义若建表时指定了unlogged,则该表为一个不受日志记录的表,被写入到其中的数据不会被写到预写式日志中,因此这种表的速度会比普通表快。但是,由于不会有日志记录,因此在崩溃时也是不安全的,在崩溃之后或者非干净关闭之后会被自动地截断;表中的内容也不会被复制到后备服务器中;表上创建的任何视图也会自动地不被日志记录。2、unlogged table在物理备份与还原中的表现由于unlogged table不会记录日志,在物理备份还原上也会有一定的体现,表现如下:1、全量
2022-03-10 14:57:01
1271
原创 Kingbase部署block_size为非8k的V8R6集群
金仓数据库V8R6集群默认部署后block_size为8k,但是在使用过程中会有部署非8k集群的需求,如何部署非8k的集群,目前可使用的方法有3种test=# show block_size ; block_size------------ 8192(1 行记录)方法一:可以联系官方获取8k,32k以及128k的版本。可通过一键部署集群的方式分别部署8k、32k以及128k的集群方法二:目前initdb工具支持生成1-32k的data,官方文档描述如下:–block-size=size
2022-03-04 21:00:21
2725
原创 金仓数据库oracle模式下的in out inout三种参数模式
KingbaseES 存储过程和函数提供了类似Oracle的 IN、OUT、IN OUT 三种参数模式
2022-03-01 23:47:23
2971
原创 表膨胀终结者,金仓数据的表膨胀及对策
1、为什么会有表膨胀多版本并发控制机制多版本并发控制机制(MVCC)的原理在于,当它需要更改某块数据的时候,它不会直接去更改,而是会创建这份数据的新版本,在新版本进行更改,所以会存储多份版本,每个事务能看见哪一份版本的数据,由事务隔离级别控制。MVCC引入了一个问题,如何消除老旧的、没有使用的无用数据(版本),目前主流上有3种处理实现方式:**第一种:**以Oracle为代表的,把旧版本数据放入UNDO,新数据放入REDO,然后更改数据。这种方式,旧版本的数据放入了UNDO,所以可以有效避免膨胀。
2022-02-24 21:09:50
8184
TPC-H_标准_中文版.doc
2019-11-30
清华TPCC测试工具-x64.rar
2019-11-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1