- 博客(246)
- 收藏
- 关注
原创 【GaussDB】把GaussDB开发者版本做成88MB的docker镜像
基于华为云公开的GaussDB开发者版(V2.0-10.0.0 trial,内核507.0.T1),在Kylin V10 SP3系统上构建最小化Docker镜像,自动适配x86_64/aarch64架构,剔除OM/CM等组件,仅保留核心数据库运行时。通过dnf --installroot自建系统层,移除util-linux、locale-archive等冗余包,采用单层docker import方式压缩至88MB(xz)。
2026-11-02 22:29:21
278
原创 【openGauss】排查一起panweidb2.0子链接提升的coredump案例
openGauss 5.0.1 在 rewrite_rule=magicset 下因子链接提升缺陷导致空指针崩溃,根源为重写生成无列的 JOIN RTE,后续 flatten_join_alias_vars 调用 list_nth(NULL, 0) 引发 SIGSEGV。该问题在 6.0.0 及以上版本修复,可通过关闭 rewrite_rule 或改写 SQL 避免。
2026-10-31 23:02:21
295
原创 wslc ps 卡死的排查:一次「停容器不停 VM」引发的连环故障
WSL 3.0.3 中 wslc ps -a 卡死,根源为停容器后虚拟机未关闭,宿主进程退出导致会话记录与虚拟机脱节,形成“僵尸会话”并持锁磁盘。排查发现 wslc system session list 显示已消失的创建者 PID,确认僵尸会话;wslc system session terminate 也卡死,最终通过强制终止 wslcsession.exe 并重启系统解决。关键教训:停容器不等于停 VM,应使用 wslc system session terminate 显式释放资源,避免手动杀 vm
2026-10-31 23:01:10
456
原创 【GaussDB】1个会话1次SQL请求1秒钟狂涨四万个事务号
某GaussDB客户因存储过程含exception块,触发默认开启的plstmt_implicit_savepoint机制,导致每条DML语句生成独立子事务,1秒内事务号激增4万+。虽为64位xid,但不当使用仍致事务号快速消耗,24小时可超69亿,逼近原生PG的42亿上限风险。建议关闭该兼容参数或优化代码结构以避免资源浪费。
2026-10-13 21:13:30
263
原创 【AI】再测--amd ai max 395 运行Qwen3.8-flash-next
本文测试AMD AI MAX 395在不同工具下运行Qwen3.8-flash-next模型的表现。使用Unsloth Desktop加载需160秒,推理速度波动明显;而gfx1151-engine仅30秒加载,支持MTP,预填充速度超千tokens/s,最高达1500,且不占用CPU。LMStudio加载耗时143秒,暂不支持MTP优化。结果显示,专用引擎在性能与稳定性上显著优于通用框架。
2026-10-10 22:23:08
345
原创 【AI】AMD AI MAX 395运行qwen3.8-flash-next测试
AMD AI Max 395测试qwen3.8-flash-next模型,原版125B参数(激活6B)+51B n-gram,经量化后可运行于本地。尽管初期面临架构支持与内存瓶颈,通过自编llama.cpp及优化配置,实现最高22 tok/s生成速度。社区工具halogen-flash-server(Windows开源版)显著提升性能,预填充超600 tok/s,突破现有框架极限。作者推测其背后或有未公开算力优化技术,未来潜力巨大。
2026-09-20 23:00:51
631
原创 号外!又有新的国产数据库通过国家安全可靠测评了
2026年9月20日,安可测评第3号公告发布,新增多款通过I级数据库测评产品。易景羲和(HALO)虽获认证但版本停滞于1.0;华为新数据库NetrixDB无公开资料,或为内部使用;TDSQL集中式10.3版续期及时,但与分布式版本发布时间不一存疑。值得关注的是,本期首次出现III级CPU产品——鲲鹏950,标志着测评体系升级。作者提供可本地使用的安可产品查询网页,支持多维度筛选与导出。
2026-09-20 22:25:14
712
原创 拒绝Docker Desktop-在win11上运行docker容器的替代方案
本文介绍在Windows 11上替代收费版Docker Desktop的五种方案,重点推荐功能完善的开源工具Podman Desktop和Rancher Desktop,二者均支持K8s与Compose,无需复杂配置。虽有wslc等新方案,但受限于权限与成熟度,暂不推荐。个人或非商业用户可继续使用Docker Desktop,但企业用户应规避合规风险。
2026-09-17 22:12:42
456
原创 【DuckDB】在DuckDB中查询ORACLE的数据的三种方式
DuckDB访问Oracle数据库目前有三种方式:通过ODBC(官方支持,需配置客户端)、quack-oracle(社区插件,模拟原生协议,无需Oracle客户端)和duckdb-oracle(依赖Oracle Instant Client)。前两者分别基于通用接口与逆向协议实现,解决了原生扫描器因闭源协议和许可证限制无法开发的问题。尽管缺乏官方原生支持,但社区方案已提供替代路径,兼顾易用性与性能,未来或可进一步优化。
2026-09-17 18:23:38
497
原创 【GaussDB】内核事务异步提交(延迟清理)相关问题记录
GaussDB 506 版本引入的异步事务提交(延迟清理)特性,导致多个问题:会话长时间处于 idle in transaction 状态、存储过程中的 DML 操作计数器不更新、以及 ustore 表在循环操作中严重膨胀。根本原因在于仅读事务判断逻辑错误——即使有数据修改,事务结束后顶层 XID 变为 0,触发跳过 finish_xact_command(),致使资源未及时释放、提交记录未写入、锁未释放、缓存未失效等关键操作被延迟或忽略,引发一致性与性能问题。
2026-09-15 23:17:38
422
原创 【GaussDB】排查一起ustore表在存储过程里膨胀的问题
GaussDB ustore表在存储过程频繁执行delete+insert后出现严重空间膨胀。测试发现,使用PBE模式(preferQueryMode=extended)时,表空间持续线性增长,每次插入均不复用已删除空间;而非PBE模式下空间增长迅速收敛。问题与事务提交方式、SQL执行模式及匿名块结构相关,且需通过JDBC客户端触发,gsql执行无此现象。该问题导致磁盘快速耗尽,影响系统稳定性。
2026-09-15 20:48:44
223
原创 中国移动梧桐数据库(磐维OLAP)初上手
中国移动梧桐数据库(磐维OLAP)基于Greenplum发展而来,与openGauss无关。实验中因Rancher Desktop WSL2环境的cgroup v2与CentOS 7镜像不兼容,导致sshd未启动,通过添加--tmpfs /sys/fs/cgroup参数修复,成功启动HDFS及各服务。补充映射端口并修正HDFS路径命令后,完成跨引擎表关联测试,验证了实验容器可用性。
2026-09-14 21:55:25
397
原创 【MySQL】PIPES_AS_CONCAT-性能影响分析验证报告
测试表明,启用 PIPES_AS_CONCAT 将 || 视为拼接对 MySQL 运行时性能影响可忽略,绝大多数场景差异 <5% 且在噪声范围内;真正消耗 CPU 的是拼接动作本身,而非语法入口。另发现存储过程/函数绑定创建时 sql_mode,切换会话模式不生效,需重建例程,否则遗留语义炸弹。测试基于存储过程循环计时消除网络 RTT,执行 200 万+次运算验证。
2026-09-05 17:51:36
382
原创 FDE、本体建模与AI落地:从概念争议到国家正名
2026年初,行业里还在争论一个问题:本体论、FDE(前沿部署工程师)到底是不是新东西?是不是又一轮概念包装?有人说,这不就是知识图谱换了个说法;有人说,FDE不就是早年IBM、Oracle的驻场顾问吗?辩论尚未结束,国家层面已经用标准和文件给出了回答。
2026-09-04 18:25:11
855
原创 【GaussDB】(HWSA25-084897515)普通用户非法提权的漏洞分析
GaussDB存在普通用户提权漏洞:当用户A获B对象授权后,可在不知密码情况下伪装为B并继承其全部权限,包括系统管理员。影响503.1至506版本。攻击者利用泄露的低权限账户即可获取数据库最高权限,执行破坏、篡改等操作。
2026-09-01 23:59:31
397
原创 【GaussDB】真相比你想的更复杂--执行exp函数报错
本文分析GaussDB中exp函数报“value out of range: underflow”的原因。该错误源于从Oracle迁移的存储过程在exp处失败,因Oracle NUMBER存储机制支持更广范围,而PG系基于IEEE 754限制exp参数约-745~709。进一步测试numeric类型及PG版本差异,揭示边界随版本变化,问题涉及数据库底层存储与函数实现差异。
2026-09-01 22:52:56
316
原创 【GaussDB】一个原生PG延续十七年的BUG被继承,SQL执行不报错,explain报错
摘要: 在GaussDB/openGauss中发现一个继承自PostgreSQL长达17年的BUG,涉及information_schema.parameters视图查询异常。当查询条件包含upper(specific_name) = upper(null)时,实际执行不报错但EXPLAIN会因子查询计划缺失报错"failed to find plan for subquery ss"。问题根源在于视图中的嵌套子查询(ss.x).n被引用时,若子查询被优化裁剪会导致反解析列名失败。
2026-08-21 09:30:52
483
原创 【GaussDB】507内核版本安装包的调整
文章摘要 GaussDB 507内核版本对安装包结构进行了重大调整,将不同操作系统和CPU架构的内核包拆分为6个独立文件(3种OS×2种CPU架构),不再包含符号表。安装包按Linux分支划分为SUSE、Euler和HCE三类,实际兼容更多国产操作系统,分组依据主要为Python版本(3.7.9和≥3.9.9两档)。相比506版本,507版本放宽了对操作系统小版本的限制,通过验收测试即可验证兼容性。TPOPS安装包也进行了优化,合并为x86/ARM架构的两个大包。
2026-08-21 09:29:50
265
原创 【GaussDB】507内核版本新特性-视图失效重编译
GaussDB 507内核版本新增了视图失效重编译功能,解决了原生PostgreSQL中修改表结构时因视图依赖导致的报错问题。通过设置enable_view_invalidation参数为on,允许直接修改视图依赖的表字段或删除表,视图会在查询时自动重新编译。该功能还意外修复了之前版本中因视图依赖包类型变更导致的coredump问题。此外,507版本还通过enable_force_create_obj参数支持乱序创建视图(先建视图再建表),进一步完善了对象依赖管理能力。这些改进显著提升了数据库运维灵活性,尤
2026-08-09 16:38:57
340
原创 【GaussDB】507版本gs_dump功能更新
GaussDB 507版本中gs_dump工具的主要更新包括:新增并行导出(-j参数)、谓词过滤导出(--query)、CSV格式支持(--with-copy-format)等功能;优化了锁机制描述,新增了失效视图处理(--ignore-invalid-views)和事务控制(--no-transaction)参数;注意事项部分大幅扩充,覆盖触发器导出、间隔分区表等十余项内容。同时解决了旧版中生成列转储、表达式索引依赖等问题,并针对大对象和系统列导出进行了优化。文档描述更加精确,新增了SQL归一化复用优化和
2026-08-09 16:38:12
409
原创 【GaussDB】507内核版本新特性-rowid
GaussDB 5.0.7内核版本终于实现了ORACLE兼容的rowid特性,该特性需通过with(hasrowid)选项显式启用。
2026-07-25 16:50:25
424
原创 【DuckDB】开发DuckDB插件连接GaussDB/openGauss
本文介绍了一种在DuckDB中连接GaussDB/openGauss数据库的方法。作者之前使用DuckDB查询GaussDB数据时存在密码加密和传输协议的限制,于是基于DuckDB的postgres_scanner插件开发了opengauss_scanner插件。该插件通过shell脚本替换postgres_scanner代码的方式实现,支持二进制协议流并兼容多种密码加密方式,无需修改GaussDB的安全配置。文章详细说明了本地构建步骤,包括克隆代码库、配置libpq依赖和编译过程,并提供了预编译插件的下载
2026-07-25 16:49:38
533
原创 【GaussDB】507内核新特性-PLSQL字节码(三)
本文针对GaussDB 507内核的PL/SQL字节码特性进行了补充测试,通过反向推导日志场景,成功命中了多个之前未覆盖的字节码日志码(BC053、BC054、BC055、BC061、BC072、BC074)。
2026-07-19 15:23:40
381
原创 【GaussDB】507内核新特性-PLSQL字节码(二)
文章摘要 GaussDB 507内核新特性PLSQL字节码的第二部分探讨了其使用约束。文档中同时列出了白名单和黑名单,这在PLSQL这一复杂语言中显得独特。
2026-07-19 15:22:51
391
原创 【GaussDB】507内核新特性-PLSQL字节码(一)
文章摘要: GaussDB 507内核引入的PL/SQL字节码特性通过将存储过程语句转化为字节码指令执行,提升性能。该特性由参数plsql_code_type控制,需在A兼容模式下启用。
2026-07-19 15:20:26
447
原创 【GaussDB】在UTF8的库上按GBK的字节数截取字符串
文章摘要 文章探讨了在数据库迁移过程中,当源库(ORACLE GBK字符集)和目标库(GaussDB UTF8字符集)字符集不同时,如何正确处理字符串截取问题。作者提出了一个自定义函数uf_gbk_substrb,实现在UTF8库中按GBK编码字节数截取字符串,确保数据能正确回流到ORACLE。该函数通过将字符串转换为GBK二进制后截取,并处理不完整字符问题。作为对比,文章还展示了AI生成的更复杂方案,后者实现了更完整的Oracle SUBSTRB行为,包括负数位置截取等功能。两种方案各具特点
2026-07-18 21:18:01
343
原创 【GaussDB】分析一个使用子查询进行update导致的coredump
摘要 本文分析了GaussDB数据库中一个由子查询update操作引发的coredump问题。作者在506.0.0SPC0100版本环境中复现了该问题,通过创建测试表并执行特定update语句触发了coredump。
2026-07-18 21:16:54
443
原创 同一句话,两次全新启动,输出一模一样——AI MAX+395运行DiffusionGemma实测
本文介绍了扩散模型(DiffusionGemma)与自回归模型的区别,并实测了AMD Ryzen AI MAX+395运行DiffusionGemma-26B模型生成端午节网页的效果。扩散模型采用多块并行生成方式,不同于自回归模型的词语接龙式生成。测试中使用Vulkan后端全GPU卸载配置,两次完全相同的提示词"生成一个端午节的html..."得到了完全一致的9407字节输出结果,展现了扩散模型在结果稳定性方面的优势,这对需要确定性输出的Agent调用场景具有重要意义。
2026-06-23 21:42:03
274
原创 【GaussDB】Plan Trace 深度分析-CPlan 与 GPlan 谓词推入差异的完整复现与解读
本文深入分析GaussDB中CPlan与GPlan在谓词推入上的差异现象。通过506.0.0.SPC0100版本实测发现,PBE模式下INSERT...SELECT语句前5次执行使用CPlan时未将join条件推入T3表索引扫描,而第6次切换为GPlan后优化器成功推入额外谓词,使成本降低60%。文章完整复现测试环境,解读Plan Trace日志,揭示参数化路径选择机制差异,并分析Hint对优化器决策的影响,最终给出基数估算、Join顺序等12个维度的优化建议。
2026-06-23 21:21:31
669
原创 【GaussDB】分析GaussDB在coredump后,部分应用连接假死的问题
GaussDB主备切换后应用连接假死问题分析 问题现象 GaussDB主备切换过程中,部分Java应用连接出现假死现象,表现为: 主节点触发coredump,VIP漂移至备库 部分应用成功重连新主库 另一部分Java应用卡死无响应,无日志输出 根本原因 时序问题:主节点coredump耗时过长(内存大导致),VIP已卸载但进程尚未退出 连接断开机制:服务端退出时卸载VIP导致TCP分手包无法送达客户端 JDBC配置缺陷:PostgreSQL/JDBC驱动默认关闭tcpKeepAlive,客户端无法感知连接异
2026-06-15 21:20:02
485
原创 AMD AI MAX+395 跑 QWEN3.5-122B-A10B-MTP-Q4 实测
摘要:本文测试了AMD AI MAX+395芯片在Windows系统下运行QWEN3.5-122B-A10B大语言模型的性能表现。通过分配96GB统一内存作为显存,成功运行了80GB左右的模型。测试对比了MTP(推测解码)技术对性能的提升效果,Q4_K_S版本速度从21.66 tokens/s提升至33.15 tokens/s,增幅达53%。文章还分析了不同spec-draft-n-max参数对性能的影响,并提供了详细的资源占用数据和启动脚本配置。测试结果表明,尽管AMD方案在显存管理上存在挑战,但相比需要
2026-06-15 21:10:41
1160
原创 【GaussDB】会话里出现大量idle in transaction状态的问题排查
客户在GaussDB数据库中发现大量"idle in transaction"会话,但xact_start为空,引发应用代码问题怀疑。经过排查发现这是线程池模式下的特殊现象:当启用线程池且使用扩展查询协议时,可能存在状态更新与事务时间戳清除的时序问题,导致会话显示为事务空闲状态但无事务开始时间。分析表明这属于数据库内部状态同步的正常现象,并非应用代码问题。可通过特定条件下的Java代码复现该现象,实际命中率取决于系统负载和线程调度。
2026-05-29 21:57:26
597
原创 【ORACLE】添加短信以外的双因素认证方式
本文介绍了Oracle账户添加短信以外的双因素认证方法。由于Oracle强制双因素认证导致共用账号不便,作者发现其实支持邮箱和OTP验证。具体步骤包括:1)访问隐藏的安全设置页面;2)配置Mobile App(OTP),勾选离线模式并使用任意OTP软件扫码绑定;3)将OTP设为默认认证方式。文章还解释了OTP原理(30秒更新的离线验证码),并吐槽Oracle国内服务的访问问题。该方法可避免依赖特定手机号的短信验证,提升账号共享便利性。
2026-05-29 20:27:12
314
原创 【GaussDB】 keep聚合SQL 性能优化分析:从 123s 到 18s 的优化之路
SQL性能优化分析:从123秒到18秒的优化之路 摘要 本文分析了某金融交易系统行情查询SQL的性能优化过程。原始SQL查询15万行数据并聚合2355条记录,耗时123秒。主要问题包括: 全表顺序扫描1500万行数据 单次大排序耗时68.8秒,磁盘I/O达938MB 7个KEEP聚合函数叠加计算成本高 串行执行无并行处理 优化方案包括: 启用并行查询(query_dop=4)将耗时降至43秒 使用窗口函数替代KEEP聚合 优化查询条件和索引策略 最终通过综合优化手段将查询时间从123秒大幅降低至18秒,性能
2026-05-24 00:03:46
915
原创 用 AI 造工具,而不是聊天——我如何把7亿小米 Mimo Token 花在刀刃上
本文分享了作者如何利用7亿小米Mimo Token开发实用工具而非单纯用于AI聊天的经验。面对AI订阅费用上涨的趋势,作者将Token用于开发三个自动化工具:创建博客静态镜像站、同步博客到多个平台、管理微信公众号文章。通过对比不同AI服务的性价比,作者指出高端算力不应浪费在日常重复任务上,建议趁免费Token时期开发实用工具以长期节省时间。文章展示了AI辅助开发的完整过程,最终实现了高效的内容同步解决方案。
2026-05-23 20:30:10
625
原创 【DuckDB】一条 SQL 同时连接 Oracle 和 GaussDB
在数据迁移、数据比对、异构数据库运维等场景中,经常需要同时查询多个不同类型的数据库。DuckDB 作为一款嵌入式分析型数据库,支持通过扩展连接多种外部数据源。本文将演示如何在一条 SQL 中同时连接 Oracle 和 GaussDB,并实现跨库联合查询。同时,由于连接 Oracle 数据库需要通过 ODBC 驱动,而生产环境通常不允许随意安装系统级 ODBC 包,本文提供了一套完全自包含的部署方案——所有依赖(DuckDB CLI、扩展、Oracle Instant Client、unixODBC 运行库)
2026-05-23 18:06:00
721
原创 给本地的 LM Studio 装上手脚和眼睛
介绍了如何为本地LM Studio安装MCP Server以扩展其功能。主要内容包括:安装配置web-search、playwright和filesystem三个MCP Server的详细步骤,提供完整的配置代码示例;展示MCP Server的实际使用效果;记录安装过程中可能遇到的路径问题、浏览器兼容性问题和安全设置等常见问题及解决方案。文章强调MCP Server相比专业Agent工具具有token消耗少、响应快的优势,但也提醒用户注意安全风险,建议谨慎选择可信来源的MCP Server并合理设置访问权限
2026-05-23 18:02:04
1356
原创 频繁 DROP/CREATE TABLE 在 PostgreSQL 中的问题及解决思路
摘要:频繁执行DROP/CREATE TABLE操作会导致PostgreSQL系统目录膨胀、锁竞争、缓存失效等问题。主要解决方案包括:1) 激进调优autovacuum参数,加快系统目录清理;2) 定时手动VACUUM关键系统表;3) 调整系统目录表的fillfactor参数;4) 使用事件触发器拦截DDL操作;5) 通过连接池控制并发;6) 优化WAL和checkpoint配置;7) 对非关键数据使用UNLOGGED表。这些方法可在不修改应用代码的情况下缓解问题,但最佳方案仍是重构应用逻辑避免频繁DDL操
2026-05-23 17:51:11
712
原创 本地模型性能翻倍!qwen3.6-MTP测试
本地模型性能突破:MTP技术实现速度翻倍 测试显示,MTP技术显著提升了本地模型的生成速度。在Qwen3.6-27B模型上,SPEC_DRAFT_N_MAX=4时速度提升达123%,35B-A3B模型最佳提升17%。虽然GPU利用率有所下降,但token输出量反而增加。测试环境采用AMD AI Max+395处理器和128GB内存,使用llama.cpp最新版本。MTP需要专用模型文件支持,目前建议SPEC_DRAFT_N_MAX=2作为通用设置。这一突破性进展为本地模型应用带来了新的可能性,特别是在资源受
2026-05-23 17:48:30
2600
原创 【GaussDB】排查报错“ERROR: Plpgsql estate is null“
摘要: 客户在GaussDB执行匿名块时遇到"ERROR: Plpgsql estate is null"报错。经排查发现,当SQL中使用SRF函数并调用子函数且子函数入参包含列时触发该问题。通过简化用例验证,确认问题与子函数调用方式相关。官方文档虽提及子程序限制,但描述存在歧义。最终结论是该场景属于GaussDB功能缺陷,建议客户修改SQL规避。本文详细记录了排查过程,为类似问题提供参考思路。
2026-05-23 17:34:54
519
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅