- 博客(13)
- 收藏
- 关注
原创 DM8 length_in_char参数验证
相同版本的相同表结构在迁移相同表的过程中报错字段超长,经排查原因是一个环境为length_in_char=1时由8.1.3.12升级至8.1.3.162而另外一个环境为直接搭建的8.1.3.162 ,无法直接指定length_in_char,即length_in_char=0在排查该问题过程中有几点疑问:验证环境:一个为length_in_char=1 的8.1.3.12另外一个环境为 length_in_char=0 的--05134284368-20250527-275278-20149 Pack8首先
2025-11-12 19:25:12
600
原创 达梦数据库索引学习
本次学习旨在深入理解达梦数据库(DM8)中索引的核心机制与价值,并通过动手实践掌握其设计、创建、管理和优化的全流程技能。聚簇因子(CLUSTERING_FACTOR):衡量数据物理存储顺序与索引逻辑顺序的匹配程度,值越小性能越好。-- 执行计划显示:IDX_DEMO_COMPOSITE -> SSEK2(范围扫描)扇出高:每个节点可存储大量键值,降低树的高度(通常3-4层即可支撑亿级数据)-- 场景3:索引跳跃扫描(复合索引非最左列)-- 场景2:范围扫描(复合索引最左前缀)
2025-09-29 18:06:16
683
原创 达梦数据库 LENGTH_IN_CHAR 与 CHARSET 参数学习
对于 LENGTH_IN_CHAR,如果您的团队可以接受“VARCHAR(n) 中的n是字节数”这一概念,并能在应用设计中考虑中英文差异(例如,定义 VARCHAR(300) 来存储100个汉字),则选择 LENGTH_IN_CHAR = 0 以获得最佳存储性能。例如,原 VARCHAR(10) 在GB18030下能存10个汉字,在UTF-8+字节模式下只能存3个。在 LENGTH_IN_CHAR=0 模式下,应用端进行长度校验时,应使用 CHAR_LENGTH() 而非 LENGTH()。
2025-09-29 18:03:34
1612
原创 DM8数据库部分功能测试
为保障业务系统平滑迁移至国产数据库,本次学习对武汉达梦数据库DM8的核心功能进行了系统性测试与适配。目标是验证DM8对标准SQL语法、数据库高级特性(如分区表、数据压缩)的支持度与兼容性,确保其能满足生产环境的基本要求。
2025-09-25 15:43:01
276
原创 DM8的事务回滚与保存点(Savepoint)学习
如果在前面的步骤成功执行后,后面的某一步骤失败,我们通常不希望完全回滚整个事务,而是希望回滚到出错点之前的状态,保留已成功的操作,以便进行其他处理。目的是理解在复杂业务逻辑中,如何利用保存点进行错误处理和流程控制,避免一个操作失败导致整个大事务全部回滚,从而提升应用的健壮性和开发灵活性。库存的扣除和订单主记录的创建这些已经成功的操作得到了保留,只有失败的订单明细插入操作被撤销。-- 没有数据,因为失败的操作被回滚了。-- 发现错误后,回滚到保存点 sp2,即撤销失败的订单明细插入,但保留主订单和库存更新。
2025-09-25 14:37:27
571
原创 达梦数据库 DM8 事务的 ACID 特性与并发控制学习
DM8 通过 Redo/Undo + MVCC + 两级锁 实现了标准 ACID,默认隔离级别 REPEATABLE READ 已能抑制脏读、不可重复读,幻读需依赖间隙锁或 SERIALIZABLE。运维层面务必关注 LOCK_TIMEOUT、SYNC_FLUSH、ENABLE_MVCC_HISTORY 三个参数,可在高并发场景下显著减少“锁等待”与“日志刷盘”带来的抖动。动态性能视图(VTRXVTRX、VTRXV。
2025-09-12 17:08:59
1395
原创 达梦数据库权限管理学习
级联回收:系统管理员在回收用户A的权限时,必须使用CASCADE选项,该操作会同时回收所有由用户A转授出去的相应权限(即用户B的权限也会被回收)。完成一个完整的场景验证:创建一个新用户,通过角色控制其权限,再创建一个用户来进行转授权,模拟不同权限下的操作结果,验证权限管理的有效性。角色是权限管理的核心,通过将多个权限打包成一个角色,然后只需将角色授予用户,即可批量管理用户权限,极大提高了管理效率。用户最终拥有的权限是其自身被直接授予的权限与其所拥有的所有角色包含的权限的并集。权限的授予和回收立即生效。
2025-09-10 21:41:48
1685
原创 DM8备份恢复原理学习以及简单使用
恢复时,首先还原备份文件,然后应用归档日志中记录的重做信息,将数据库“重演”到最新或指定的状态。数据库在运行时,所有的事务操作不仅会写入联机重做日志文件,在开启归档模式后,还会被归档进程自动归档到指定的归档目录中,形成归档日志文件。物理备份:直接拷贝数据库的文件(数据文件、控制文件、归档日志等)。成功完成一个完整的场景验证:从完全备份开始,经历若干数据操作,最后利用备份和归档日志将数据库恢复到指定时间点。归档日志是核心:没有开启归档模式,物理备份将无法用于恢复备份之后的数据变更,失去了其最重要的价值。
2025-09-10 19:59:15
713
原创 麒麟V10安装DM8以及遇到的问题
本文介绍了达梦数据库DM8的安装配置过程。首先通过挂载镜像开始安装,解决了dmdba用户目录缺失和图形界面调用失败的问题。安装完成后进行数据库初始化,创建实例库DMOA并配置参数。针对服务启动失败问题,通过关闭安全策略解决。随后演示了用户创建、权限分配、表空间建立等操作,并完成数据表创建和插入。最后配置了归档和定时备份策略,包括每周六全量备份和其他日期的增量备份。整个流程涵盖了从安装到基本使用的完整步骤。
2025-08-28 22:03:55
791
原创 AMD+win10通过VMware构建测试所需linux环境
在数据库的学习过程中,离不开实际操作,安装部署是第一步,而安装部署则需要构建测试环境,本文记录了AMD cpu+win10系统构建虚拟机的过程。
2025-08-12 20:50:54
700
原创 dmfldr导入csv文件至DM8
怀疑是去掉OPTIONALLY ENCLOSED BY之后导致装载工具将“”也识别为数据了,将数据文件中的字符串剪短后装载成功,通过查询表中数据发现确实将””识别为了数据。在验证了一个ctl的可用性之后,就考虑708张表如何实现批量操作,思考后决定编写shell脚本,为每张csv文件生成ctl文件后批量调用装载工具进行装载。dmfldr使用手册中记载了命令行直接执行或者ctl文件的方式,考虑到是自定义分隔符以及包围符,为避免命令过长容易出错的情况,使用ctl进行配置。此时成功解析到了ctl文件,但是报错。
2025-08-12 20:45:33
654
原创 win11通过docker desktop构建数据库搭建环境
在学习数据知识中,需要结合实际操作来理解,第一步就面临着安装部署的环节,对于一些便携式pc设备,或许硬件条件并没有那么高,就需要一个轻量级的虚拟机环境我这边选择的就是docker desktop,可以看到,一个kylin10的镜像占用1.6G左右的ram,存储也不超过10G。
2025-07-17 14:56:10
692
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅