自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 DM 数据库查询归档日志大小

摘要:达梦数据库(DM)中查询归档日志大小的方法与Oracle不同。Oracle可通过V$ARCHIVED_LOG的BLOCKS和BLOCK_SIZE计算,而DM的DMV$ARCHIVED_LOG视图中这两个字段为NULL。正确方法包括:1)使用V$ARCH_FILE视图直接查询LEN字段获取逻辑大小;2)调用SF_GET_ARCHIVE_SIZE函数计算累积归档量;3)当ENABLE_MONITOR=1时,可查询V$ARCH_FILE_HISTORY获取被删除归档信息。文章还提供了多种归档统计SQL,包括

2025-12-26 13:50:12 73

原创 测试linux页缓存对磁盘IO的影响

摘要:本文深入分析了Linux页缓存机制对文件I/O性能的影响。通过dd、pcstat、cachestat等工具的实验表明:页缓存能显著提升读取性能,使重复读取速度从磁盘I/O的百MB/s级跃升至内存带宽的数GB/s级;但同步写入(dsync)会大幅降低写性能至真实磁盘水平。研究揭示常见性能测试易被缓存误导,建议测试时清除缓存或使用direct标志绕过页缓存。文章还介绍了pcstat、cachestat等工具监控缓存状态的方法,为准确评估存储性能提供了实用指导。

2025-12-26 13:46:26 694

原创 DM8 实时主备增加一个异步备库

本文详细介绍了在DM8数据库系统中添加异步备库(D节点)的完整实施过程。首先说明了异步备库适用于大规模数据库且对实时性要求不高的场景,支持多源配置以保障主备切换后的数据同步。具体实施包括:系统环境准备、安装路径规划、实例初始化、主库在线备份与恢复、主备库参数调整、监视器配置更新、异步备库参数配置与启动、状态监控等步骤。通过创建测试表并插入数据验证了主库与异步备库的数据同步功能。整个方案实现了在不影响业务运行的情况下扩展数据库架构,为统计报表等任务提供了额外的数据处理能力。

2025-12-26 13:33:13 575

原创 DM 数据库主备同步与故障切换测试

摘要:本文介绍了DM数据守护(DM8)的高可用数据库解决方案。通过主备架构实现实时数据同步,验证了主库可写、备库只读的正常行为。测试了手动主备切换(Switchover)流程,整个过程自动完成且数据保持一致。模拟了主库断电、断网和进程崩溃三种故障场景,均能在秒级内实现自动故障接管(Takeover),备库快速升级为主库并保持业务连续性。测试结果表明DM主备架构具备实时同步、读写分离、平滑切换和自动容灾能力,能有效应对各类异常情况,保障数据库服务的高可用性。

2025-12-26 13:18:28 128

原创 DM8三种删除数据方式释放空间的时机

摘要:本文对比了DM8数据库中DELETE、DROP和TRUNCATE三种数据删除方式的差异。DELETE属于DML,产生大量UNDO且空间逐步回收;DROP和TRUNCATE属于DDL,默认进入回收站不释放空间。测试表明:1)DELETE执行缓慢且依赖UNDO_RETENTION参数;2)开启回收站时DROP/TRUNCATE仅重命名表段不释放空间;3)关闭回收站后TRUNCATE会立即释放空间。通过创建测试环境验证了三种操作对表空间的影响,并指出UNDO_RETENTION时间不精确,清空回收站可快速释

2025-12-04 12:51:22 902

原创 达梦数据库:数据文件被删除后为什么还能插入数据?

摘要:在DCA实验中意外发现删除数据库数据文件后仍能正常操作的现象。这是由于Linux文件系统机制:当进程持有文件句柄时,即使删除文件,数据仍可通过内存缓存访问。但此时备份已失败,且重启后数据会丢失。通过/proc/<pid>/fd可从进程文件描述符恢复被删文件,但恢复成功率并非100%。该现象揭示了数据库文件删除后的潜在风险及基于Linux机制的应急恢复方法。

2025-12-04 12:38:32 641

原创 达梦数据库关键初始化参数指南

达梦数据库在建库时需谨慎设置不可修改的关键参数,包括页大小、簇大小、字符集、大小写敏感和行尾空格填充模式。字符集GB18030适合中文存储(更省空间),UTF-8适用于国际化场景。大小写敏感参数(默认Y)建库后不可更改,影响对象名解析。BLANK_PAD_MODE决定字符串比较是否忽略尾部空格(默认0不忽略),直接影响唯一性约束。逻辑运算优先级NOT>AND>OR,SQL执行顺序遵循标准流程。这些参数选择对数据库兼容性、存储效率和查询逻辑有长期影响,需在建库前充分评估需求。

2025-12-04 12:23:20 845

原创 DM8回收站中对象闪回和清除顺序测试

摘要:实验验证了数据库回收站操作的默认行为规则:闪回(FLASHBACK)采用LIFO(后进先出)原则,优先恢复最新删除的表数据;清除(PURGE)则采用FIFO(先进先出)原则,优先清理最早删除的表。通过创建并删除6个同名表测试,首次闪回恢复数据5,第二次恢复数据4;清除操作则删除了最早的数据1。实验表明,若不指定对象名,系统会按照时间顺序自动选择操作对象,要精确操作需直接使用回收站中的BIN$对象名。(149字)

2025-11-25 16:32:31 433

原创 DM8 分区表学习笔记

摘要:本文详细介绍了达梦数据库(DM8)分区表功能,包括分区表概述、设计原则、类型及限制条件。主要内容涵盖范围分区、列表分区、哈希分区、复合分区、间隔分区和虚拟列分区等6种分区方式,并提供了具体创建示例。文章还阐述了分区表管理操作(增加/删除/合并/拆分/交换分区)及注意事项,最后介绍了分区表信息查询视图。DM8分区表通过将数据分散存储提高查询性能和管理效率,但同时也增加了维护复杂度。需要注意的是,DM8不支持系统分区和参考分区功能,与Oracle存在部分兼容性差异。

2025-10-28 19:36:16 884

原创 strace诊断disql登陆卡住问题

摘要:DM8数据库的disql工具在登录时会在当前目录或DM_SQLPATH指定路径下自动执行login.sql初始化脚本。测试发现/home/dmdba/dmscripts目录下存在Oracle遗留的login.sql脚本,其中包含不兼容SQL导致登录卡住。通过strace跟踪发现disql会尝试执行当前目录下的多个SQL脚本文件。移除冲突的login.sql后问题解决。分析表明DM8的disql会按顺序查找执行glogin.sql和login.sql脚本.

2025-10-27 17:20:28 591

原创 环境函数 SYS_CONTEXT 在 DM8 与 Oracle 中的差异

摘要:Oracle的SYS_CONTEXT函数在达梦数据库DM8中实测可用,支持获取会话环境信息。测试显示DM8兼容16项USERENV参数,如CURRENT_USER、DB_NAME等功能,但部分Oracle特有参数返回NULL。该函数可用于环境区分、会话管理及安全审计,如通过DB_NAME/IP区分生产测试环境,结合v$sessions动态过滤生成KILL脚本。DM8虽未官方文档说明,但实际保持了高度Oracle兼容性,为从Oracle迁移提供便利。

2025-10-16 23:18:46 1016

原创 达梦存储结构篇

本文对比Oracle和达梦数据库的段存储结构差异。达梦数据库中,dba_objects视图的data_object_id字段为NULL,不记录段ID,而Oracle中表ID不变但段ID会随truncate操作变化。达梦支持段延迟创建(DEFERRED_SEGMENT_CREATION参数控制),表插入数据后才分配段空间(默认32KB页大小,32个簇组成1MB段)。测试显示:1)普通表创建时仅分配元数据段;2)带主键表会额外分配索引段;3)LOB字段表分配方式与Oracle不同。文章还探讨了堆表无序性和IOT

2025-10-14 17:00:09 743

原创 【SQL优化案例】SQL执行频率问题与优化效果预期

本文分享了两个SQL优化案例以及优化效果预期:案例一指出JUDGE_TASK表因业务逻辑设计不合理导致3个高频SQL每天产生110TB逻辑读,建议降低执行频率或建立索引;案例二发现ZONE_LIST表因缺少索引导致高频查询产生13.18TB/天逻辑读,通过建立唯一索引使逻辑读降低98.5%。通过关注常见指标逻辑读、执行时间、CPU使用率、主机负载、AAS、DB TIME、DB CPU等判断优化效果。

2025-08-27 17:03:49 1143

原创 【SQL优化案例】表结构与数据分布问题

本文总结了三个Oracle数据库性能优化案例:1. 分区键缺失导致全表扫描:一个UPDATE语句因未使用分区键导致扫描67个月分区,优化后通过添加分区键条件和创建本地索引,逻辑读从127万降至61次,执行时间从5秒降至0.35毫秒。2. 数据倾斜引发索引失效:优化后建立本地索引,逻辑读从百万级降至万级,时间从分钟级降至秒级。3. 表碎片严重影响性能:一个频繁DML操作的表仅剩38行数据但占用29GB空间,通过表收缩和索引重建,表大小降至4MB,逻辑读从5万次降至5次,查询耗时从15毫秒降至0.005毫秒。

2025-08-26 00:23:06 596

原创 【SQL优化案例】SQL改写 - 用 UNION ALL 替代 OR

文章摘要:针对Oracle中OR条件导致BITMAP转换效率低下的SQL问题,优化方案:1)SQL改写将OR条件拆分为UNION ALL子查询。2)使用USE_CONCAT提示实现自动查询转换,通过索引范围扫描替代位图转换可显著提升性能。

2025-08-21 00:37:33 414

原创 【SQL优化案例】索引问题

本文总结了三个Oracle SQL性能优化案例:1. 全表扫描问题:通过为LOG_REC_CALL表的PHONE_NO字段创建索引,将执行时间从1830ms降至1824ms,逻辑读从97,033次减少到37,998次。2. 索引设计不合理:针对TASK_RETENTION_ORDER表的查询,通过创建函数索引和优化子查询索引,将执行时间从17.86秒降至0.03秒,逻辑读从790万次降至5千次。3. 索引碎片问题:对MSG_NOTIFY_LOG表进行碎片整理和索引重建后,逻辑读从38,471次降至5次,执行

2025-08-21 00:26:22 1028

原创 【SQL优化案例】统计信息缺失

摘要:本文通过两个Oracle数据库优化案例,展示了统计信息缺失对SQL性能的影响。案例一中,APP_SERVLEVEL_BASE表因统计信息缺失导致全表扫描,收集统计信息后执行时间从470ms降至2.48ms,逻辑读从48,593降至11。案例二中,CUST_ENTITY_ATTRIBUTE表因走错索引导致CPU过高,修正后执行时间从220ms降至0.26ms。文章强调统计信息准确性的重要性,并提供了相关查询脚本,建议定期收集统计信息以优化执行计划选择。

2025-08-19 23:32:55 633

原创 一次新上的SQL引发的CPU飙升

记录一次TOP SQL由于统计信息缺失引发的AAS和CPU突刺,优化器只能基于统计信息来判断最优执行路径。如果统计信息缺失或过期,系统随时可能出现严重性能问题。

2025-08-19 00:21:37 895

原创 Oracle自动采集AWR Gets TOP SQL脚本

Oracle自动采集AWR SQL ordered by Gets脚本

2025-08-11 16:16:37 730

原创 内存故障导致observer不可用

内存故障导致observer不可用

2025-08-08 00:50:26 896

原创 RMAN备份bug-审计日志暴涨(select action from gv$session)

oracle 文件系统使用率过大,经过检查是审计日志过大,/oracle 目录 197G 审计日志占用70G,每6个小时产生大量审计日志,日志内容全是'select action from gv$session' ,猜测可能跟备份有关,这个库已经迁移到GoldenDB,没有业务了,监听也已经关闭,初步判断是系统本身产生的审计日志。奇怪的是日志时间内并无活动会话和定时任务。

2025-03-06 23:25:15 700

原创 模拟数据文件少写“+”加在本地如何恢复?

上周业务操作表空间没加“+”直接把数据文件加在了本地,另一个节点识别不到数据文件,导致业务访问报错:ORA-01157和ORA-01110,并且在恢复之后触发了bct的一个bug导致数据库宕机。今天在测试环境模拟一下如果把数据文件加在本地该如何恢复

2025-03-05 22:25:14 429

原创 月结保障:回滚慢、行锁频发

并行回滚:通过调整动态参数,并在后台杀死该会话或操作系统进程,此时会有后台进程 SMON 进行并行实例恢复,并行速度与操作系统核数相关。需要注意数据库进程数不要超限。通过调整参数。

2025-03-05 00:14:00 1114

原创 Oracle筑基篇-调度算法-LRU的引入

Oracle筑基篇-调度算法-LRU的引入

2024-12-22 16:51:59 1254

原创 Oracle筑基篇-体系结构概览

Oracle筑基篇-体系结构概览

2024-12-19 00:56:00 1200

原创 Oracle筑基篇-通过一个事务流程筑基Oracle

Oracle筑基篇-通过一个事务流程筑基Oracle

2024-12-17 23:45:31 675

原创 Oracle定位行锁的数据行

根据行锁定位到具体是哪一个表的行数据产生了行锁

2024-12-05 15:05:43 1569

原创 ORA-600 [723]内存泄漏

ORA-600 [723]内存泄漏

2024-11-27 01:00:45 882

原创 Oracle 中的表 ID(OBJECT_ID)段 ID(DATA_OBJECT_ID)

在 Oracle 数据库中,“表”和“段”是两个截然不同的概念,各自承担不同的职责。本文参考《Oracle 内核技术揭秘》一书的相关内容,进行相关实验。

2024-11-25 22:28:05 908

原创 OceanBase数据库产品与工具介绍

OceanBase数据库产品与工具介绍

2024-11-20 22:06:15 2131

原创 Oracle SQL plus设置篇

Oracle SQL plus设置篇-安装并配置 rlwrap、定义别名及配置环境变量、glogin.sql设置 SQL*Plus

2024-11-18 21:43:42 1854 1

原创 随便聊聊系列—锁

本来是想写Oracle 的行锁问题 ,但在思考“锁”这个概念时,却不知从何下手,想着到现在锁的各种场景,理着理着自己的知识脉络就有了这篇文章。文章略显杂乱,但每个处都是作者的总结和思考,希望能与有心者共同探讨、交流见解。

2024-10-24 00:54:05 1100

原创 Oracle SQL练习题,从小白到入门 - 上

Oracle SQL练习题,从小白到入门 - 上

2024-10-22 16:31:36 1612 1

原创 每天查询三百万次的TOP SQL,数据竟是空的?

一条top sql,一天执行三百万次,平均每秒34.7次, 但是分区表里没有数据,每次逻辑读78M左右,下面尽可能还原一下生产的情况。

2024-08-26 09:00:00 1184

原创 自动化脚本编写:批量访问Oracle数据库并导出用户信息为 Excel

本文主要写批量访问数据库的脚本编写和其中遇到的一点点小问题“连接不上数据库”

2024-08-19 20:07:31 956

原创 “LOCAL_LISTENER”参数导致业务无法连接数据库,文末附Oracle连接故障检查监听的排查流程

“LOCAL_LISTENER”参数导致业务无法连接数据库,文末附Oracle连接故障检查监听的排查流程

2024-08-19 09:00:00 1927

原创 Oracle 文件管理-参数文件、控制文件、归档

Oracle 文件管理-参数文件、控制文件、归档

2024-07-29 21:06:43 1483

原创 Oracle数据库启动问题排查的一般流程-解决ORA-03113和ORA-16038错误

通过检查告警日志、trace文件、动态性能视图和操作系统日志,迅速定位问题的根本原因。采取相应的措施,如调整数据库参数、清理磁盘空间、检查网络连接和权限设置等。

2024-07-22 11:22:30 686

原创 如何查询Oracle数据库一周内每天的SQL执行次数

今天引入的问题是:oracle数据库怎么查询一周内,每天的查询次数?数据库的AWR报告会记录SQL的执行情况,可以从DBA_HIST_SNAPSHOT、在DBA_HIST_SQLSTAT这两个视图通过快照 id join一下得到记录了系统七天内Oracle数据库的SQL执行次数。如果有异常,再去分析问题。如果某一条SQL执行异常,需要做分析,怎么找出这条SQL文本。

2024-07-18 21:24:26 1874

原创 DDL也会有undo吗?模拟Oracle中DML、DDL与undo的关系,10046跟踪DDL语句

DDL也会有undo吗?模拟Oracle中DML、DDL与undo的关系,10046跟踪DDL语句

2024-07-10 21:10:26 1469

空空如也

空空如也

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

TA关注的人

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